[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