aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.travis.yml8
-rw-r--r--t/LO-fail/multilibfail/README1
-rw-r--r--t/LO-fail/multilibfail/multilibfail.SlackBuild24
-rw-r--r--t/LO-fail/multilibfail/multilibfail.info10
-rwxr-xr-xt/fail.t30
-rwxr-xr-xt/travis-deps/convertpkg-compat3255
-rw-r--r--t/travis-deps/install.sh11
7 files changed, 136 insertions, 3 deletions
diff --git a/.travis.yml b/.travis.yml
index a0955c3..9cd55f8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -4,9 +4,13 @@ perl:
- "5.18"
- "5.16"
env:
- - TEST_ONLINE=1 TEST_INSTALL=1
+ - TEST_ONLINE=1 TEST_INSTALL=1 TEST_MULTILIB=0
+ - TEST_ONLINE=1 TEST_INSTALL=1 TEST_MULTILIB=1
+ - TEST_ONLINE=1 TEST_INSTALL=1 TEST_MULTILIB=2
- TEST_ONLINE=1 TEST_INSTALL=0
- - TEST_ONLINE=0 TEST_INSTALL=1
+ - TEST_ONLINE=0 TEST_INSTALL=1 TEST_MULTILIB=0
+ - TEST_ONLINE=0 TEST_INSTALL=1 TEST_MULTILIB=1
+ - TEST_ONLINE=0 TEST_INSTALL=1 TEST_MULTILIB=2
- TEST_ONLINE=0 TEST_INSTALL=0
sudo: required
install:
diff --git a/t/LO-fail/multilibfail/README b/t/LO-fail/multilibfail/README
new file mode 100644
index 0000000..6d388bb
--- /dev/null
+++ b/t/LO-fail/multilibfail/README
@@ -0,0 +1 @@
+This doesn't exist!
diff --git a/t/LO-fail/multilibfail/multilibfail.SlackBuild b/t/LO-fail/multilibfail/multilibfail.SlackBuild
new file mode 100644
index 0000000..d7c504a
--- /dev/null
+++ b/t/LO-fail/multilibfail/multilibfail.SlackBuild
@@ -0,0 +1,24 @@
+#!/bin/bash
+PRGNAM="multilibfail"
+VERSION=${VERSION:-1.0}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+TMP=${TMP:-/tmp/SBo}
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i486 ;;
+ arm*) ARCH=arm ;;
+ # Unless $ARCH is already set, use uname -m for all other archs:
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+mkdir -p $TMP/$PRGNAM-$VERSION
+cp README $TMP/$PRGNAM-$VERSION
+mkdir -p $OUTPUT/package-$PRGNAM/usr/doc/$PRGNAM-$VERSION
+cp README $OUTPUT/package-$PRGNAM/usr/doc/$PRGNAM-$VERSION
+cd $OUTPUT/package-$PRGNAM
+
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.tgz
diff --git a/t/LO-fail/multilibfail/multilibfail.info b/t/LO-fail/multilibfail/multilibfail.info
new file mode 100644
index 0000000..2baa854
--- /dev/null
+++ b/t/LO-fail/multilibfail/multilibfail.info
@@ -0,0 +1,10 @@
+PRGNAM="multilibfail"
+VERSION="1.0"
+HOMEPAGE="http://www.example.com"
+DOWNLOAD="http://www.pastemobile.org/perf.dummy"
+MD5SUM="9cba6c70fb57a22a155073d54748b614"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="Andreas Guldstrand"
+EMAIL="doesnt@matter.org"
diff --git a/t/fail.t b/t/fail.t
index 1585bb2..36de94c 100755
--- a/t/fail.t
+++ b/t/fail.t
@@ -11,11 +11,12 @@ use lib "$RealBin/../SBO-Lib/lib";
use Test::Execute;
if ($ENV{TEST_INSTALL}) {
- plan tests => 13;
+ plan tests => 16;
} else {
plan skip_all => 'Only run these tests if TEST_INSTALL=1';
}
$ENV{TEST_ONLINE} //= 0;
+$ENV{TEST_MULTILIB} //= 0;
$path = "$RealBin/../";
@@ -141,6 +142,33 @@ script (qw/ sboinstall malformed-readme /, { expected => "A fatal script error h
script (qw/ sboinstall malformed-slackbuild /,
{ input => "y\ny", expected => qr!Failures:\n malformed-slackbuild: Unable to backup \Q$RealBin/LO-fail/malformed-slackbuild/malformed-slackbuild.SlackBuild to $RealBin/LO-fail/malformed-slackbuild/malformed-slackbuild.SlackBuild.orig\E!, exit => 6 });
+# 14: Multilib fails - no multilib
+SKIP: {
+ skip "No multilib test only valid when TEST_MULTILIB=0", 1 unless $ENV{TEST_MULTILIB} == 0;
+ skip "/etc/profile.d/32dev.sh exists", 1 if -e "/etc/profile.d/32dev.sh";
+
+ script (qw/ sboinstall -p nonexistentslackbuild /, { input => "y\ny\ny", expected => qr/Failures:\n nonexistentslackbuild-compat32: compat32 requires multilib[.]\n/, exit => 9 });
+ script (qw/ sboremove nonexistentslackbuild /, { input => "y\ny", test => 0 });
+}
+
+# 15: Multilib fails - no convertpkg
+SKIP: {
+ skip "No convertpkg test only valid when TEST_MULTILIB=1", 1 unless $ENV{TEST_MULTILIB} == 1;
+ skip "/etc/profile.d/32dev.sh doesn't exist", 1 unless -e "/etc/profile.d/32dev.sh";
+ skip "/usr/sbin/convertpkg-compat32 exists", 1 if -e "/usr/sbin/convertpkg-compat32";
+
+ script (qw/ sboinstall -p nonexistentslackbuild /, { input => "y\ny\ny", expected => qr!Failures:\n nonexistentslackbuild-compat32: compat32 requires /usr/sbin/convertpkg-compat32[.]\n!, exit => 11 });
+}
+
+# 16: Multilib fails - convertpkg fail
+SKIP: {
+ skip "Multilib convertpkg fail test only valid if TEST_MULTILIB=2", 1 unless $ENV{TEST_MULTILIB} == 2;
+ skip "No /etc/profile.d/32dev.sh", 1 unless -e "/etc/profile.d/32dev.sh";
+ skip "No /usr/sbin/convertpkg-compat32", 1 unless -e "/usr/sbin/convertpkg-compat32";
+
+ script (qw/ sboinstall -p multilibfail /, { input => "y\ny\ny", expected => qr//, exit => 9 });
+}
+
# Cleanup
END {
set_lo('delete');
diff --git a/t/travis-deps/convertpkg-compat32 b/t/travis-deps/convertpkg-compat32
new file mode 100755
index 0000000..5eb29e7
--- /dev/null
+++ b/t/travis-deps/convertpkg-compat32
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+while [[ $# > 1 ]]
+do
+key="$1"
+
+case $key in
+ -i)
+ INPUT="$2"
+ shift
+ ;;
+ -o)
+ OUTPKG="$2"
+ shift
+ ;;
+ -d)
+ DESTINATION="$2"
+ shift
+ ;;
+ -s)
+ DESC="$2"
+ shift
+ ;;
+ -e)
+ EXT="$2"
+ shift
+ ;;
+esac
+shift
+done
+
+ARCH=${ARCH:-$(uname -m)}
+TAG=${TAG:-compat32}
+OUTPUT=${OUTPUT:-/tmp}
+TMP=${TMP:-/tmp}
+EXT=${EXT:-tgz}
+PKGFILE="$(basename ${INPUT})"
+PKGPATH="$(cd $(dirname ${INPUT}); pwd)/$(basename ${INPUT})"
+PKGNAM=$(echo $PKGFILE | rev | cut -f4- -d- | rev)
+VERSION=$(echo $PKGFILE | rev | cut -f3 -d- | rev)
+BUILD=$(echo $PKGFILE | rev | cut -f1 -d- | cut -f2- -d. | rev)
+OUTPKG=${OUTPKG:-"${PKGNAM}-compat32-${VERSION}-${ARCH}-${BUILD}${TAG}.${EXT}"}
+PKGNAM32=$(echo $OUTPKG | rev | cut -f4- -d- | rev)
+
+echo "Converting package $PKGNAM (version $VERSION) to $OUTPKG ($PKGNAM32)"
+
+if [ "$PKGNAM" = "multilibfail" ]
+then
+ exit 1
+fi
+
+touch $OUTPUT/$OUTPKG
+echo "Slackware package $OUTPUT/$OUTPKG created."
+
+echo "Package created: $OUTPUT/$OUTPKG"
diff --git a/t/travis-deps/install.sh b/t/travis-deps/install.sh
index 073802e..125e4f6 100644
--- a/t/travis-deps/install.sh
+++ b/t/travis-deps/install.sh
@@ -2,3 +2,14 @@
mkdir -p /var/log/packages
cp -a t/travis-deps/*pkg /sbin/
echo "127.0.0.1 slackware.uk" >> /etc/hosts
+
+if [ "$TEST_MULTILIB" = "1" ]
+then
+ mkdir -p /etc/profile.d/
+ touch /etc/profile.d/32dev.sh
+elif [ "$TEST_MULTILIB" = "2" ]
+then
+ mkdir -p /etc/profile.d/ /usr/sbin/
+ touch /etc/profile.d/32dev.sh
+ cp -a t/travis-deps/convertpkg-compat32 /usr/sbin
+fi