Navigation Menu

Skip to content

Commit

Permalink
Add --exclude-test-suite
Browse files Browse the repository at this point in the history
  • Loading branch information
kou committed Aug 11, 2012
1 parent 014486e commit 6d7784c
Showing 1 changed file with 25 additions and 6 deletions.
31 changes: 25 additions & 6 deletions lib/groonga/tester.rb
Expand Up @@ -120,11 +120,14 @@ def create_option_parser(tester, tag)
"Exclude test that name is NAME",
"If NAME is /.../, NAME is treated as regular expression",
"This option can be used multiple times") do |name|
if /\A\/(.+)\/\z/ =~ name
tester.exclude_test_patterns << Regexp.new($1, Regexp::IGNORECASE)
else
tester.exclude_test_patterns << name
end
tester.exclude_test_patterns << parse_name_or_pattern(name)
end

parser.on("--exclude-test-suite=NAME",
"Exclude test suite that name is NAME",
"If NAME is /.../, NAME is treated as regular expression",
"This option can be used multiple times") do |name|
tester.exclude_test_suite_patterns << parse_name_or_pattern(name)
end

parser.on("--n-workers=N", Integer,
Expand Down Expand Up @@ -164,6 +167,14 @@ def create_option_parser(tester, tag)

parser
end

def parse_name_or_pattern(name)
if /\A\/(.+)\/\z/ =~ name
Regexp.new($1, Regexp::IGNORECASE)
else
name
end
end
end

attr_accessor :groonga, :groonga_httpd, :groonga_suggest_create_dataset
Expand All @@ -173,7 +184,7 @@ def create_option_parser(tester, tag)
attr_accessor :output
attr_accessor :gdb, :default_gdb
attr_writer :reporter, :keep_database, :use_color
attr_reader :exclude_test_patterns
attr_reader :exclude_test_patterns, :exclude_test_suite_patterns
def initialize
@groonga = "groonga"
@groonga_httpd = "groonga-httpd"
Expand All @@ -187,6 +198,7 @@ def initialize
@keep_database = false
@use_color = nil
@exclude_test_patterns = []
@exclude_test_suite_patterns = []
detect_suitable_diff
initialize_debuggers
end
Expand Down Expand Up @@ -228,6 +240,12 @@ def exclude_test?(test_name)
end
end

def exclude_test_suite?(test_suite_name)
@exclude_test_suite_patterns.any? do |pattern|
pattern === test_suite_name
end
end

private
def load_tests(*targets)
default_group_name = "."
Expand Down Expand Up @@ -491,6 +509,7 @@ def run(test_suites)
def run_test_suites(test_suites)
queue = Queue.new
test_suites.each do |suite_name, test_script_paths|
next if @tester.exclude_test_suite?(suite_name)
test_script_paths.each do |test_script_path|
test_name = test_script_path.basename(".*").to_s
next if @tester.exclude_test?(test_name)
Expand Down

0 comments on commit 6d7784c

Please sign in to comment.