[Git][java-team/jruby][master] d/tests: create writeable GEM_PATH in custom directory
Jérôme Charaoui (@lavamind)
gitlab at salsa.debian.org
Wed Dec 14 15:20:17 GMT 2022
Jérôme Charaoui pushed to branch master at Debian Java Maintainers / jruby
Commits:
942c9244 by Jérôme Charaoui at 2022-12-12T10:14:02-05:00
d/tests: create writeable GEM_PATH in custom directory
Instead of adding all system gems to jruby, which might cause problems
down the line, build a custom GEM_HOME by copying the default one under
/usr/share/jruby/lib/ruby/shared/gems and copying the test dependency
gems (rake, spec, etc.) from the system libraries.
- - - - -
3 changed files:
- debian/tests/common.sh
- debian/tests/control
- debian/tests/jgem
Changes:
=====================================
debian/tests/common.sh
=====================================
@@ -9,8 +9,28 @@ prepare() {
export LC_ALL=C.UTF-8
export CI=1
export JOBS=2
- # make test dependencies (bundle gems) in system gems available to jruby
- export GEM_PATH=/usr/share/rubygems-integration/all:/usr/lib/ruby/gems/3.1.0
+
+ # create a writeable GEM_HOME in /tmp
+ # with extra gems needed to run the testsuite
+ rm -rf /tmp/jruby_gems
+ mkdir /tmp/jruby_gems
+ cp -a /usr/share/jruby/lib/ruby/gems/shared/* /tmp/jruby_gems
+ for gem in diff-lcs minitest power_assert rake rspec rspec-core rspec-expectations rspec-mocks rspec-support test-unit; do
+ # some gems are copied from libruby*, others from local rubygems
+ if test -e /usr/lib/ruby/gems/*/gems/${gem}-*; then
+ gembase="/usr/lib/ruby/gems/*"
+ else
+ gembase=/usr/share/rubygems-integration/all
+ fi
+ echo "installing ${gem} gem into jruby ..."
+ cp -a ${gembase}/gems/${gem}-* /tmp/jruby_gems/gems
+ cp -a ${gembase}/specifications/${gem}-* /tmp/jruby_gems/specifications
+ done
+ export GEM_HOME=/tmp/jruby_gems
+
+ # copy/fixup the rake binary
+ cp /usr/bin/rake ./bin
+ sed -i '1s|^#!.*|#!/usr/bin/jruby|' ./bin/rake
}
# run 1 test at a time and output test names
=====================================
debian/tests/control
=====================================
@@ -2,7 +2,15 @@ Tests: smoke
Restrictions: superficial
Tests: jgem
-Restrictions: allow-stderr, needs-internet
+Depends:
+ rake,
+ ruby-diff-lcs,
+ ruby-minitest,
+ ruby-power-assert,
+ ruby-rspec,
+ ruby-test-unit,
+ @,
+Restrictions: needs-internet
Tests: jirb
Depends:
=====================================
debian/tests/jgem
=====================================
@@ -1,20 +1,20 @@
#!/bin/sh
-# Test jgem functionality
+. "$(dirname $0)/common.sh"
+
+prepare
-set -e
+cd "$AUTOPKGTEST_TMP"
+
+# Test jgem functionality
# check if default local gems exist
# (specific gem not important)
jgem list | grep '^json'
-# prepare a writable GEM_HOME
-mkdir -p /tmp/jruby/gems /tmp/jruby/bin
-export JRUBY_OPTS="-J-Djruby.gem.home=/tmp/jruby/gems -J-Djruby.bindir=/tmp/jruby/bin"
-
# check if we can install a new gem
-jgem install rake
-jgem list | grep -q "^rake ([0-9\.]\+)"
+jgem install --bindir ./bin trocla
+jgem list | grep -q "^trocla ([0-9\.]\+)"
# invoke the new gem's binary
-jruby -S rake --version
+jruby -S trocla --version
View it on GitLab: https://salsa.debian.org/java-team/jruby/-/commit/942c924416e2eb7c9e652cdbc9a482798ccd2e46
--
View it on GitLab: https://salsa.debian.org/java-team/jruby/-/commit/942c924416e2eb7c9e652cdbc9a482798ccd2e46
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20221214/5a888886/attachment.htm>
More information about the pkg-java-commits
mailing list