61 lines
1.6 KiB
Bash
61 lines
1.6 KiB
Bash
# Copyright 1999-2024 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
USE_RUBY="ruby31 ruby32 ruby33"
|
|
|
|
RUBY_FAKEGEM_TASK_TEST="test:unit"
|
|
RUBY_FAKEGEM_EXTRADOC="README.md"
|
|
|
|
MY_PN=${PN/-/_}
|
|
RUBY_FAKEGEM_EXTENSIONS=(ext/${MY_PN}/extconf.rb)
|
|
|
|
inherit ruby-fakegem
|
|
|
|
DESCRIPTION="Liquid performance extension in C"
|
|
HOMEPAGE="https://github.com/Shopify/liquid-c"
|
|
|
|
LICENSE="MIT"
|
|
SLOT="$(ver_cut 1)"
|
|
KEYWORDS="~amd64 ~arm64"
|
|
|
|
ruby_add_rdepend ">=dev-ruby/liquid-5.0.1:*"
|
|
|
|
all_ruby_prepare() {
|
|
sed -i -e "s/-Werror//" ext/${MY_PN}/extconf.rb || die
|
|
|
|
sed -i \
|
|
-e "/[Bb]undler/d" \
|
|
-e "/memcheck/Id" \
|
|
-e '/extensiontask/ s:^:#:' \
|
|
Rakefile || die
|
|
sed -i -e 's/unit: :compile/:unit/' rakelib/unit_test.rake || die
|
|
rm -r rakelib/compile.rake || die
|
|
|
|
sed -i -e 's/MiniTest/Minitest/' test/unit/*_test.rb || die
|
|
|
|
# ruby_memcheck is a gem just for running w/ valgrind.
|
|
# We don't run tests in ebuilds with Valgrind because it's
|
|
# non-portable and sometimes flaky under sandbox.
|
|
rm rakelib/integration_test.rake || die
|
|
sed -i -e '/memcheck/Id' rakelib/unit_test.rake || die
|
|
}
|
|
|
|
each_ruby_test() {
|
|
# Backup the original extension and hide it away
|
|
# The tests won't build if they detect an already-built ext
|
|
mkdir -p "${T}"/${RUBY}.orig || die
|
|
mv ext "${T}"/${RUBY}.orig/ext || die
|
|
cp -r "${WORKDIR}"/all/${P}/ext ext || die
|
|
|
|
nonfatal each_fakegem_test --trace || failed_tests=1
|
|
|
|
# Always restore the original extension we built, even if
|
|
# tests failed, as FEATURES=test-fail-continue may be enabled.
|
|
rm -rf ext || die
|
|
mv "${T}"/${RUBY}.orig/ext ext || die
|
|
|
|
if [[ ${failed_tests} == 1 ]] ; then
|
|
die "Tests failed with ${RUBY}!"
|
|
fi
|
|
}
|