diff options
-rw-r--r-- | .travis.yml | 8 | ||||
-rw-r--r-- | t/LO-fail/multilibfail/README | 1 | ||||
-rw-r--r-- | t/LO-fail/multilibfail/multilibfail.SlackBuild | 24 | ||||
-rw-r--r-- | t/LO-fail/multilibfail/multilibfail.info | 10 | ||||
-rwxr-xr-x | t/fail.t | 30 | ||||
-rwxr-xr-x | t/travis-deps/convertpkg-compat32 | 55 | ||||
-rw-r--r-- | t/travis-deps/install.sh | 11 |
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" @@ -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 |