cmdtest/t/CMDTEST_ignore_file.rb
Johan Holmberg d5f29a821c ignore_file accepts shell glob (*, **)
+ test of this new behaviour
2015-07-29 13:32:04 +02:00

135 lines
2.9 KiB
Ruby

require "selftest_utils"
class CMDTEST_ignore_file < Cmdtest::Testcase
include SelftestUtils
#----------------------------------------
# an ignored file is not counted as a created file
# even when it is actually created
def test_ignore_file_IGNORED
create_CMDTEST_foo [
"ignore_file 'bbb'",
"",
"cmd 'touch.rb aaa bbb' do",
" created_files 'aaa'",
"end",
]
cmd_cmdtest do
stdout_equal [
"### touch.rb aaa bbb",
]
end
end
#----------------------------------------
# it is ok for an ignored file to not be created
def test_ignore_file_IGNORED_NOT_CREATED
create_CMDTEST_foo [
"ignore_file 'bbb'",
"",
"cmd 'touch.rb aaa' do",
" created_files 'aaa'",
"end",
]
cmd_cmdtest do
stdout_equal [
"### touch.rb aaa",
]
end
end
#----------------------------------------
# 'created_files' is wrong if the file is mentioned,
# even when the file actually was created
def test_ignore_file_AS_IF_NOT_CREATED
create_CMDTEST_foo [
"ignore_file 'bbb'",
"",
"cmd 'touch.rb aaa bbb' do",
" created_files 'aaa', 'bbb'",
"end",
]
cmd_cmdtest do
stdout_equal [
'### touch.rb aaa bbb',
'--- ERROR: created files',
'--- actual: ["aaa"]',
'--- expect: ["aaa", "bbb"]',
]
exit_nonzero
end
end
#----------------------------------------
# the ignored file can have a directory component in the filename
def test_ignore_file_IGNORED_IN_SUBDIR
create_CMDTEST_foo [
"ignore_file 'dir/bbb'",
"dir_mkdir 'dir'",
"",
"cmd 'touch.rb aaa bbb dir/aaa dir/bbb' do",
" created_files 'aaa', 'bbb', 'dir/aaa'",
"end",
]
cmd_cmdtest do
stdout_equal [
"### touch.rb aaa bbb dir/aaa dir/bbb",
]
end
end
#----------------------------------------
# the argument to 'ignore_file' is the *path* to a file,
# not just the basename.
def test_ignore_file_PATH_MATTERS
create_CMDTEST_foo [
"ignore_file 'bbb'",
"dir_mkdir 'dir'",
"",
"cmd 'touch.rb aaa bbb dir/aaa dir/bbb' do",
" created_files 'aaa', 'dir/aaa', 'dir/bbb'",
"end",
]
cmd_cmdtest do
stdout_equal [
"### touch.rb aaa bbb dir/aaa dir/bbb",
]
end
end
#----------------------------------------
# the argument to 'ignore_file' can contain shell wildcards,
# both * and **
def test_ignore_file_SHELL_GLOB
create_CMDTEST_foo [
"ignore_file 'bbb*'",
"ignore_file '**/ccc'",
"dir_mkdir 'dir'",
"",
"cmd 'touch.rb aaa bbb1 bbb2 ccc dir/aaa dir/bbb1 dir/bbb2 dir/ccc' do",
" created_files 'aaa', 'dir/aaa', 'dir/bbb1', 'dir/bbb2'",
"end",
]
cmd_cmdtest do
stdout_equal [
"### touch.rb aaa bbb1 bbb2 ccc dir/aaa dir/bbb1 dir/bbb2 dir/ccc",
]
end
end
end