[DRE-commits] [SCM] gem2deb.git branch, master, updated. debian/0.2.3-20-g80a639e

Vincent Fourmond fourmond at debian.org
Mon Jun 6 07:44:03 UTC 2011


The following commit has been merged in the master branch:
commit 6ec395544c562830acf7961657497a347593385a
Author: Vincent Fourmond <fourmond at debian.org>
Date:   Fri Jun 3 01:11:00 2011 +0200

    Add tests for the setuprb build system

diff --git a/debian/control b/debian/control
index 839e264..5d04b8c 100644
--- a/debian/control
+++ b/debian/control
@@ -4,7 +4,7 @@ Priority: optional
 Maintainer: Debian Ruby Extras Maintainers <pkg-ruby-extras-maintainers at lists.alioth.debian.org>
 Uploaders: Lucas Nussbaum <lucas at lucas-nussbaum.net>, Antonio Terceiro <terceiro at softwarelivre.org>
 DM-Upload-Allowed: yes
-Build-Depends: debhelper (>= 7.0.50~), rake, libshoulda-ruby1.8, ruby-mocha, rubygems1.8, ruby1.8, ruby1.8-dev, ruby1.9.1, ruby1.9.1-dev, devscripts
+Build-Depends: debhelper (>= 7.0.50~), rake, libshoulda-ruby1.8, ruby-mocha, rubygems1.8, ruby1.8, ruby1.8-dev, ruby1.9.1, ruby1.9.1-dev, devscripts, ruby-setup
 Standards-Version: 3.9.2
 Vcs-Git: git://git.debian.org/pkg-ruby-extras/gem2deb.git
 Vcs-Browser: http://git.debian.org/?p=pkg-ruby-extras/gem2deb.git;a=summary
diff --git a/test/helper/samples.rb b/test/helper/samples.rb
index f77d520..7054e2e 100644
--- a/test/helper/samples.rb
+++ b/test/helper/samples.rb
@@ -28,5 +28,10 @@ class Gem2DebTestCase
     SIMPLE_MIXED          = File.join(SAMPLE_DIR, "#{SIMPLE_MIXED_NAME}/pkg/#{SIMPLE_MIXED_DIRNAME}.gem")
 
     SIMPLE_GIT            = File.join(SAMPLE_DIR, 'simplegit')
+
+    # Setup.rb
+    
+    SIMPLE_SETUPRB_NAME    = "simplesetuprb"
+    SIMPLE_SETUPRB_DIRNAME = SIMPLE_SETUPRB_NAME + "-0.0.1"
   end
 end
diff --git a/test/unit/dh_rubysetuprb_test.rb b/test/unit/dh_rubysetuprb_test.rb
new file mode 100644
index 0000000..69f2367
--- /dev/null
+++ b/test/unit/dh_rubysetuprb_test.rb
@@ -0,0 +1,82 @@
+require 'test_helper'
+require 'gem2deb/gem2tgz'
+require 'gem2deb/dh_make_ruby'
+require 'gem2deb/dh_ruby'
+require 'gem2deb/dh_ruby_setuprb'
+require 'rbconfig'
+
+class DhRubySetuprbTest < Gem2DebTestCase
+
+  one_time_setup do
+    build(SIMPLE_SETUPRB_NAME, SIMPLE_SETUPRB_DIRNAME)
+  end
+
+  dirname = SIMPLE_SETUPRB_DIRNAME
+  package = "ruby-simplesetuprb"
+
+  context 'installing native extension with setuprb' do
+    arch = RbConfig::CONFIG['arch']
+    [
+     '1.8',
+     '1.9.1',
+    ].each do |version_number|
+      target_so = "/usr/lib/ruby/vendor_ruby/#{version_number}/#{arch}/simplesetuprb.so"
+      should "install native extension for Ruby #{version_number} for #{package}" do
+        assert_installed dirname, package, target_so
+      end
+      should "link #{target_so} against libruby#{version_number} for #{package}" do
+        installed_so = installed_file_path(dirname, package, target_so)
+        assert_match /libruby-?#{version_number}/, `ldd #{installed_so}`
+      end
+    end
+  end
+
+  context 'test pre-install.rb hook' do
+    target_file = "/usr/lib/ruby/vendor_ruby/simplesetuprb/generated.rb"
+    should "install file generated by pre-install.rb hook" do
+      assert_installed dirname, package, target_file
+    end
+  end
+
+  protected
+
+  def assert_installed(gem_dirname, package, path)
+    assert_file_exists installed_file_path(gem_dirname, package, path)
+  end
+
+  def read_installed_file(gem_dirname, package, path)
+    File.read(installed_file_path(gem_dirname, package, path))
+  end
+
+  def installed_file_path(gem_dirname, package, path)
+    File.join(self.class.tmpdir, 'ruby-' + gem_dirname, 'debian', package, path)
+  end
+
+  def self.build(pkgname, source_package)
+    package_path = File.join(tmpdir, 'ruby-' + source_package)
+    tarball =  File.join(tmpdir, source_package + '.tar.gz')
+    source_dir = File.join(tmpdir, source_package)
+
+    FileUtils.cp_r("test/sample/#{pkgname}", source_dir)
+    # Here, copy setup.rb to the source dir.
+    FileUtils.cp("/usr/lib/ruby/vendor_ruby/setup.rb", 
+                 source_dir)
+    system("tar czf #{tarball} -C#{tmpdir} #{source_package}")
+    FileUtils.rm_rf(File.join(tmpdir, source_dir))
+    Gem2Deb::DhMakeRuby.new(tarball).build
+
+    dh_ruby = Gem2Deb::DhRubySetupRb.new
+    dh_ruby.verbose = false
+
+    silence_stream(STDOUT) do
+      Dir.chdir(package_path) do
+        # This sequence tries to imitate what dh will actually do
+        dh_ruby.clean
+        dh_ruby.configure
+        dh_ruby.build
+        dh_ruby.install File.join(package_path, 'debian', 'tmp')
+      end
+    end
+  end
+
+end

-- 
gem2deb.git



More information about the Pkg-ruby-extras-commits mailing list