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