aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rwxr-xr-xt/01-unit.t5
-rwxr-xr-xt/05-upgrade.t10
-rwxr-xr-xt/11-git.t33
-rwxr-xr-xt/12-readme.t9
-rw-r--r--t/32-info.t34
-rw-r--r--t/LO-readme/otherreadmes/README1
-rw-r--r--t/LO-readme/otherreadmes/README.SBo1
-rw-r--r--t/LO-readme/otherreadmes/README.SLACKWARE1
-rw-r--r--t/LO-readme/otherreadmes/otherreadmes.SlackBuild15
-rw-r--r--t/LO-readme/otherreadmes/otherreadmes.info10
-rw-r--r--t/LO/locale-versionsbo/README1
-rw-r--r--t/LO/locale-versionsbo/locale-versionsbo.SlackBuild16
-rw-r--r--t/LO/locale-versionsbo/locale-versionsbo.info10
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');
diff --git a/t/11-git.t b/t/11-git.t
index f1f9ebe..73b7050 100755
--- a/t/11-git.t
+++ b/t/11-git.t
@@ -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"