1scriptencoding utf-8 2 3func Test_environ() 4 unlet! $TESTENV 5 call assert_equal(0, has_key(environ(), 'TESTENV')) 6 let $TESTENV = 'foo' 7 call assert_equal(1, has_key(environ(), 'TESTENV')) 8 let $TESTENV = 'こんにちわ' 9 call assert_equal('こんにちわ', environ()['TESTENV']) 10endfunc 11 12func Test_getenv() 13 unlet! $TESTENV 14 call assert_equal(v:null, getenv('TESTENV')) 15 let $TESTENV = 'foo' 16 call assert_equal('foo', getenv('TESTENV')) 17endfunc 18 19func Test_setenv() 20 unlet! $TESTENV 21 call setenv('TEST ENV', 'foo') 22 call assert_equal('foo', getenv('TEST ENV')) 23 call setenv('TEST ENV', v:null) 24 call assert_equal(v:null, getenv('TEST ENV')) 25endfunc 26 27func Test_external_env() 28 call setenv('FOO', 'HelloWorld') 29 if has('win32') 30 let result = system('echo %FOO%') 31 else 32 let result = system('echo $FOO') 33 endif 34 let result = substitute(result, '[ \r\n]', '', 'g') 35 call assert_equal('HelloWorld', result) 36 37 call setenv('FOO', v:null) 38 if has('win32') 39 let result = system('set | findstr "^FOO="') 40 else 41 let result = system('env | grep ^FOO=') 42 endif 43 call assert_equal('', result) 44endfunc 45