diff options
Diffstat (limited to 't/test.t')
-rwxr-xr-x | t/test.t | 171 |
1 files changed, 87 insertions, 84 deletions
@@ -4,20 +4,20 @@ use 5.16.0; use strict; use warnings FATAL => 'all'; use File::Temp qw(tempdir tempfile); -use Test::More tests => 90; +use Test::More; use File::Copy; use Text::Diff; use lib "."; use SBO::Lib; -my $sbo_home = '/home/d4wnr4z0r/sbo.git/slackbuilds'; +my $sbo_home = '/usr/sbo'; -# 1, open_read, open_fh tests +# open_read, open_fh tests my $fh = open_read ('./test.t'); is (ref $fh, 'GLOB', 'open_read works'); close $fh; -# 2-7, config settings tests; +# config settings tests; ok (defined $SBO::Lib::tempdir, '$tempdir is defined'); is ($SBO::Lib::config{DISTCLEAN}, 'FALSE', 'config{DISTCLEAN} is good'); is ($SBO::Lib::config{JOBS}, 2, 'config{JOBS} is good'); @@ -25,13 +25,13 @@ is ($SBO::Lib::config{NOCLEAN}, 'FALSE', 'config{NOCLEAN} is good'); is ($SBO::Lib::config{PKG_DIR}, 'FALSE', 'config{PKG_DIR} is good'); is ($SBO::Lib::config{SBO_HOME}, "$sbo_home", 'config{SBO_HOME} is good'); -# 8, show_version test +# show_version test is (show_version, 1, 'show_version is good'); -# 9, get_slack_version test +# get_slack_version test is (get_slack_version, '14.0', 'get_slack_version is good'); -# 10-11, chk_slackbuilds_txt tests +# chk_slackbuilds_txt tests is (chk_slackbuilds_txt, 1, 'chk_slackbuilds_txt is good'); move ("$sbo_home/SLACKBUILDS.TXT", "$sbo_home/SLACKBUILDS.TXT.moved"); is (chk_slackbuilds_txt, undef, @@ -41,10 +41,10 @@ move ("$sbo_home/SLACKBUILDS.TXT.moved", "$sbo_home/SLACKBUILDS.TXT"); #ok (rsync_sbo_tree == 1, 'rsync_sbo_tree is good'); #ok (update_tree == 1, 'update_tree is good'); -# 12, slackbuilds_or_fetch test +# slackbuilds_or_fetch test is (slackbuilds_or_fetch, 1, 'slackbuilds_or_fetch is good'); -# 13-18, get_installed_sbos test +# get_installed_sbos test print "pseudo-random sampling of get_installed_sbos output...\n"; my $installed = get_installed_sbos; for my $key (keys @$installed) { @@ -58,18 +58,28 @@ for my $key (keys @$installed) { 'libmodplug'; is ($$installed[$key]{version}, '3.12.4') if $$installed[$key]{name} eq 'mozilla-nss'; - is ($$installed[$key]{version}, '2.5.0') if $$installed[$key]{name} eq + is ($$installed[$key]{version}, '2.6.0') if $$installed[$key]{name} eq 'zdoom'; } print "completed pseudo-random testing of get_installed_sbos \n"; -# 19-20, get_sbo_location tests -is (get_sbo_location 'nginx', "$sbo_home/network/nginx", +# get_sbo_location tests +is (get_sbo_location ('nginx'), "$sbo_home/network/nginx", 'get_sbo_location is good'); -is (get_sbo_location 'omgwtfbbq', undef, +is (get_sbo_location ('omgwtfbbq'), undef, 'get_sbo_location returns false with not-an-sbo input'); - -# 21-22, get_available_updates tests +my @finds = qw(nginx gmpc); +my %locs = get_sbo_location (@finds); +is ($locs{nginx}, "$sbo_home/network/nginx", + 'get_sbo_location passed array #1 good'); +is ($locs{gmpc}, "$sbo_home/audio/gmpc", 'get_sbo_location passed array #2 good'); +%locs = get_sbo_location (\@finds); +is ($locs{nginx}, "$sbo_home/network/nginx", + 'get_sbo_location passed array ref #1 good'); +is ($locs{gmpc}, "$sbo_home/audio/gmpc", + 'get_sbo_location passed array ref #2 good'); + +# get_available_updates tests my $updates = get_available_updates; for my $key (keys @$updates) { is ($$updates[$key]{installed}, '1.15', @@ -80,10 +90,10 @@ for my $key (keys @$updates) { 'mutagen'; } -# 23, get_arch test +# get_arch test is (get_arch, 'x86_64', 'get_arch is good'); -# 24-25, get_download_info tests +# get_download_info tests my %dl_info = get_download_info (LOCATION => "$sbo_home/system/wine", X64 => 0); my $link = 'http://downloads.sf.net/wine/source/1.4/wine-1.4.1.tar.bz2'; is ($dl_info{$link}, '0c28702ed478df7a1c097f3a9c4cabd6', @@ -92,7 +102,7 @@ $link = 'http://www.unrealize.co.uk/source/dibeng-max-2010-11-12.zip'; is ($dl_info{$link}, '97159d77631da13952fe87e846cf1f3b', 'get_download_info test 02 good.'); -# 26-28, get_sbo_downloads tests +# get_sbo_downloads tests %dl_info = get_sbo_downloads (LOCATION => "$sbo_home/system/wine"); $link = 'http://downloads.sf.net/wine/source/1.4/wine-1.4.1.tar.bz2'; is ($dl_info{$link}, '0c28702ed478df7a1c097f3a9c4cabd6', @@ -105,40 +115,40 @@ $link = 'http://www.libimobiledevice.org/downloads/ifuse-1.1.1.tar.bz2'; is ($downloads{$link}, '8d528a79de024b91f12f8ac67965c37c', 'get_sbo_downloads test 03 good.'); -# 29, get_filename_from_link test +# get_filename_from_link test is (get_filename_from_link 'http://www.libimobiledevice.org/downloads/ifuse-1.1.1.tar.bz2', "$sbo_home/distfiles/ifuse-1.1.1.tar.bz2", 'get_file_from_link good'); is (get_filename_from_link 'adf;lkajsdfaksjdfalsdjfalsdkfjdsfj', undef, 'get_filename_from_link good with invalid input'); -# 31, compute_md5sum test +# compute_md5sum test is (compute_md5sum "$sbo_home/distfiles/laptop-mode-tools_1.61.tar.gz", '6685af5dbb34c3d51ca27933b58f484e', 'compute_md5sum good'); -# 32, verify_distfile test +# verify_distfile test is ((verify_distfile "$sbo_home/distfiles/laptop-mode-tools_1.61.tar.gz", '6685af5dbb34c3d51ca27933b58f484e'), 1, 'verify_distfile good'); -# 33, get_sbo_version test +# get_sbo_version test is (get_sbo_version "$sbo_home/system/wine", '1.4.1', 'get_sbo_version good'); -# 34, get_symlink_from_filename test +# get_symlink_from_filename test is ((get_symlink_from_filename "$sbo_home/distfiles/laptop-mode-tools_1.61.tar.gz", "$sbo_home/system/laptop-mode-tools"), "$sbo_home/system/laptop-mode-tools/laptop-mode-tools_1.61.tar.gz", 'get_symlink_from_filename good'); -# 35-36, check_x32 tests +# check_x32 tests ok (check_x32 "$sbo_home/system/wine", 'check_x32 true for 32-bit only wine'); ok (!(check_x32 "$sbo_home/system/ifuse"), 'check_x32 false for not-32-bit-only ifuse'); -# 37, check_multilib tests +# check_multilib tests ok (check_multilib, 'check_multilib good'); -# 38-39, create_symlinks tests +# create_symlinks tests %downloads = get_sbo_downloads (LOCATION => "$sbo_home/system/wine", 32 => 1); my @symlinks = create_symlinks "$sbo_home/system/wine", %downloads; is ($symlinks[0], "$sbo_home/system/wine/wine-1.4.1.tar.bz2", @@ -146,7 +156,7 @@ is ($symlinks[0], "$sbo_home/system/wine/wine-1.4.1.tar.bz2", is ($symlinks[1], "$sbo_home/system/wine/dibeng-max-2010-11-12.zip", '$symlinks[1] good for create_symlinks'); -# 40-41, grok_temp_file, get_src_dir/get_pkg_name tests +# grok_temp_file, get_src_dir/get_pkg_name tests my $tempdir = tempdir (CLEANUP => 1); my $tempfh = tempfile (DIR => $tempdir); my $lmt = 'laptop-mode-tools_1.60'; @@ -158,11 +168,11 @@ is (get_src_dir $tempfh, 'laptop-mode-tools_1.60', 'get_src_dir good'); is (get_pkg_name $tempfh, 'skype-2.2.0.35-i486-1_SBo.tgz', 'get_pkg_name good'); close $tempfh; -# 42, check_distfiles test +# check_distfiles test %downloads = get_sbo_downloads (LOCATION => "$sbo_home/system/wine", 32 => 1); is ((check_distfiles %downloads), 1, 'check_distfiles good'); -# 43-45, check_home tests +# check_home tests system ('sudo /usr/sbin/sboconfig -s /home/d4wnr4z0r/opt_sbo') == 0 or die "unable to set sboconfig -s\n"; read_config; @@ -174,19 +184,13 @@ system ("sudo /usr/sbin/sboconfig -s $sbo_home") == 0 or die read_config; rmdir "/home/d4wnr4z0r/opt_sbo"; -# 46-47 get_sbo_from_loc tests +# get_sbo_from_loc tests is (get_sbo_from_loc '/home/d4wnr4z0r/sbo.git/system/ifuse', 'ifuse', 'get_sbo_from_loc returns correctly with valid input'); ok (! get_sbo_from_loc 'omg_wtf_bbq', 'get_sbo_from_loc returns false with invalid input'); -# 48-49, compare_md5s tests -is (compare_md5s ('omgwtf123456789', 'omgwtf123456789'), 1, - 'compare_md5s returns true for matching parameters'); -is (compare_md5s ('omgwtf123456788', 'somethingelsebbq'), undef, - 'compare_md5s returns false for not-matching parameters'); - -# 50, get_distfile tests +# get_distfile tests my $distfile = "$sbo_home/distfiles/Sort-Versions-1.5.tar.gz"; unlink $distfile if -f $distfile; is (get_distfile @@ -194,7 +198,7 @@ is (get_distfile '5434f948fdea6406851c77bebbd0ed19'), 1, 'get_distfile is good'); unlink $distfile; -# 51-58, rewrite_slackbuilds/revert_slackbuild tests +# rewrite_slackbuilds/revert_slackbuild tests my $rewrite_dir = tempdir (CLEANUP => 1); copy ("$sbo_home/system/ifuse/ifuse.SlackBuild", $rewrite_dir); my $slackbuild = "$rewrite_dir/ifuse.SlackBuild"; @@ -204,17 +208,6 @@ my %changes = (); is (rewrite_slackbuild (SLACKBUILD => $slackbuild, TEMPFN => $tempfn, CHANGES => \%changes), 1, 'rewrite_slackbuild with no %changes good'); ok (-f "$slackbuild.orig", 'rewrite_slackbuild backing up original is good.'); -my $expected_out = "67c67 -< tar xvf \$CWD/\$PRGNAM-\$VERSION.tar.bz2 ---- -> tar xvf \$CWD/\$PRGNAM-\$VERSION.tar.bz2 | tee -a $tempfn -103c103 -< /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-\$ARCH-\$BUILD\$TAG.\${PKGTYPE:-tgz} ---- -> /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-\$ARCH-\$BUILD\$TAG.\${PKGTYPE:-tgz} | tee -a $tempfn -"; -is (diff ("$slackbuild.orig", $slackbuild, {STYLE => 'OldStyle'}), - $expected_out, 'tar line rewritten correctly'); is (revert_slackbuild $slackbuild, 1, 'revert_slackbuild is good'); $changes{libdirsuffix} = ''; $changes{make} = '-j 5'; @@ -222,28 +215,20 @@ $changes{arch_out} = 'i486'; is (rewrite_slackbuild (SLACKBUILD => $slackbuild, TEMPFN => $tempfn, CHANGES => \%changes), 1, 'rewrite_slackbuild with all %changes good'); ok (-f "$slackbuild.orig", 'rewrite_slackbuild backing up original is good.'); -$expected_out = "55c55 +my $expected_out = "55c55 < LIBDIRSUFFIX=\"64\" --- > LIBDIRSUFFIX=\"\" -67c67 -< tar xvf \$CWD/\$PRGNAM-\$VERSION.tar.bz2 ---- -> tar xvf \$CWD/\$PRGNAM-\$VERSION.tar.bz2 | tee -a $tempfn -87c87 -< make ---- -> make -j 5 103c103 < /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-\$ARCH-\$BUILD\$TAG.\${PKGTYPE:-tgz} --- -> /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-i486-\$BUILD\$TAG.\${PKGTYPE:-tgz} | tee -a $tempfn +> /sbin/makepkg -l y -c n \$OUTPUT/\$PRGNAM-\$VERSION-i486-\$BUILD\$TAG.\${PKGTYPE:-tgz} "; is (diff ("$slackbuild.orig", $slackbuild, {STYLE => 'OldStyle'}), $expected_out, 'all changed lines rewritten correctly'); is (revert_slackbuild $slackbuild, 1, 'revert_slackbuild is good again'); -# 59-61, get_from_info tests +# get_from_info tests my $test_loc = "$sbo_home/system/ifuse"; my %params = (LOCATION => $test_loc); my $info = get_from_info (%params, GET => 'VERSION'); @@ -254,7 +239,7 @@ is ($$info[0], 'http://www.libimobiledevice.org', $info = get_from_info (%params, GET => 'DOWNLOAD_x86_64'); is ($$info[0], "", 'get_from_info GET => DOWNLOAD_x86_64 is good'); -# 62-64, get_update_list tests +# get_update_list tests my $listing = get_update_list; s/\s//g for @$listing; for my $item (@$listing) { @@ -266,14 +251,14 @@ for my $item (@$listing) { 'get_update_list output good for atkmm') if $item =~ /^atkmm/; } -# 65, remove_stuff test - can only really test for invalid input +# remove_stuff test - can only really test for invalid input is (remove_stuff '/omg/wtf/bbq', 1, 'remove_stuff good for invalid input'); -# 66, config_write test +# config_write test is (config_write ('OMG', 'WTF'), undef, 'config_write returned undef correctly'); -# 67-74, perform_search tests +# perform_search tests my $findings = perform_search 'desktop'; for my $found (@$findings) { for my $key (keys %$found) { @@ -294,27 +279,27 @@ for my $found (@$findings) { } } -# 75, get_inst_names test +# get_inst_names test $installed = get_installed_sbos; my $inst_names = get_inst_names $installed; ok ('zdoom' ~~ @$inst_names, 'get_inst_names is good'); -# 76-81, get_reqs tests +# get_reqs tests $SBO::Lib::no_reqs = 0; -ok (! (get_requires 'zarafa', "$sbo_home/network/zarafa"), - 'get_requires good for circular requirements'); -ok (! (get_requires 'smc', "$sbo_home/games/smc"), - 'get_requires good for REQUIRES="%README%"'); -ok (! (get_requires 'krb5', "$sbo_home/network/krb5"), - 'get_requires good for REQUIRES=""'); -my $reqs = get_requires 'matchbox-desktop', - "$sbo_home/audio/gmpc"; +# no longer valid - there are no longer any circular requirements. +#ok (! (get_requires 'zarafa', "$sbo_home/network/zarafa"), +# 'get_requires good for circular requirements'); +my $reqs = get_requires 'gmpc', "$sbo_home/audio/gmpc"; my $say = 'get_requires good for normal req list'; is ($$reqs[0], 'gob2', $say); is ($$reqs[1], 'libmpd', $say); is ($$reqs[2], 'vala', $say); +ok (! (get_requires 'smc', "$sbo_home/games/smc"), + 'get_requires good for REQUIRES="%README%"'); +ok (! (get_requires 'krb5', "$sbo_home/network/krb5"), + 'get_requires good for REQUIRES=""'); -# 82-85, get_user_group tests +# get_user_group tests $fh = open_read "$sbo_home/network/nagios/README"; my $readme = do {local $/; <$fh>}; close $fh; @@ -330,7 +315,7 @@ is ($$cmds[0], 'groupadd -g 210 clamav', 'get_user_group good for groupadd'); is ($$cmds[1], 'useradd -u 256 -d /dev/null -s /bin/false -g clamav havp', 'get_user_group good for useradd'); -# 86-87, get_opts test +# get_opts test $fh = open_read "$sbo_home/games/vbam/README"; $readme = do {local $/; <$fh>}; close $fh; @@ -340,14 +325,32 @@ $readme = do {local $/; <$fh>}; close $fh; ok (! (get_opts $readme), 'get_opts good where README does not define opts'); -# 88-90, clean_reqs tests -#$reqs = get_requires "wine", "$sbo_home/system/wine"; -#$reqs = clean_reqs $reqs; -#print $_,"\n" for @$reqs; -#ok (! $$reqs[0], 'clean_reqs good for already installed reqs'); +# clean_reqs tests $SBO::Lib::compat32 = 0; +$reqs = get_requires "zdoom", "$sbo_home/games/zdoom"; +$reqs = clean_reqs $reqs; +ok (! $$reqs[0], 'clean_reqs good for already installed reqs'); $reqs = get_requires 'gmpc', "$sbo_home/audio/gmpc"; $reqs = clean_reqs $reqs; -ok ($$reqs[0] eq 'gob2', 'clean_reqs good for un/installed reqs.'); -ok ($$reqs[1] eq 'libmpd', 'clean_reqs good for un/installed reqs.'); - +is ($$reqs[0], 'gob2', 'clean_reqs good for un/installed reqs.'); +is ($$reqs[1], 'libmpd', 'clean_reqs good for un/installed reqs.'); + +my $warnings = {()};; +my $queue = get_build_queue ['zdoom', 'bsnes', 'spring'], $warnings; +my $count = @$queue; +is ($count, 10, 'get_build_queue returns correct amount for multiple sbos'); +is ($$queue[0], 'jdk', 'get_build_queue first entry correct for multiple sbos'); +is ($$queue[2], 'OpenAL', 'get_build_queue third entry correct for multiple sbos'); +is ($$queue[4], 'spring', 'get_build_queue fifth entry correct for multiple sbos'); +is ($$queue[6], 'fmodapi', 'get_build_queue seventh entry correct for multiple sbos'); +is ($$queue[8], 'TiMidity++', 'get_build_queue ninth entry correct for multiple sbos'); +$queue = get_build_queue ['zdoom'], $warnings; +$count = @$queue; +is ($count, 5, 'get_build_queue returns correct amount for single sbo'); +is ($$queue[0], 'p7zip', 'get_build_queue first entry correct for single sbo'); +is ($$queue[2], 'eawpats', 'get_build_queue third entry correct for single sbo'); +is ($$queue[4], 'zdoom', 'get_build_queue fifth entry correct for single sbo'); + + +# end of tests. +done_testing(); |