diff options
-rwxr-xr-x | t/12-readme.t | 85 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest/README | 3 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest/envsettingtest.SlackBuild | 20 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest/envsettingtest.info | 10 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest2/README | 3 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest2/envsettingtest2.SlackBuild | 20 | ||||
-rw-r--r-- | t/LO-readme/envsettingtest2/envsettingtest2.info | 10 |
7 files changed, 151 insertions, 0 deletions
diff --git a/t/12-readme.t b/t/12-readme.t new file mode 100755 index 0000000..3595487 --- /dev/null +++ b/t/12-readme.t @@ -0,0 +1,85 @@ +#!/usr/bin/env perl + +use 5.16.0; +use strict; +use warnings FATAL => 'all'; +use Test::More; +use Capture::Tiny qw/ capture_merged /; +use FindBin '$RealBin'; +use lib $RealBin; +use lib "$RealBin/../SBO-Lib/lib"; +use Test::Execute; + +if ($ENV{TEST_INSTALL}) { + plan tests => 5; +} else { + plan skip_all => 'Only run these tests if TEST_INSTALL=1'; +} + +$path = "$RealBin/../"; + +sub cleanup { + capture_merged { + system(qw!/sbin/removepkg envsettingtest!); + system(qw!/sbin/removepkg envsettingtest2!); + unlink "$RealBin/LO-readme/envsettingtest/perf.dummy"; + unlink "$RealBin/LO-readme/envsettingtest2/perf.dummy"; + system(qw!rm -rf /tmp/SBo/envsettingtest-1.0!); + system(qw!rm -rf /tmp/SBo/envsettingtest2-1.0!); + system(qw!rm -rf /tmp/package-envsettingtest!); + system(qw!rm -rf /tmp/package-envsettingtest2!); + }; +} + +sub make_slackbuilds_txt { + state $made = 0; + my $fname = "/usr/sbo/repo/SLACKBUILDS.TXT"; + if ($_[0]) { + if ($made) { return system(qw!rm -rf!, $fname); } + } else { + if (not -e $fname) { $made = 1; system('mkdir', '-p', '/usr/sbo/repo'); system('touch', $fname); } + } +} + +sub set_lo { + state $set = 0; + state $lo; + if ($_[0]) { + if ($set) { script (qw/ sboconfig -o /, $lo, { test => 0 }); } + } else { + ($lo) = script (qw/ sboconfig -l /, { expected => qr/LOCAL_OVERRIDES=(.*)/, test => 0 }); + $lo //= 'FALSE'; + note "Saving original value of LOCAL_OVERRIDES: $lo"; + $set = 1; + script (qw/ sboconfig -o /, "$RealBin/LO-readme", { test => 0 }); + } +} + +cleanup(); +make_slackbuilds_txt(); +set_lo(); + + +# 1: sboinstall envsettingtest - fail +script (qw/ sboinstall envsettingtest /, { input => "n\ny\ny", exit => 3, expected => qr{It looks like envsettingtest has options; would you like to set any when the slackbuild is run.*FOO isn't bar!.*envsettingtest: envsettingtest.SlackBuild return non-zero}s }); + +# 2: sboinstall envsettingtest - fail 2 +script (qw/ sboinstall envsettingtest /, { input => "y\nFOO=foo\ny\ny", exit => 3, expected => qr{Please supply any options here, or enter to skip:.*FOO isn't bar!.*envsettingtest: envsettingtest.SlackBuild return non-zero}s }); + +# 3: sboinstall envsettingtest - success +script (qw/ sboinstall envsettingtest /, { input => "y\nFOO=bar\ny\ny", expected => qr{Please supply any options here, or enter to skip:.*Install queue: envsettingtest.*Package envsettingtest-1[.]0-noarch-1_SBo[.]tgz installed[.]}s }); +script (qw/ sboremove envsettingtest /, { input => "y\ny", test => 0 }); + +# 4: sboinstall envsettingtest2 - fail prereq +script (qw/ sboinstall envsettingtest2 /, { input => "n\ny\ny\nFOO=quux\ny\ny\nn", exit => 3, expected => qr{It looks like envsettingtest has options.*Proceed with envsettingtest.*It looks like envsettingtest2 has options.*Please supply any options here.*Install queue: envsettingtest envsettingtest2.*FOO isn't bar!.*envsettingtest: envsettingtest.SlackBuild return non-zero}s }); + +# 5: sboinstall envsettingtest2 - success +script (qw/ sboinstall envsettingtest2 /, { input => "y\nFOO=bar\ny\ny\nFOO=quux\ny\ny", expected => qr{It looks like envsettingtest has options.*Please supply any options here.*It looks like envsettingtest2 has options.*Please supply any options here.*Install queue: envsettingtest envsettingtest2.*Package envsettingtest2-1[.]0-noarch-1_SBo[.]tgz installed[.]}s }); +script (qw/ sboremove envsettingtest2 /, { input => "y\ny\ny", test => 0 }); + +# Cleanup +END { + set_lo('delete'); + make_slackbuilds_txt('delete'); + cleanup(); +} diff --git a/t/LO-readme/envsettingtest/README b/t/LO-readme/envsettingtest/README new file mode 100644 index 0000000..a1aabdb --- /dev/null +++ b/t/LO-readme/envsettingtest/README @@ -0,0 +1,3 @@ +This doesn't exist! + +FOO=bar diff --git a/t/LO-readme/envsettingtest/envsettingtest.SlackBuild b/t/LO-readme/envsettingtest/envsettingtest.SlackBuild new file mode 100644 index 0000000..300f2fd --- /dev/null +++ b/t/LO-readme/envsettingtest/envsettingtest.SlackBuild @@ -0,0 +1,20 @@ +#!/bin/bash +PRGNAM="envsettingtest" +VERSION=${VERSION:-1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +TMP=${TMP:-/tmp/SBo} +OUTPUT=${OUTPUT:-/tmp} + +if [ "$FOO" != "bar" ]; then + echo "FOO isn't bar!" + exit 1 +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-noarch-$BUILD$TAG.tgz diff --git a/t/LO-readme/envsettingtest/envsettingtest.info b/t/LO-readme/envsettingtest/envsettingtest.info new file mode 100644 index 0000000..8d5159d --- /dev/null +++ b/t/LO-readme/envsettingtest/envsettingtest.info @@ -0,0 +1,10 @@ +PRGNAM="envsettingtest" +VERSION="1.0" +HOMEPAGE="http://www.example.com" +DOWNLOAD="http://pink-mist.github.io/sbotools/testing/perf.dummy" +MD5SUM="9cba6c70fb57a22a155073d54748b614" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Andreas Guldstrand" +EMAIL="doesnt@matter.org" diff --git a/t/LO-readme/envsettingtest2/README b/t/LO-readme/envsettingtest2/README new file mode 100644 index 0000000..35226f8 --- /dev/null +++ b/t/LO-readme/envsettingtest2/README @@ -0,0 +1,3 @@ +This doesn't exist! + +FOO=quux diff --git a/t/LO-readme/envsettingtest2/envsettingtest2.SlackBuild b/t/LO-readme/envsettingtest2/envsettingtest2.SlackBuild new file mode 100644 index 0000000..12077c4 --- /dev/null +++ b/t/LO-readme/envsettingtest2/envsettingtest2.SlackBuild @@ -0,0 +1,20 @@ +#!/bin/bash +PRGNAM="envsettingtest2" +VERSION=${VERSION:-1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +TMP=${TMP:-/tmp/SBo} +OUTPUT=${OUTPUT:-/tmp} + +if [ "$FOO" != "quux" ]; then + echo "FOO isn't quux!" + exit 1 +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-noarch-$BUILD$TAG.tgz diff --git a/t/LO-readme/envsettingtest2/envsettingtest2.info b/t/LO-readme/envsettingtest2/envsettingtest2.info new file mode 100644 index 0000000..ca0ada9 --- /dev/null +++ b/t/LO-readme/envsettingtest2/envsettingtest2.info @@ -0,0 +1,10 @@ +PRGNAM="envsettingtest2" +VERSION="1.0" +HOMEPAGE="http://www.example.com" +DOWNLOAD="http://pink-mist.github.io/sbotools/testing/perf.dummy" +MD5SUM="9cba6c70fb57a22a155073d54748b614" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="envsettingtest" +MAINTAINER="Andreas Guldstrand" +EMAIL="doesnt@matter.org" |