| 1 | import os |
| 2 | import v.util.vflags |
| 3 | |
| 4 | fn test_tokenize_to_args() { |
| 5 | assert vflags.tokenize_to_args('-cc gcc -ldflags ""') == ['-cc', 'gcc', '-ldflags', ''] |
| 6 | assert vflags.tokenize_to_args('abc def xyz') == ['abc', 'def', 'xyz'] |
| 7 | assert vflags.tokenize_to_args('abc -def --xyz') == ['abc', '-def', '--xyz'] |
| 8 | assert vflags.tokenize_to_args('abc -def --xyz') == ['abc', '-def', '--xyz'] |
| 9 | assert vflags.tokenize_to_args('abc "a b" --xyz') == ['abc', 'a b', '--xyz'], 'Using double quote should work' |
| 10 | assert vflags.tokenize_to_args("abc 'a b' --xyz") == ['abc', 'a b', '--xyz'], 'Using single quote instead of a double " should work too' |
| 11 | assert vflags.tokenize_to_args('abc "a quote: \\" . The end." --xyz') == [ |
| 12 | 'abc', |
| 13 | 'a quote: " . The end.', |
| 14 | '--xyz', |
| 15 | ], 'escaping " should work' |
| 16 | } |
| 17 | |
| 18 | fn test_join_env_vflags_and_os_args() { |
| 19 | os.unsetenv('VFLAGS') |
| 20 | os.unsetenv('VOSARGS') |
| 21 | |
| 22 | start := vflags.join_env_vflags_and_os_args() |
| 23 | // dump(start) |
| 24 | assert start.len > 0 |
| 25 | |
| 26 | os.setenv('VFLAGS', r'-cc gcc -ldflags ""', true) |
| 27 | x := vflags.join_env_vflags_and_os_args() |
| 28 | // dump(x) |
| 29 | assert x.len > 0 |
| 30 | assert 'gcc' in x |
| 31 | assert '-cc' in x |
| 32 | assert '-ldflags' in x |
| 33 | assert x.last() == '' |
| 34 | |
| 35 | os.setenv('VFLAGS', r'-cc gcc -ldflags "-lpthread -lm"', true) |
| 36 | y := vflags.join_env_vflags_and_os_args() |
| 37 | // dump(y) |
| 38 | assert '-ldflags' in y |
| 39 | assert y.last() == '-lpthread -lm' |
| 40 | |
| 41 | os.setenv('VFLAGS', r'-cc gcc -ldflags "-lpthread -lm" -showcc', true) |
| 42 | z := vflags.join_env_vflags_and_os_args() |
| 43 | // dump(z) |
| 44 | assert '-ldflags' in z |
| 45 | assert z#[-2..-1][0] == '-lpthread -lm' |
| 46 | assert z.last() == '-showcc' |
| 47 | } |
| 48 | |