aboutsummaryrefslogtreecommitdiff
path: root/t/Test/Sbotools.pm
diff options
context:
space:
mode:
Diffstat (limited to 't/Test/Sbotools.pm')
-rw-r--r--t/Test/Sbotools.pm179
1 files changed, 0 insertions, 179 deletions
diff --git a/t/Test/Sbotools.pm b/t/Test/Sbotools.pm
deleted file mode 100644
index 6f181ea..0000000
--- a/t/Test/Sbotools.pm
+++ /dev/null
@@ -1,179 +0,0 @@
-package Test::Sbotools;
-
-use strict;
-use warnings;
-
-use Exporter 'import';
-use Test::More;
-use Test::Execute;
-use FindBin '$RealBin';
-use Capture::Tiny 'capture_merged';
-use Test::Exit;
-use lib "$RealBin/../SBO-Lib/lib";
-
-# From Test::Execute
-$path = "$RealBin/../";
-
-our @EXPORT_OK = qw/
- sbocheck
- sboclean
- sboconfig
- sbofind
- sboinstall
- sboremove
- sbosnap
- sboupgrade
- set_noclean
- set_distclean
- set_gpg_verify
- set_jobs
- set_repo
- set_lo
- set_version
- set_pkg_dir
- set_sbo_home
- make_slackbuilds_txt
- restore_perf_dummy
- replace_tags_txt
- load
-/;
-
-local $Test::Builder::Level = $Test::Builder::Level + 1;
-
-sub sbocheck { script('sbocheck', @_); }
-sub sboclean { script('sboclean', @_); }
-sub sboconfig { script('sboconfig', @_); }
-sub sbofind { script('sbofind', @_); }
-sub sboinstall { script('sboinstall', @_); }
-sub sboremove { script('sboremove', @_); }
-sub sbosnap { script('sbosnap', @_); }
-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', @_); }
-sub set_lo { _set_config('LOCAL_OVERRIDES', @_); }
-sub set_version { _set_config('SLACKWARE_VERSION', @_); }
-
-my $sbt = 0;
-my $repo = 0;
-sub set_repo {
- _set_config('REPO', @_);
- if (-e "/usr/sbo/repo" and not $repo) {
- $repo = 1;
- system('mv', '/usr/sbo/repo', "/tmp/repo.backup");
-
- # if $sbt is true, the SLACKBUILDS.TXT has been created by
- # make_slackbuilds_txt and should not be backed up
- if ($sbt) { system('rm', "/tmp/repo.backup/SLACKBUILDS.TXT"); }
- }
-}
-
-my %config;
-my %settings = (
- DISTCLEAN => '-d',
- GPG_KEY => '-g',
- JOBS => '-j',
- LOCAL_OVERRIDES => '-o',
- NOCLEAN => '-c',
- PKG_DIR => '-p',
- REPO => '-r',
- SBO_HOME => '-s',
- SLACKWARE_VERSION => '-V',
-);
-sub _set_config {
- my ($config, $value) = @_;
-
- # if %config is empty, populate it
- if (not %config) {
- sboconfig('-l', { test => 0, expected =>
- sub {
- my $text = shift;
- foreach my $setting (keys %settings) { $text =~ /\Q$setting\E=(.*)/ and $config{$setting} = $1 // 'FALSE'; }
- },
- });
- }
-
- if (defined $value) {
- sboconfig($settings{$config}, $value, { test => 0 });
- note "Saving original value of '$config': $config{$config}";
- } else {
- sboconfig($settings{$config}, $config{$config}, { test => 0 });
- }
-}
-
-my $sbtn = "/usr/sbo/repo/SLACKBUILDS.TXT";
-sub make_slackbuilds_txt {
- if (not -e $sbtn) { $sbt = 1; system('mkdir', '-p', '/usr/sbo/repo'); system('touch', $sbtn); }
-}
-
-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');
- }
-}
-
-my $tags = 0;
-my $tags_txt = '/usr/sbo/repo/TAGS.txt';
-sub replace_tags_txt {
- if (-e $tags_txt) {
- if (! $tags) {
- $tags = 2;
- rename $tags_txt, "$tags_txt.bak";
- }
- } else {
- $tags = 1 if $tags == 0;
- }
-
- system('mkdir', '-p', '/usr/sbo/repo');
- open my $fh, '>', $tags_txt;
- print $fh $_ for @_;
- close $fh;
-}
-
-# Restore original values when exiting
-END {
- if (%config) {
- _set_config($_) for keys %settings;
- }
- if ($sbt) {
- system(qw!rm -rf!, $sbtn);
- }
- if ($repo) {
- system(qw! rm -rf /usr/sbo/repo !);
- system('mv', "/tmp/repo.backup", '/usr/sbo/repo');
- }
- if ($tags) {
- system(qw!rm -rf !, $tags_txt);
- }
- if ($tags == 2) {
- rename "$tags_txt.bak", $tags_txt;
- }
-}
-
-sub load {
- my ($script, %opts) = @_;
-
- local @ARGV = exists $opts{argv} ? @{ $opts{argv} } : '-h';
- my ($ret, $exit, $out, $do_err);
- my $eval = eval {
- $out = capture_merged { $exit = exit_code {
- package main;
- $ret = do "$RealBin/../$script";
- $do_err = $@;
- }; };
- 1;
- };
- my $err = $@;
-
- my $explain = { ret => $ret, exit => $exit, out => $out, eval => $eval, err => $err, do_err => $do_err };
- note explain $explain if $opts{explain};
- return $explain;
-}
-
-
-1;