aboutsummaryrefslogtreecommitdiff
path: root/t/16-clean.t
diff options
context:
space:
mode:
Diffstat (limited to 't/16-clean.t')
-rwxr-xr-xt/16-clean.t72
1 files changed, 72 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();
+