[DRE-commits] [SCM] gem2deb.git branch, master, updated. debian/0.2.3-49-gdec2622
Antonio Terceiro
terceiro at softwarelivre.org
Sun Jul 10 19:02:53 UTC 2011
The following commit has been merged in the master branch:
commit dec2622b0805faf62a3ea10455021b8e38385621
Author: Antonio Terceiro <terceiro at softwarelivre.org>
Date: Sun Jul 10 12:02:26 2011 -0700
Add tests for TestRunner
diff --git a/lib/gem2deb/test_runner.rb b/lib/gem2deb/test_runner.rb
index 46f7bbd..bfee75b 100644
--- a/lib/gem2deb/test_runner.rb
+++ b/lib/gem2deb/test_runner.rb
@@ -39,14 +39,12 @@ module Gem2Deb
dirs
end
+ # Override in subclasses
def run_tests
- if activate?
- execute_tests
- end
end
# override in subclasses
- def execute_tests
+ def run_tests
end
# override in subclasses
@@ -77,8 +75,11 @@ module Gem2Deb
@subclasses
end
def self.detect_and_run
- subclasses.each do |klass|
- klass.new.run_tests
+ detect.run_tests
+ end
+ def self.detect
+ subclasses.map(&:new).find do |runner|
+ runner.activate?
end
end
def rubyver
@@ -92,7 +93,7 @@ module Gem2Deb
def required_file
'debian/ruby-test-files.yaml'
end
- def execute_tests
+ def run_tests
puts "Running tests for #{rubyver} with test file list from debian/ruby-test-files.yaml ..."
run_ruby(
'-ryaml',
@@ -106,7 +107,7 @@ module Gem2Deb
def required_file
'debian/ruby-tests.rake'
end
- def execute_tests
+ def run_tests
puts "Running tests for #{rubyver} using debian/ruby-tests.rake ..."
run_ruby(
'-rrake',
@@ -120,7 +121,7 @@ module Gem2Deb
def required_file
'debian/ruby-tests.rb'
end
- def execute_tests
+ def run_tests
puts "Running tests for #{rubyver} using debian/ruby-tests.rb..."
ENV['RUBY_TEST_VERSION'] = rubyver
ENV['RUBY_TEST_BIN'] = ruby_binary
@@ -132,7 +133,7 @@ module Gem2Deb
def required_file
'debian/rules'
end
- def execute_tests
+ def run_tests
puts "Running tests for #{rubyver}: found no way to run a test suite!"
end
end
diff --git a/test/sample/install_files/lib/mylib.rb b/test/sample/test_runner/no_tests/debian/rules
similarity index 100%
copy from test/sample/install_files/lib/mylib.rb
copy to test/sample/test_runner/no_tests/debian/rules
diff --git a/test/sample/test_runner/rake/fail/debian/ruby-tests.rake b/test/sample/test_runner/rake/fail/debian/ruby-tests.rake
new file mode 100644
index 0000000..69fdfcf
--- /dev/null
+++ b/test/sample/test_runner/rake/fail/debian/ruby-tests.rake
@@ -0,0 +1,5 @@
+require 'gem2deb/rake/testtask'
+
+Gem2Deb::Rake::TestTask.new do |t|
+ t.test_files = 'test/test.rb'
+end
diff --git a/test/sample/test_runner/rake/fail/test/test.rb b/test/sample/test_runner/rake/fail/test/test.rb
new file mode 100644
index 0000000..c6e92c6
--- /dev/null
+++ b/test/sample/test_runner/rake/fail/test/test.rb
@@ -0,0 +1,7 @@
+require 'test/unit'
+
+class TestTest < Test::Unit::TestCase
+ def test_test
+ assert false
+ end
+end
diff --git a/test/sample/test_runner/rake/pass/debian/ruby-tests.rake b/test/sample/test_runner/rake/pass/debian/ruby-tests.rake
new file mode 100644
index 0000000..69fdfcf
--- /dev/null
+++ b/test/sample/test_runner/rake/pass/debian/ruby-tests.rake
@@ -0,0 +1,5 @@
+require 'gem2deb/rake/testtask'
+
+Gem2Deb::Rake::TestTask.new do |t|
+ t.test_files = 'test/test.rb'
+end
diff --git a/test/sample/test_runner/rake/pass/test/test.rb b/test/sample/test_runner/rake/pass/test/test.rb
new file mode 100644
index 0000000..43bc637
--- /dev/null
+++ b/test/sample/test_runner/rake/pass/test/test.rb
@@ -0,0 +1,7 @@
+require 'test/unit'
+
+class TestTest < Test::Unit::TestCase
+ def test_test
+ assert true
+ end
+end
diff --git a/test/sample/test_runner/rb/fail/debian/ruby-tests.rb b/test/sample/test_runner/rb/fail/debian/ruby-tests.rb
new file mode 100644
index 0000000..379a4c9
--- /dev/null
+++ b/test/sample/test_runner/rb/fail/debian/ruby-tests.rb
@@ -0,0 +1 @@
+exit 1
diff --git a/test/sample/test_runner/rb/pass/debian/ruby-tests.rb b/test/sample/test_runner/rb/pass/debian/ruby-tests.rb
new file mode 100644
index 0000000..ca916d0
--- /dev/null
+++ b/test/sample/test_runner/rb/pass/debian/ruby-tests.rb
@@ -0,0 +1 @@
+exit 0
diff --git a/test/sample/test_runner/yaml/fail/debian/ruby-test-files.yaml b/test/sample/test_runner/yaml/fail/debian/ruby-test-files.yaml
new file mode 100644
index 0000000..87681da
--- /dev/null
+++ b/test/sample/test_runner/yaml/fail/debian/ruby-test-files.yaml
@@ -0,0 +1,2 @@
+---
+- test/test.rb
diff --git a/test/sample/test_runner/yaml/fail/test/test.rb b/test/sample/test_runner/yaml/fail/test/test.rb
new file mode 100644
index 0000000..c6e92c6
--- /dev/null
+++ b/test/sample/test_runner/yaml/fail/test/test.rb
@@ -0,0 +1,7 @@
+require 'test/unit'
+
+class TestTest < Test::Unit::TestCase
+ def test_test
+ assert false
+ end
+end
diff --git a/test/sample/test_runner/yaml/pass/debian/ruby-test-files.yaml b/test/sample/test_runner/yaml/pass/debian/ruby-test-files.yaml
new file mode 100644
index 0000000..87681da
--- /dev/null
+++ b/test/sample/test_runner/yaml/pass/debian/ruby-test-files.yaml
@@ -0,0 +1,2 @@
+---
+- test/test.rb
diff --git a/test/sample/test_runner/yaml/pass/test/test.rb b/test/sample/test_runner/yaml/pass/test/test.rb
new file mode 100644
index 0000000..43bc637
--- /dev/null
+++ b/test/sample/test_runner/yaml/pass/test/test.rb
@@ -0,0 +1,7 @@
+require 'test/unit'
+
+class TestTest < Test::Unit::TestCase
+ def test_test
+ assert true
+ end
+end
diff --git a/test/unit/test_runner_test.rb b/test/unit/test_runner_test.rb
new file mode 100644
index 0000000..80cea69
--- /dev/null
+++ b/test/unit/test_runner_test.rb
@@ -0,0 +1,55 @@
+require 'test_helper'
+require 'gem2deb/test_runner'
+
+class TestRunnerTest < Gem2DebTestCase
+
+ def self.should_pass_tests(dir)
+ should_succeed(dir, true)
+ end
+
+ def self.should_fail_tests(dir)
+ should_succeed(dir, false)
+ end
+
+ def self.should_detect_test_runner(dir)
+ should "detect a test runner for #{dir}" do
+ Dir.chdir(dir) do
+ assert Gem2Deb::TestRunner.detect
+ end
+ end
+ end
+
+ def self.should_succeed(dir, true_or_false)
+ should_detect_test_runner(dir)
+ should "pass tests on #{dir}" do
+ begin
+ Dir.chdir(dir) do
+ self.class.silence_stream(STDOUT) do
+ self.class.silence_stream(STDERR) do
+ runner = Gem2Deb::TestRunner.detect
+ def runner.exec(*cmd)
+ system(*cmd)
+ exit($?.exitstatus)
+ end
+ rubylib = ENV['RUBYLIB']
+ ENV['RUBYLIB'] = GEM2DEB_ROOT_SOURCE_DIR + '/lib'
+ runner.run_tests
+ ENV['RUBYLIB'] = rubylib
+ end
+ end
+ end
+ rescue SystemExit => e
+ assert_equal true_or_false, e.success?
+ end
+ end
+ end
+
+ should_pass_tests 'test/sample/test_runner/yaml/pass'
+ should_fail_tests 'test/sample/test_runner/yaml/fail'
+ should_pass_tests 'test/sample/test_runner/rake/pass'
+ should_fail_tests 'test/sample/test_runner/rake/fail'
+ should_pass_tests 'test/sample/test_runner/rb/pass'
+ should_fail_tests 'test/sample/test_runner/rb/fail'
+ should_detect_test_runner 'test/sample/test_runner/no_tests'
+
+end
--
gem2deb.git
More information about the Pkg-ruby-extras-commits
mailing list