cmdtest/t/CMDTEST_setenv.rb
Johan Holmberg 67a662f1c6 use env.rb and grep.rb in test
to avoid depending on some env.exe and grep.exe
on Windows.
2016-11-17 10:30:29 +01:00

88 lines
1.8 KiB
Ruby

require "selftest_utils"
class CMDTEST_setenv < Cmdtest::Testcase
include SelftestUtils
#-----------------------------------
def test_setenv
#----------
create_CMDTEST_foo [
'cmd "env.rb | grep.rb TESTVAR1" do',
' exit_nonzero', # no match in grep.rb
'end',
]
cmd_cmdtest do
comment "TESTVAR1 not set"
stdout_equal [
"### env.rb | grep.rb TESTVAR1",
]
end
#----------
create_CMDTEST_foo [
'setenv "TESTVAR1", "123456"',
'cmd "env.rb | grep.rb TESTVAR1" do',
' stdout_equal "TESTVAR1=123456\\n"',
'end',
]
cmd_cmdtest do
comment "TESTVAR1 set by setenv"
stdout_equal [
"### env.rb | grep.rb TESTVAR1",
]
end
prepend_path 't/bin'
cmd("env.rb | grep.rb TESTVAR1") do
comment "TESTVAR1 still unset on level1"
exit_nonzero # no match in grep.rb
end
end
#-----------------------------------
def test_unsetenv
ENV['TESTVAR2'] = '987654'
#----------
create_CMDTEST_foo [
'cmd "env.rb | grep.rb TESTVAR2" do',
' stdout_equal "TESTVAR2=987654\\n"',
'end',
]
cmd_cmdtest do
comment "TESTVAR2 set from start"
stdout_equal [
"### env.rb | grep.rb TESTVAR2",
]
end
#----------
create_CMDTEST_foo [
'unsetenv "TESTVAR2"',
'cmd "env.rb | grep.rb TESTVAR2" do',
' exit_nonzero', # no match in grep.rb
'end',
]
cmd_cmdtest do
comment "TESTVAR2 unset by unsetenv"
stdout_equal [
"### env.rb | grep.rb TESTVAR2",
]
end
prepend_path 't/bin'
cmd("env.rb | grep.rb TESTVAR2") do
comment "TESTVAR2 still set on level1"
stdout_equal [
"TESTVAR2=987654",
]
end
end
end