1 | import os |
2 | import time |
3 | |
4 | fn test_getenv() { |
5 | // VEXE is set by the V builtin test runner |
6 | assert os.getenv('VEXE').len > 0 |
7 | assert os.getenv('PATH').len > 0 |
8 | } |
9 | |
10 | fn test_getenv_opt() { |
11 | assert os.getenv_opt('VEXE') or { '' }.len > 0 |
12 | } |
13 | |
14 | fn test_setenv() { |
15 | os.setenv('foo', 'bar', true) |
16 | assert os.getenv('foo') == 'bar' |
17 | // `setenv` should not set if `overwrite` is false |
18 | os.setenv('foo', 'bar2', false) |
19 | assert os.getenv('foo') == 'bar' |
20 | // `setenv` should overwrite if `overwrite` is true |
21 | os.setenv('foo', 'bar2', true) |
22 | assert os.getenv('foo') == 'bar2' |
23 | assert os.getenv_opt('foo') or { '' } == 'bar2' |
24 | } |
25 | |
26 | fn test_unsetenv() { |
27 | os.setenv('foo', 'bar', true) |
28 | os.unsetenv('foo') |
29 | assert os.getenv('foo') == '' |
30 | } |
31 | |
32 | fn test_environ() { |
33 | os.setenv('myvar1', 'bar1', true) |
34 | os.setenv('myvar2', 'bar2', true) |
35 | assert os.getenv('myvar1') == 'bar1' |
36 | assert os.getenv('myvar2') == 'bar2' |
37 | assert os.getenv('myvar_not_defined') == '' |
38 | all := os.environ() |
39 | assert all['myvar1'] == 'bar1' |
40 | assert all['myvar2'] == 'bar2' |
41 | assert all['myvar_not_defined'] == '' |
42 | } |
43 | |
44 | fn test_setenv_var_not_exists() { |
45 | key := time.new_time(time.now()).unix |
46 | os.setenv('foo${key}', 'bar', false) |
47 | assert os.getenv('foo${key}') == 'bar' |
48 | } |
49 | |
50 | fn test_getenv_empty_var() { |
51 | key := time.new_time(time.now()).unix |
52 | os.setenv('empty${key}', '""', false) |
53 | assert os.getenv('empty${key}') == '""' |
54 | } |