[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