aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
Diffstat (limited to 't')
-rwxr-xr-xt/01-unit.t12
-rwxr-xr-xt/02.2-unit-repo.t2
-rwxr-xr-xt/03-travis.t45
-rwxr-xr-xt/05-upgrade.t11
-rwxr-xr-xt/11-git.t3
-rwxr-xr-xt/15-usage.t3
-rwxr-xr-xt/17-find.t3
-rwxr-xr-xt/18-snap.t4
-rwxr-xr-xt/22-race.t12
-rwxr-xr-xt/27-race-sbofind.t3
-rwxr-xr-xt/Test/Execute.pm16
-rw-r--r--t/Test/Sbotools.pm3
-rw-r--r--t/sbotools.conf1
13 files changed, 90 insertions, 28 deletions
diff --git a/t/01-unit.t b/t/01-unit.t
index d94fd9b..73f905c 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 => 61;
+plan tests => 62;
# 1-2: test script_error();
{
@@ -149,7 +149,7 @@ SKIP: {
local $config{SLACKWARE_VERSION} = '14.1';
my $res;
- my $out = capture_merged { $res = SBO::Lib::rsync_sbo_tree('/foo-bar'); };
+ my $out = capture_merged { $res = SBO::Lib::rsync_sbo_tree('/foo-bar', ''); };
ok (!$res, q"rsync_sbo_tree('/foo-bar') returned false");
like ($out, qr!rsync: (.*)change_dir "/foo-bar" failed!, q"rsync_sbo_tree('/foo-bar') gave correct output");
@@ -161,7 +161,7 @@ SKIP: {
system(qw! mkdir -p /usr/sbo/repo/.git !);
my $res;
- capture_merged { $res = SBO::Lib::git_sbo_tree(''); };
+ capture_merged { $res = SBO::Lib::git_sbo_tree('', ''); };
is ($res, 0, q!git_sbo_tree('') returned 0!);
system(qw! rm -r /usr/sbo/repo !) if -d '/usr/sbo/repo';
@@ -171,10 +171,10 @@ SKIP: {
close $fh;
undef $res;
- capture_merged { $res = SBO::Lib::git_sbo_tree(''); };
+ capture_merged { $res = SBO::Lib::git_sbo_tree('', ''); };
is ($res, 0, q!git_sbo_tree('') with .git/config returned 0 !);
undef $res;
- capture_merged { $res = SBO::Lib::git_sbo_tree('foo'); };
+ capture_merged { $res = SBO::Lib::git_sbo_tree('foo', ''); };
is ($res, 0, q!git_sbo_tree('foo') returned 0!);
system(qw! rm -r /usr/sbo/repo !) if -d '/usr/sbo/repo';
@@ -203,7 +203,7 @@ SKIP: {
my $cwd = getcwd();
undef $res;
- my $out = capture_merged { $res = SBO::Lib::git_sbo_tree(''); };
+ my $out = capture_merged { $res = SBO::Lib::git_sbo_tree('', ''); };
is ($out, '', 'git_sbo_tree() no output');
is ($res, 0, 'git_sbo_tree() returned 0');
diff --git a/t/02.2-unit-repo.t b/t/02.2-unit-repo.t
index e06fc82..a47dc7d 100755
--- a/t/02.2-unit-repo.t
+++ b/t/02.2-unit-repo.t
@@ -27,7 +27,7 @@ note "rsync $url:\n" . capture_merged {
no warnings 'redefine';
local *SBO::Lib::Repo::get_slack_version = sub { '14.1' };
- $rsync_res = exit_code { rsync_sbo_tree($url); };
+ $rsync_res = exit_code { rsync_sbo_tree($url, 'FALSE'); };
};
if (defined $rsync_res) {
diff --git a/t/03-travis.t b/t/03-travis.t
index 7b6c97f..cfe517e 100755
--- a/t/03-travis.t
+++ b/t/03-travis.t
@@ -11,7 +11,7 @@ use lib "$RealBin/../SBO-Lib/lib";
use Test::Sbotools qw/ sboconfig sbosnap sbofind sboinstall sboremove sbocheck sboupgrade /;
if (defined $ENV{TRAVIS} and $ENV{TRAVIS} eq 'true') {
- plan tests => 26;
+ plan tests => 41;
} else {
plan skip_all => 'Only run these tests under Travis CI (TRAVIS=true)';
}
@@ -20,8 +20,11 @@ $ENV{TEST_ONLINE} //= 0;
# Since this is only run under Travis CI, we can blow away the repo without consequence
system(qw! rm -rf /usr/sbo !);
+# Disable GPG verification
+sboconfig qw/ --gpg-key FALSE /;
+
# 1-3: Test SLACKWARE_VERSION
-sboconfig qw/ -V 14.1 /, { expected => "Setting SLACKWARE_VERSION to 14.1...\n" };
+sboconfig qw/ -V 15.0 /, { expected => "Setting SLACKWARE_VERSION to 15.0...\n" };
SKIP: {
skip 'Not doing online tests without TEST_ONLINE=1', 2 if $ENV{TEST_ONLINE} ne '1';
@@ -118,6 +121,44 @@ sboupgrade qw/ -f -z nonexistentslackbuild4 /, {
expected => qr/nonexistentslackbuild5 added to upgrade queue.*nonexistentslackbuild4 added to upgrade queue.*Upgrade queue: nonexistentslackbuild5 nonexistentslackbuild4\n/s
};
+# 27-34: Test GPG verification
+SKIP: {
+ skip 'Not doing online tests without TEST_ONLINE=1', 4 if $ENV{TEST_ONLINE} ne '1';
+
+ # Since this is only run under Travis CI, we can blow away the repo without consequence
+ system(qw! rm -rf /usr/sbo !);
+ system(qw! gpg --batch --yes --delete-key D3076BC3E783EE747F09B8B70368EF579C7BA3B6 2>&1 >/dev/null !);
+
+ sboconfig qw/ --gpg-key D3076BC3E783EE747F09B8B70368EF579C7BA3B6 /;
+ sbosnap(("import-key", "https://slackbuilds.org/GPG-KEY"), { expected => qr!.*key imported.*! });
+
+ sboconfig qw! -r https://git.slackbuilds.org/slackbuilds !, { expected => "Setting REPO to https://git.slackbuilds.org/slackbuilds...\n", name => 'Official Git' };
+
+ sbosnap 'fetch', { expected => qr!Pulling SlackBuilds tree.*Cloning into '/usr/sbo/repo'.*Verifying.*!s };
+ ok (-e "/usr/sbo/repo/SLACKBUILDS.TXT", "SLACKBUILDS.TXT exists (REPO)");
+ ok (! -e "/usr/sbo/repo/SLACKBUILDS.TXT.gz", "SLACKBUILDS.TXT.gz doesn't exist (REPO)");
+ sbofind 'sbotools', { expected => qr"SBo: sbotools .*\nPath: /usr/sbo/repo/system/sbotools\n\n" };
+}
+
+# 35-41 Test GPG verification
+SKIP: {
+ skip 'Not doing online tests without TEST_ONLINE=1', 4 if $ENV{TEST_ONLINE} ne '1';
+
+ # Since this is only run under Travis CI, we can blow away the repo without consequence
+ system(qw! rm -rf /usr/sbo !);
+ system(qw! gpg --batch --yes --delete-key D3076BC3E783EE747F09B8B70368EF579C7BA3B6 2>&1 >/dev/null !);
+
+ sboconfig qw/ --gpg-key D3076BC3E783EE747F09B8B70368EF579C7BA3B6 /;
+ sbosnap(("import-key", "https://slackbuilds.org/GPG-KEY"), { expected => qr!.*key imported.*! });
+
+ sboconfig qw! -r rsync://slackbuilds.org/slackbuilds/15.0/ !, { expected => "Setting REPO to rsync://slackbuilds.org/slackbuilds/15.0/...\n", name => 'Official Rsync' };
+
+ sbosnap 'fetch', { expected => qr!Pulling SlackBuilds tree.*Verifying CHECKSUMS.md5.*Verifying file integrity using CHECKSUMS.md5.*!s };
+ ok (-e "/usr/sbo/repo/SLACKBUILDS.TXT", "SLACKBUILDS.TXT exists (REPO)");
+ ok (-e "/usr/sbo/repo/SLACKBUILDS.TXT.gz", "SLACKBUILDS.TXT.gz exists (REPO)");
+ sbofind 'sbotools', { expected => qr"SBo: sbotools .*\nPath: /usr/sbo/repo/system/sbotools\n\n" };
+}
+
# Cleanup
capture_merged {
system(qw!/sbin/removepkg nonexistentslackbuild!);
diff --git a/t/05-upgrade.t b/t/05-upgrade.t
index b976d8c..b34bcde 100755
--- a/t/05-upgrade.t
+++ b/t/05-upgrade.t
@@ -7,7 +7,7 @@ use Test::More;
use Capture::Tiny qw/ capture_merged /;
use FindBin '$RealBin';
use lib $RealBin;
-use Test::Sbotools qw/ make_slackbuilds_txt set_lo sboconfig sboinstall sboupgrade restore_perf_dummy set_repo sbosnap /;
+use Test::Sbotools qw/ make_slackbuilds_txt set_gpg_verify set_lo sboconfig sboinstall sboupgrade restore_perf_dummy set_repo sbosnap /;
use File::Temp 'tempdir';
if ($ENV{TEST_INSTALL}) {
@@ -70,6 +70,7 @@ sub cleanup {
cleanup();
make_slackbuilds_txt();
+set_gpg_verify('FALSE');
set_lo("$RealBin/LO");
restore_perf_dummy();
@@ -119,7 +120,13 @@ sboupgrade qw/ -f nonexistentslackbuild4 /, { input => "y\ny\ny", expected => qr
# 13-16: sbosnap + sboupgrade --all
my $temp = tempdir(CLEANUP => 1);
set_repo("file://$temp");
-capture_merged { system("cd $temp; git init;"); };
+capture_merged { system(<<"END"); };
+cd "$temp";
+git init;
+echo hello > README.txt;
+git add README.txt;
+git commit -am init;
+END
sbosnap 'fetch', { expected => qr/Pulling SlackBuilds tree[.][.][.]/ };
install( 'LO2', 'nonexistentslackbuild' );
my @sbos = glob("/var/log/packages/*_SBo");
diff --git a/t/11-git.t b/t/11-git.t
index b8025f1..0322872 100755
--- a/t/11-git.t
+++ b/t/11-git.t
@@ -7,7 +7,7 @@ use Test::More;
use Capture::Tiny qw/ capture_merged /;
use FindBin '$RealBin';
use lib $RealBin;
-use Test::Sbotools qw/ set_repo sbosnap /;
+use Test::Sbotools qw/ set_gpg_verify set_repo sbosnap /;
if ($ENV{TEST_INSTALL}) {
plan tests => 5;
@@ -65,6 +65,7 @@ git config --system --add safe.directory /tmp/gitrepo/.git
END
}
+set_gpg_verify('FALSE');
set_repo("/tmp/gitrepo/");
# 1: sbosnap get initial repo
diff --git a/t/15-usage.t b/t/15-usage.t
index f14ef84..c528444 100755
--- a/t/15-usage.t
+++ b/t/15-usage.t
@@ -64,6 +64,8 @@ Config options (defaults shown):
DISTCLEAN: if TRUE, DO clean distfiles by default after building.
-j|--jobs FALSE:
JOBS: numeric -j setting to feed to make for multicore systems.
+ -g|--gpg-key D3076BC3E783EE747F09B8B70368EF579C7BA3B6:
+ GPG_KEY GPG key ID for verification.
-p|--pkg-dir FALSE:
PKG_DIR: set a directory to store packages in.
-s|--sbo-home /usr/sbo:
@@ -172,6 +174,7 @@ Options:
Commands:
fetch: initialize a local copy of the slackbuilds.org tree.
+ import-key [path or url]: import GPG for verifying the slackbuilds.org tree. Defaults to the key shipped with sbotools2.
update: update an existing local copy of the slackbuilds.org tree.
(generally, you may prefer "sbocheck" over "sbosnap update")
diff --git a/t/17-find.t b/t/17-find.t
index c911d4c..149616c 100755
--- a/t/17-find.t
+++ b/t/17-find.t
@@ -7,12 +7,13 @@ use Test::More;
use Capture::Tiny qw/ capture_merged /;
use FindBin '$RealBin';
use lib $RealBin;
-use Test::Sbotools qw/ make_slackbuilds_txt set_lo sbofind replace_tags_txt set_repo sbosnap /;
+use Test::Sbotools qw/ make_slackbuilds_txt set_gpg_verify set_lo sbofind replace_tags_txt set_repo sbosnap /;
use File::Temp 'tempdir';
plan tests => 10;
make_slackbuilds_txt();
+set_gpg_verify('FALSE');
set_lo("$RealBin/LO");
# 1: basic sbofind testing
diff --git a/t/18-snap.t b/t/18-snap.t
index 0b2fdb1..2e028a1 100755
--- a/t/18-snap.t
+++ b/t/18-snap.t
@@ -7,7 +7,7 @@ use Test::More;
use Capture::Tiny qw/ capture_merged /;
use FindBin '$RealBin';
use lib $RealBin;
-use Test::Sbotools qw/ sbosnap set_repo set_sbo_home /;
+use Test::Sbotools qw/ sbosnap set_gpg_verify set_repo set_sbo_home /;
use File::Temp 'tempdir';
plan tests => 4;
@@ -23,6 +23,7 @@ Options:
Commands:
fetch: initialize a local copy of the slackbuilds.org tree.
+ import-key [path or url]: import GPG for verifying the slackbuilds.org tree. Defaults to the key shipped with sbotools2.
update: update an existing local copy of the slackbuilds.org tree.
(generally, you may prefer "sbocheck" over "sbosnap update")
@@ -36,6 +37,7 @@ sbosnap 'invalid', { exit => 1, expected => $usage };
# 3: sbosnap update when /usr/sbo/repo is empty
my $tmp = tempdir(CLEANUP => 1);
+set_gpg_verify('FALSE');
set_repo("file://$tmp");
capture_merged { system <<"END"; };
cd $tmp
diff --git a/t/22-race.t b/t/22-race.t
index 8323a75..7ff39ca 100755
--- a/t/22-race.t
+++ b/t/22-race.t
@@ -58,13 +58,14 @@ SKIP: {
my $tempdir = tempdir(CLEANUP => 1);
my $repo = '/usr/sbo/repo';
+ system('mkdir', '-p', $repo);
system('mv', $repo, "$repo.bak");
capture_merged { system <<"GIT"; };
cd $tempdir
git init
- mkdir -p test/nonexistentslackbuild
- cp "$RealBin/nonexistentslackbuild/*" test/nonexistentslackbuild
+ mkdir -p test
+ cp -R "$RealBin/LO/nonexistentslackbuild" test
git add test
git commit -m 'added test/nonexistentslackbuild'
@@ -76,7 +77,8 @@ GIT
*_race::cond = sub { system('rm', '-rf', $repo) if $_[0] eq '$repo_path can be deleted after -d check' };
my $res;
- my $out = capture_merged { $res = SBO::Lib::git_sbo_tree("file://$tempdir"); };
+ my $out = capture_merged { $res = SBO::Lib::git_sbo_tree("file://$tempdir", ''); };
+ note($out);
is ($out, '', 'git_sbo_tree() no output');
is ($res, 0, 'git_sbo_tree() returned 0');
@@ -91,10 +93,10 @@ GIT
};
undef $res;
- $out = capture_merged { $res = SBO::Lib::git_sbo_tree("file://$tempdir"); };
+ $out = capture_merged { $res = SBO::Lib::git_sbo_tree("file://$tempdir", ''); };
- is ($res, 0, 'git_sbo_tree() returned 0');
is ($out, "fatal: not a git repository (or any of the parent directories): .git\n", 'git_sbo_tree() gave correct output');
+ is ($res, 0, 'git_sbo_tree() returned 0');
chdir $cwd;
system('rm', '-rf', $repo);
diff --git a/t/27-race-sbofind.t b/t/27-race-sbofind.t
index c4384e8..39ac51c 100755
--- a/t/27-race-sbofind.t
+++ b/t/27-race-sbofind.t
@@ -6,7 +6,7 @@ use Test::More;
use Test::Exit;
use FindBin '$RealBin';
use lib $RealBin;
-use Test::Sbotools 'load';
+use Test::Sbotools qw/set_gpg_verify load/;
use Capture::Tiny qw/ capture_merged /;
use File::Temp 'tempdir';
use Cwd;
@@ -14,6 +14,7 @@ use feature 'state';
plan tests => 9;
+set_gpg_verify('FALSE');
load('sbofind');
my $tags_file = '/usr/sbo/repo/TAGS.txt';
diff --git a/t/Test/Execute.pm b/t/Test/Execute.pm
index 0d4798f..e319c2e 100755
--- a/t/Test/Execute.pm
+++ b/t/Test/Execute.pm
@@ -70,14 +70,7 @@ sub run {
subtest $name => sub {
plan tests => 2;
- # 1: Test exit value
- if (not defined $exit) {
- SKIP: { skip "Expected exit value undefined", 1 }
- } else {
- is ($return, $exit, "$name - exit value");
- }
-
- # 2: Test output
+ # 1: Test output
if (not defined $expected) {
SKIP: { skip "Expected output undefined", 1 }
} elsif (ref $expected eq 'Regexp') {
@@ -88,6 +81,13 @@ sub run {
} else {
is ($output, $expected, "$name - output");
}
+
+ # 2: Test exit value
+ if (not defined $exit) {
+ SKIP: { skip "Expected exit value undefined", 1 }
+ } else {
+ is ($return, $exit, "$name - exit value");
+ }
};
}
diff --git a/t/Test/Sbotools.pm b/t/Test/Sbotools.pm
index 8be5536..6f181ea 100644
--- a/t/Test/Sbotools.pm
+++ b/t/Test/Sbotools.pm
@@ -25,6 +25,7 @@ our @EXPORT_OK = qw/
sboupgrade
set_noclean
set_distclean
+ set_gpg_verify
set_jobs
set_repo
set_lo
@@ -50,6 +51,7 @@ sub sboupgrade { script('sboupgrade', @_); }
sub set_noclean { _set_config('NOCLEAN', @_); }
sub set_distclean { _set_config('DISTCLEAN', @_); }
+sub set_gpg_verify { _set_config('GPG_KEY', @_); }
sub set_jobs { _set_config('JOBS', @_); }
sub set_pkg_dir { _set_config('PKG_DIR', @_); }
sub set_sbo_home { _set_config('SBO_HOME', @_); }
@@ -73,6 +75,7 @@ sub set_repo {
my %config;
my %settings = (
DISTCLEAN => '-d',
+ GPG_KEY => '-g',
JOBS => '-j',
LOCAL_OVERRIDES => '-o',
NOCLEAN => '-c',
diff --git a/t/sbotools.conf b/t/sbotools.conf
index 0f505dc..a3e3d1e 100644
--- a/t/sbotools.conf
+++ b/t/sbotools.conf
@@ -1,3 +1,4 @@
JOBS=2
SBO_HOME=/usr/sbo
DISTCLEAN=FALSE
+GPG_KEY=FALSE