diff options
| author | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-12 03:12:14 +0000 |
|---|---|---|
| committer | ntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-02-12 03:12:14 +0000 |
| commit | f4fade43ce5d51ab9e35463a0ee093a695286741 (patch) | |
| tree | 4354dc87a540b777a7eb6a2276f44be51ec8bebb /lib/runit | |
| parent | 045623d3287ee000a1c7e8275a643e88081132d2 (diff) | |
| download | ruby-f4fade43ce5d51ab9e35463a0ee093a695286741.tar.gz ruby-f4fade43ce5d51ab9e35463a0ee093a695286741.tar.xz ruby-f4fade43ce5d51ab9e35463a0ee093a695286741.zip | |
Initial revision
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@3477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/runit')
| -rw-r--r-- | lib/runit/assert.rb | 71 | ||||
| -rw-r--r-- | lib/runit/cui/testrunner.rb | 51 | ||||
| -rw-r--r-- | lib/runit/error.rb | 9 | ||||
| -rw-r--r-- | lib/runit/testcase.rb | 45 | ||||
| -rw-r--r-- | lib/runit/testresult.rb | 44 | ||||
| -rw-r--r-- | lib/runit/testsuite.rb | 26 | ||||
| -rw-r--r-- | lib/runit/topublic.rb | 8 |
7 files changed, 254 insertions, 0 deletions
diff --git a/lib/runit/assert.rb b/lib/runit/assert.rb new file mode 100644 index 000000000..ede7df1c9 --- /dev/null +++ b/lib/runit/assert.rb @@ -0,0 +1,71 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/assertions' +require 'runit/error' + +module RUNIT + module Assert + include Test::Unit::Assertions + + def setup_assert + end + + def assert_no_exception(*args, &block) + assert_nothing_raised(*args, &block) + end + + # To deal with the fact that RubyUnit does not check that the regular expression + # is, indeed, a regular expression, if it is not, we do our own assertion using + # the same semantics as RubyUnit + def assert_match(actual_string, expected_re, message="") + _wrap_assertion { + full_message = build_message(message, actual_string, expected_re) { + | arg1, arg2 | + "Expected <#{arg1}> to match <#{arg2}>" + } + assert_block(full_message) { + expected_re =~ actual_string + } + Regexp.last_match + } + end + + def assert_not_match(actual_string, expected_re, message="") + assert_no_match(expected_re, actual_string, message) + end + + def assert_matches(*args) + assert_match(*args) + end + + def assert_fail(message="") + flunk(message) + end + + def assert_equal_float(expected, actual, delta, message="") + assert_in_delta(expected, actual, delta, message) + end + + def assert_send(object, method, *args) + super([object, method, *args]) + end + + def assert_exception(exception, message="", &block) + assert_raises(exception, message, &block) + end + + def assert_respond_to(method, object, message="") + if (called_internally?) + super + else + super(object, method, message) + end + end + + def called_internally? + /assertions\.rb/.match(caller[1]) + end + end +end diff --git a/lib/runit/cui/testrunner.rb b/lib/runit/cui/testrunner.rb new file mode 100644 index 000000000..0106b6c85 --- /dev/null +++ b/lib/runit/cui/testrunner.rb @@ -0,0 +1,51 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/ui/console/testrunner' +require 'runit/testresult' + +module RUNIT + module CUI + class TestRunner < Test::Unit::UI::Console::TestRunner + @@quiet_mode = false + + def self.run(suite) + self.new().run(suite) + end + + def initialize + super nil + end + + def run(suite, quiet_mode=@@quiet_mode) + @suite = suite + def @suite.suite + self + end + @output_level = (quiet_mode ? PROGRESS_ONLY : NORMAL) + start + end + + def create_mediator(suite) + mediator = Test::Unit::UI::TestRunnerMediator.new(suite) + class << mediator + attr_writer :result_delegate + def create_result + return @result_delegate.create_result + end + end + mediator.result_delegate = self + return mediator + end + + def create_result + return RUNIT::TestResult.new + end + + def self.quiet_mode=(boolean) + @@quiet_mode = boolean + end + end + end +end diff --git a/lib/runit/error.rb b/lib/runit/error.rb new file mode 100644 index 000000000..4a727fb02 --- /dev/null +++ b/lib/runit/error.rb @@ -0,0 +1,9 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/assertionfailederror.rb' + +module RUNIT + AssertionFailedError = Test::Unit::AssertionFailedError +end diff --git a/lib/runit/testcase.rb b/lib/runit/testcase.rb new file mode 100644 index 000000000..4576cb864 --- /dev/null +++ b/lib/runit/testcase.rb @@ -0,0 +1,45 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'runit/testresult' +require 'runit/testsuite' +require 'runit/assert' +require 'runit/error' +require 'test/unit/testcase' + +module RUNIT + class TestCase < Test::Unit::TestCase + include RUNIT::Assert + + def self.suite + method_names = instance_methods(true) + tests = method_names.delete_if { |method_name| method_name !~ /^test/ } + suite = TestSuite.new(name) + tests.each { + |test| + catch(:invalid_test) { + suite << new(test, name) + } + } + return suite + end + + def initialize(test_name, suite_name=self.class.name) + super(test_name) + end + + def assert_equals(*args) + assert_equal(*args) + end + + def name + super.sub(/^(.*?)\((.*)\)$/, '\2#\1') + end + + def run(result, &progress_block) + progress_block = proc {} unless (block_given?) + super(result, &progress_block) + end + end +end diff --git a/lib/runit/testresult.rb b/lib/runit/testresult.rb new file mode 100644 index 000000000..7f7077817 --- /dev/null +++ b/lib/runit/testresult.rb @@ -0,0 +1,44 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/testresult' + +module RUNIT + class TestResult < Test::Unit::TestResult + attr_reader(:errors, :failures) + def succeed? + return passed? + end + def failure_size + return failure_count + end + def run_asserts + return assertion_count + end + def error_size + return error_count + end + def run_tests + return run_count + end + def add_failure(failure) + def failure.at + return location + end + def failure.err + return message + end + super(failure) + end + def add_error(error) + def error.at + return location + end + def error.err + return exception + end + super(error) + end + end +end diff --git a/lib/runit/testsuite.rb b/lib/runit/testsuite.rb new file mode 100644 index 000000000..63baf6570 --- /dev/null +++ b/lib/runit/testsuite.rb @@ -0,0 +1,26 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +require 'test/unit/testsuite' + +module RUNIT + class TestSuite < Test::Unit::TestSuite + def add_test(*args) + add(*args) + end + + def add(*args) + self.<<(*args) + end + + def count_test_cases + return size + end + + def run(result, &progress_block) + progress_block = proc {} unless (block_given?) + super(result, &progress_block) + end + end +end diff --git a/lib/runit/topublic.rb b/lib/runit/topublic.rb new file mode 100644 index 000000000..566f0dd35 --- /dev/null +++ b/lib/runit/topublic.rb @@ -0,0 +1,8 @@ +# Author:: Nathaniel Talbott. +# Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved. +# License:: Ruby license. + +module RUNIT + module ToPublic + end +end |
