diff options
author | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-04-16 16:26:40 +0200 |
---|---|---|
committer | Andreas Guldstrand <andreas.guldstrand@gmail.com> | 2016-04-16 16:26:40 +0200 |
commit | c1e7155333f1a86f90a7843e87bb1aa9145acdda (patch) | |
tree | 7bbfce970c2c5700493f35503e4c1abe5fc44111 | |
parent | 301e8781a3d80c371bf3f68e9b6cfd27ddd161ad (diff) | |
download | sbotools2-c1e7155333f1a86f90a7843e87bb1aa9145acdda.tar.xz |
Add testing for cleaning builds.
-rwxr-xr-x | t/16-clean.t | 72 | ||||
-rw-r--r-- | t/Test/Sbotools.pm | 9 | ||||
-rw-r--r-- | t/travis-deps/perf.dummy | 2 |
3 files changed, 83 insertions, 0 deletions
diff --git a/t/16-clean.t b/t/16-clean.t new file mode 100755 index 0000000..cdbf866 --- /dev/null +++ b/t/16-clean.t @@ -0,0 +1,72 @@ +#!/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::Sbotools qw/ make_slackbuilds_txt set_distclean set_noclean set_lo sboinstall sboclean sboremove restore_perf_dummy /; +use SBO::Lib; + +plan tests => 10; + +my $sboname = "nonexistentslackbuild"; +my $perf = "/usr/sbo/distfiles/perf.dummy"; +sub cleanup { + capture_merged { + system('removepkg', $sboname); + system(qw! rm -rf !, "/tmp/SBo/$sboname-1.0"); + } +} + +make_slackbuilds_txt(); +set_lo("$RealBin/LO"); +delete $ENV{TMP}; +delete $ENV{OUTPUT}; +cleanup(); + +# 1: check that build dir doesn't get cleaned +set_noclean("TRUE"); +sboinstall '-r', $sboname, { test => 0 }; +ok (-e "/tmp/SBo/$sboname-1.0", "$sboname-1.0 exists when NOCLEAN set to true."); +cleanup(); + +# 2: check that build dir gets cleaned +set_noclean("FALSE"); +sboinstall '-r', $sboname, { test => 0 }; +ok (!-e "/tmp/SBo/$sboname-1.0", "$sboname-1.0 is cleaned when NOCLEAN set to false."); +cleanup(); + +# 3-4: check that sboclean cleans working dir +set_noclean("TRUE"); +sboinstall '-r', $sboname, { test => 0 }; +ok (-e "/tmp/SBo/$sboname-1.0", "$sboname-1.0 exists before cleaning."); +sboclean '-w', { test => 0 }; +ok (!-e "/tmp/SBo/$sboname-1.0", "$sboname-1.0 was properly cleaned."); +cleanup(); + +# 5-6: check that sboclean cleans distfiles dir +ok (-e $perf, "perf.dummy exists before cleaning distfiles."); +sboclean '-d', { test => 0 }; +ok (!-e $perf, "perf.dummy deleted after cleaning distfiles."); +restore_perf_dummy(); + +# 7-8: check that distclean setting cleans too +set_distclean("TRUE"); +ok (-e $perf, "perf.dummy exists before sboinstall with distclean true."); +sboinstall '-r', $sboname, { test => 0 }; +ok (!-e $perf, "perf.dummy cleaned after install with distclean."); +restore_perf_dummy(); +cleanup(); + +# 9-10: check that distclean parameter cleans too +set_distclean("FALSE"); +ok (-e $perf, "perf.dummy exists before sboinstall with -d."); +sboinstall '-r', '-d', 'TRUE', $sboname, { test => 0 }; +ok (!-e $perf, "perf.dummy cleaned after install with -d."); +restore_perf_dummy(); +cleanup(); + diff --git a/t/Test/Sbotools.pm b/t/Test/Sbotools.pm index 8319802..ec0abfc 100644 --- a/t/Test/Sbotools.pm +++ b/t/Test/Sbotools.pm @@ -7,6 +7,7 @@ use Exporter 'import'; use Test::More; use Test::Execute; use FindBin '$RealBin'; +use lib "$RealBin/../SBO-Lib/lib"; # From Test::Execute $path = "$RealBin/../"; @@ -29,6 +30,7 @@ our @EXPORT_OK = qw/ set_pkg_dir set_sbo_home make_slackbuilds_txt + restore_perf_dummy /; local $Test::Builder::Level = $Test::Builder::Level + 1; @@ -89,6 +91,13 @@ sub make_slackbuilds_txt { if (not -e $fname) { $made = 1; system('mkdir', '-p', '/usr/sbo/repo'); system('touch', $fname); } } +sub restore_perf_dummy { + if (!-e '/usr/sbo/distfiles/perf.dummy') { + system('mkdir', '-p', '/usr/sbo/distfiles'); + system('cp', "$RealBin/travis-deps/perf.dummy", '/usr/sbo/distfiles'); + } +} + # Restore original values when exiting END { if (%config) { diff --git a/t/travis-deps/perf.dummy b/t/travis-deps/perf.dummy new file mode 100644 index 0000000..9bcf29e --- /dev/null +++ b/t/travis-deps/perf.dummy @@ -0,0 +1,2 @@ +Since the sources for this package are in the slackware kernel sources, this +file is just a notice to that effect. |