sort "CMDTEST_*.rb" files alphabetically
by sorting the result of Dir.glob(). This should make "CMDTEST_*.rb" being run in a well defined order.
This commit is contained in:
parent
fe5dbe704e
commit
04c31df479
@ -492,6 +492,10 @@ module Cmdtest
|
||||
|
||||
private
|
||||
|
||||
def _sorted_glob(str)
|
||||
Dir.glob(str).sort
|
||||
end
|
||||
|
||||
def _fs_test_filenames
|
||||
if ! @argv.empty?
|
||||
files = _expand_files_or_dirs(@argv)
|
||||
@ -502,13 +506,13 @@ module Cmdtest
|
||||
return files
|
||||
end
|
||||
|
||||
try = Dir.glob("t/CMDTEST_*.rb")
|
||||
try = _sorted_glob("t/CMDTEST_*.rb")
|
||||
return try if ! try.empty?
|
||||
|
||||
try = Dir.glob("test/CMDTEST_*.rb")
|
||||
try = _sorted_glob("test/CMDTEST_*.rb")
|
||||
return try if ! try.empty?
|
||||
|
||||
try = Dir.glob("CMDTEST_*.rb")
|
||||
try = _sorted_glob("CMDTEST_*.rb")
|
||||
return try if ! try.empty?
|
||||
|
||||
puts "ERROR: no CMDTEST_*.rb files found"
|
||||
|
55
t/CMDTEST_glob_files.rb
Normal file
55
t/CMDTEST_glob_files.rb
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
require "selftest_utils"
|
||||
|
||||
class CMDTEST_glob_files < Cmdtest::Testcase
|
||||
|
||||
include SelftestUtils
|
||||
|
||||
def make_file(name)
|
||||
create_file "t/CMDTEST_#{name}.rb", [
|
||||
"class CMDTEST_#{name} < Cmdtest::Testcase",
|
||||
" def setup",
|
||||
" prepend_path #{BIN.inspect}",
|
||||
" prepend_path #{PLATFORM_BIN.inspect}",
|
||||
" end",
|
||||
"",
|
||||
|
||||
" def test_1",
|
||||
" cmd \"true\" do",
|
||||
" comment \"#{name}\"",
|
||||
" end",
|
||||
" end",
|
||||
"",
|
||||
"end",
|
||||
]
|
||||
end
|
||||
|
||||
def test_1
|
||||
make_file("aaa")
|
||||
make_file("ccc")
|
||||
make_file("bbb")
|
||||
make_file("ddd")
|
||||
|
||||
cmd_cmdtest do
|
||||
stdout_equal [
|
||||
"### aaa",
|
||||
"### bbb",
|
||||
"### ccc",
|
||||
"### ddd",
|
||||
]
|
||||
end
|
||||
end
|
||||
|
||||
def test_2
|
||||
# generate "aaa", "aab", "aac", ...
|
||||
names = (1..30).reduce(["aaa"]) {|acc, i| acc << acc[-1].succ }
|
||||
for name in names.shuffle(random: Random.new(1234))
|
||||
make_file(name)
|
||||
end
|
||||
|
||||
cmd_cmdtest do
|
||||
stdout_equal names.map {|name| "### #{name}" }
|
||||
end
|
||||
end
|
||||
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user