diff options
Diffstat (limited to 't')
-rwxr-xr-x | t/01-unit.t | 5 | ||||
-rwxr-xr-x | t/05-upgrade.t | 10 | ||||
-rwxr-xr-x | t/11-git.t | 33 | ||||
-rwxr-xr-x | t/12-readme.t | 9 | ||||
-rw-r--r-- | t/32-info.t | 34 | ||||
-rw-r--r-- | t/LO-readme/otherreadmes/README | 1 | ||||
-rw-r--r-- | t/LO-readme/otherreadmes/README.SBo | 1 | ||||
-rw-r--r-- | t/LO-readme/otherreadmes/README.SLACKWARE | 1 | ||||
-rw-r--r-- | t/LO-readme/otherreadmes/otherreadmes.SlackBuild | 15 | ||||
-rw-r--r-- | t/LO-readme/otherreadmes/otherreadmes.info | 10 | ||||
-rw-r--r-- | t/LO/locale-versionsbo/README | 1 | ||||
-rw-r--r-- | t/LO/locale-versionsbo/locale-versionsbo.SlackBuild | 16 | ||||
-rw-r--r-- | t/LO/locale-versionsbo/locale-versionsbo.info | 10 |
13 files changed, 136 insertions, 10 deletions
diff --git a/t/01-unit.t b/t/01-unit.t index 13d6e8e..6fec4fd 100755 --- a/t/01-unit.t +++ b/t/01-unit.t @@ -11,7 +11,7 @@ use Capture::Tiny qw/ capture_merged /; use File::Temp 'tempdir'; use Cwd; -plan tests => 60; +plan tests => 62; # 1-2: test script_error(); { @@ -319,6 +319,9 @@ SKIP: { local *SBO::Lib::Util::get_kernel_version = sub { "foo_bar" }; is (SBO::Lib::version_cmp('1.0', '1.0_foo_bar'), 0, "version_cmp(1.0, 1.0_foo_bar) returned 0"); + + is (SBO::Lib::version_cmp('1.0_en_US', '1.0'), 0, "version_cmp(1.0_en_US, 1.0) returned 0"); + is (SBO::Lib::version_cmp('1.0', '1.0_en_US'), 0, "version_cmp(1.0, 1.0_en_US) returned 0"); } # 60: test check_multilib(); diff --git a/t/05-upgrade.t b/t/05-upgrade.t index b7e1e29..e35bc5c 100755 --- a/t/05-upgrade.t +++ b/t/05-upgrade.t @@ -25,12 +25,14 @@ sub cleanup { system(qw!/sbin/removepkg nonexistentslackbuild5!); system(qw!/sbin/removepkg nonexistentslackbuild6!); system(qw!/sbin/removepkg weird-versionsbo!); + system(qw!/sbin/removepkg locale-versionsbo!); unlink "$RealBin/LO/nonexistentslackbuild/perf.dummy"; unlink "$RealBin/LO/nonexistentslackbuild2/perf.dummy"; unlink "$RealBin/LO/nonexistentslackbuild4/perf.dummy"; unlink "$RealBin/LO/nonexistentslackbuild5/perf.dummy"; unlink "$RealBin/LO/nonexistentslackbuild6/perf.dummy"; unlink "$RealBin/LO/weird-versionsbo/perf.dummy"; + unlink "$RealBin/LO/locale-versionsbo/perf.dummy"; unlink "$RealBin/LO2/nonexistentslackbuild/perf.dummy"; unlink "$RealBin/LO2/nonexistentslackbuild2/perf.dummy"; unlink "$RealBin/LO2/nonexistentslackbuild4/perf.dummy"; @@ -50,6 +52,7 @@ sub cleanup { system(qw!rm -rf /tmp/SBo/nonexistentslackbuild5-1.0!); system(qw!rm -rf /tmp/SBo/nonexistentslackbuild6-1.0!); system(qw!rm -rf /tmp/SBo/weird-versionsbo-1.0!); + system(qw!rm -rf /tmp/SBo/locale-versionsbo-1.0!); system(qw!rm -rf /tmp/SBo/nonexistentslackbuild-1.1!); system(qw!rm -rf /tmp/SBo/nonexistentslackbuild2-1.1!); system(qw!rm -rf /tmp/SBo/nonexistentslackbuild4-1.1!); @@ -61,6 +64,7 @@ sub cleanup { system(qw!rm -rf /tmp/package-nonexistentslackbuild5!); system(qw!rm -rf /tmp/package-nonexistentslackbuild6!); system(qw!rm -rf /tmp/package-weird-versionsbo!); + system(qw!rm -rf /tmp/package-locale-versionsbo!); }; } @@ -129,9 +133,9 @@ sboupgrade '--all', { expected => "Checking for updated SlackBuilds...\nNothing cleanup(); -# 16: sboupgrade --all shouldn't pick up weird-versionsbo -install('LO', 'weird-versionsbo'); -sboupgrade '--all', { input => ("n\n" x (@sbos+1)), expected => sub { not /weird-versionsbo/ } }; +# 16: sboupgrade --all shouldn't pick up weird-versionsbo or locale-versionsbo +install('LO', 'weird-versionsbo', 'locale-versionsbo'); +sboupgrade '--all', { input => ("n\n" x (@sbos+1)), expected => sub { not /weird-versionsbo/ and not /locale-versionsbo/ } }; # 17-18: sboupgrade -r -f both something installed and something not installed install('LO', 'nonexistentslackbuild'); @@ -10,14 +10,18 @@ use lib $RealBin; use Test::Sbotools qw/ set_repo sbosnap /; if ($ENV{TEST_INSTALL}) { - plan tests => 3; + plan tests => 5; } else { plan skip_all => 'Only run these tests if TEST_INSTALL=1'; } sub cleanup { capture_merged { - system(qw!rm -rf !, "$RealBin/gitrepo"); + system(qw!rm -rf !, "$RealBin/gitrepo"); + if (defined $ENV{TRAVIS} and $ENV{TRAVIS} eq 'true') { + system(qw!userdel test!); + system(qw!groupdel test!); + } }; } @@ -40,20 +44,39 @@ git checkout -b b1; echo 'echo "Hello World."' > test; git commit -am 'branch co git checkout master; echo 'echo "Hello World"' > test; git commit -am 'master commit'; END -set_repo("file://$RealBin/gitrepo/"); +if (defined $ENV{TRAVIS} and $ENV{TRAVIS} eq 'true') { +capture_merged { system(<<"END"); }; +groupadd -g 200 test +useradd -u 200 -g 200 -d /tmp test +chown -R 200:200 $RealBin/gitrepo +END +} + +set_repo("$RealBin/gitrepo/"); # 1: sbosnap get initial repo sbosnap 'fetch', { expected => qr!Pulling SlackBuilds tree.*Cloning into '/usr/sbo/repo'!s }; +# 2-3: check ownership of repodir if under TRAVIS +SKIP: { + skip "Only run under Travis CI", 2 unless defined $ENV{TRAVIS} and $ENV{TRAVIS} eq 'true'; + + my @fnames = glob "$RealBin/gitrepo/.git/objects/*/*"; + + my @stat = stat shift @fnames; + is ($stat[4], 200, "Correct owner uid for $RealBin/gitrepo"); + is ($stat[5], 200, "Correct owner gid for $RealBin/gitrepo"); +} + # make a conflict capture_merged { system(<<"END"); }; cd "$RealBin"; cd gitrepo; git reset --hard b1 END -# 2: sbosnap update through merge conflict +# 4: sbosnap update through merge conflict sbosnap 'update', { expected => qr!Updating SlackBuilds tree.*master.*->.*origin/master.*forced update.*HEAD is now at!s }; -# 3: make sure test repo is merged correctly +# 5: make sure test repo is merged correctly is (slurp('/usr/sbo/repo/test'), <<"END", 'repo test file updated correctly'); echo "Hello World." END diff --git a/t/12-readme.t b/t/12-readme.t index ff69ac2..eb472d2 100755 --- a/t/12-readme.t +++ b/t/12-readme.t @@ -10,7 +10,7 @@ use lib $RealBin; use Test::Sbotools qw/ make_slackbuilds_txt set_lo sboinstall sboremove restore_perf_dummy /; if ($ENV{TEST_INSTALL}) { - plan tests => 10; + plan tests => 11; } else { plan skip_all => 'Only run these tests if TEST_INSTALL=1'; } @@ -19,12 +19,16 @@ sub cleanup { capture_merged { system(qw!/sbin/removepkg envsettingtest!); system(qw!/sbin/removepkg envsettingtest2!); + system(qw!/sbin/removepkg otherreadmes!); unlink "$RealBin/LO-readme/envsettingtest/perf.dummy"; unlink "$RealBin/LO-readme/envsettingtest2/perf.dummy"; + unlink "$RealBin/LO-readme/otherreadmes/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/SBo/otherreadmes-1.0!); system(qw!rm -rf /tmp/package-envsettingtest!); system(qw!rm -rf /tmp/package-envsettingtest2!); + system(qw!rm -rf /tmp/package-otherreadmes!); }; } @@ -70,6 +74,9 @@ SKIP: { capture_merged { system(qw/ userdel test /); system(qw/ groupdel test /); }; } +# 11: sboinstall otherreadmes +sboinstall 'otherreadmes', { input => "y\ny\ny", expected => qr/It looks like.*Would you like to see.*README.*SlackBuilds[.]org.*SLACKWARE/s }; + # Cleanup END { cleanup(); diff --git a/t/32-info.t b/t/32-info.t new file mode 100644 index 0000000..91cec79 --- /dev/null +++ b/t/32-info.t @@ -0,0 +1,34 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +use Test::More; + +use SBO::Lib 'parse_info'; + +plan tests => 13; + +my %parse = parse_info(<<"END"); +FOO="bar" +BAR="foo bar +baz" +BAZ="barf foof + bazf" +QUUX="finf" +END + +is ($parse{FOO}[0], 'bar', 'bar value gotten from FOO key'); +is ($parse{FOO}[1], undef, 'FOO key has correct length'); +is ($parse{BAR}[0], 'foo', 'foo value gotten from BAR key'); +is ($parse{BAR}[1], 'bar', 'bar value gotten from BAR key'); +is ($parse{BAR}[2], 'baz', 'baz value gotten from BAR key'); +is ($parse{BAR}[3], undef, 'BAR key has correct length'); +is ($parse{BAZ}[0], 'barf', 'barf value gotten from BAZ key'); +is ($parse{BAZ}[1], 'foof', 'foof value gotten from BAZ key'); +is ($parse{BAZ}[2], 'bazf', 'bazf value gotten from BAZ key'); +is ($parse{BAZ}[3], undef, 'BAZ key has correct length'); +is ($parse{QUUX}[0], 'finf', 'finf value gotten from QUUX key'); +is ($parse{QUUX}[1], undef, 'QUUX key has correct length'); +delete @parse{qw/ FOO BAR BAZ QUUX /}; +is (scalar %parse, 0, 'no additional keys were parsed'); diff --git a/t/LO-readme/otherreadmes/README b/t/LO-readme/otherreadmes/README new file mode 100644 index 0000000..6d388bb --- /dev/null +++ b/t/LO-readme/otherreadmes/README @@ -0,0 +1 @@ +This doesn't exist! diff --git a/t/LO-readme/otherreadmes/README.SBo b/t/LO-readme/otherreadmes/README.SBo new file mode 100644 index 0000000..7ff669b --- /dev/null +++ b/t/LO-readme/otherreadmes/README.SBo @@ -0,0 +1 @@ +this is the README for SlackBuilds.org diff --git a/t/LO-readme/otherreadmes/README.SLACKWARE b/t/LO-readme/otherreadmes/README.SLACKWARE new file mode 100644 index 0000000..9539839 --- /dev/null +++ b/t/LO-readme/otherreadmes/README.SLACKWARE @@ -0,0 +1 @@ +this is the README for SLACKWARE! diff --git a/t/LO-readme/otherreadmes/otherreadmes.SlackBuild b/t/LO-readme/otherreadmes/otherreadmes.SlackBuild new file mode 100644 index 0000000..4466ded --- /dev/null +++ b/t/LO-readme/otherreadmes/otherreadmes.SlackBuild @@ -0,0 +1,15 @@ +#!/bin/bash +PRGNAM="otherreadmes" +VERSION=${VERSION:-1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +TMP=${TMP:-/tmp/SBo} +OUTPUT=${OUTPUT:-/tmp} + +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/otherreadmes/otherreadmes.info b/t/LO-readme/otherreadmes/otherreadmes.info new file mode 100644 index 0000000..3dcaf67 --- /dev/null +++ b/t/LO-readme/otherreadmes/otherreadmes.info @@ -0,0 +1,10 @@ +PRGNAM="otherreadmes" +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/locale-versionsbo/README b/t/LO/locale-versionsbo/README new file mode 100644 index 0000000..6d388bb --- /dev/null +++ b/t/LO/locale-versionsbo/README @@ -0,0 +1 @@ +This doesn't exist! diff --git a/t/LO/locale-versionsbo/locale-versionsbo.SlackBuild b/t/LO/locale-versionsbo/locale-versionsbo.SlackBuild new file mode 100644 index 0000000..f146a92 --- /dev/null +++ b/t/LO/locale-versionsbo/locale-versionsbo.SlackBuild @@ -0,0 +1,16 @@ +#!/bin/bash +PRGNAM="locale-versionsbo" +VERSION=${VERSION:-1.0} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +TMP=${TMP:-/tmp/SBo} +OUTPUT=${OUTPUT:-/tmp} +KERNEL=$(uname -r) + +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\_en_US-noarch-$BUILD$TAG.tgz diff --git a/t/LO/locale-versionsbo/locale-versionsbo.info b/t/LO/locale-versionsbo/locale-versionsbo.info new file mode 100644 index 0000000..787a2ef --- /dev/null +++ b/t/LO/locale-versionsbo/locale-versionsbo.info @@ -0,0 +1,10 @@ +PRGNAM="locale-versionsbo" +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" |