diff options
Diffstat (limited to 't/Test/Sbotools.pm')
-rw-r--r-- | t/Test/Sbotools.pm | 179 |
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; |