use env.rb and grep.rb in test

to avoid depending on some env.exe and grep.exe
on Windows.
This commit is contained in:
Johan Holmberg 2016-11-17 10:30:29 +01:00
parent 6c14d32cce
commit 67a662f1c6
3 changed files with 36 additions and 13 deletions

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

6
t/bin/env.rb Executable file

@ -0,0 +1,6 @@
#!/usr/bin/ruby
for k in ENV.keys.sort
puts("%s=%s" % [k, ENV[k]])
end

13
t/bin/grep.rb Executable file

@ -0,0 +1,13 @@
#!/usr/bin/ruby
pattern = Regexp.new(ARGV[0])
n = 0
for line in STDIN
if line =~ pattern
puts line
n += 1
end
end
exit(n == 0 ? 1 : 0)