X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=installcheck%2FAmanda_Changer.pl;h=ce3dbab57f7ad84032ef0e3e1dfe343b0644c277;hb=768a18adc28561a0c177a164580b237df04b55b6;hp=a626e7370af878a86b1c6886a519a0ab23e6da67;hpb=d5853102f67d85d8e169f9dbe973ad573306c215;p=debian%2Famanda diff --git a/installcheck/Amanda_Changer.pl b/installcheck/Amanda_Changer.pl index a626e73..ce3dbab 100644 --- a/installcheck/Amanda_Changer.pl +++ b/installcheck/Amanda_Changer.pl @@ -16,19 +16,21 @@ # Contact information: Zmanda Inc, 465 S. Mathilda Ave., Suite 300 # Sunnyvale, CA 94086, USA, or: http://www.zmanda.com -use Test::More tests => 47; +use Test::More tests => 54; use File::Path; use Data::Dumper; use strict; +use warnings; use lib "@amperldir@"; use Installcheck::Config; use Amanda::Paths; -use Amanda::Device; +use Amanda::Device qw( :constants );; use Amanda::Debug; use Amanda::MainLoop; use Amanda::Config qw( :init :getconf config_dir_relative ); use Amanda::Changer; +use Amanda::Tapelist; # set up debugging so debug output doesn't interfere with test results Amanda::Debug::dbopen("installcheck"); @@ -248,9 +250,32 @@ if ($cfg_result != $CFGERR_OK) { } # check out the relevant changer properties -my $chg = Amanda::Changer->new("mychanger"); +my $tlf = Amanda::Config::config_dir_relative(getconf($CNF_TAPELIST)); +my $tl = Amanda::Tapelist->new($tlf); +my $chg = Amanda::Changer->new("mychanger", tapelist => $tl); is($chg->{'config'}->get_property("testprop"), "testval", "changer properties are correctly represented"); +is($chg->have_inventory(), 1, "changer have inventory"); +is($chg->make_new_tape_label(), undef, "no make_new_tape_label"); +is($chg->make_new_meta_label(), undef, "no make_new_meta_label"); + +$chg = Amanda::Changer->new("mychanger", tapelist => $tl, + labelstr => "TESTCONF-[0-9][0-9][0-9]-[a-z][a-z][a-z]-[0-9][0-9][0-9]", + autolabel => { template => '$c-$m-$b-%%%', + other_config => 1, + non_amanda => 1, + volume_error => 0, + empty => 1 }, + meta_autolabel => "%%%"); +my $meta = $chg->make_new_meta_label(); +is($meta, "001", "meta 001"); +my $label = $chg->make_new_tape_label(meta => $meta, barcode => 'aaa'); +is($label, 'TESTCONF-001-aaa-001', "label TESTCONF-001-aaa-001"); + +is($chg->volume_is_labelable($DEVICE_STATUS_VOLUME_UNLABELED, $Amanda::Header::F_EMPTY), + 1, "empty volume is labelable"); +is($chg->volume_is_labelable($DEVICE_STATUS_VOLUME_ERROR, undef), + 0, "empty volume is labelable"); # test loading by label { @@ -521,6 +546,7 @@ Amanda::MainLoop::run(); $do_info->(); Amanda::MainLoop::run(); } +$chg->quit(); # Test the various permutations of configuration setup, with a patched # _new_from_uri so we can monitor the result @@ -675,7 +701,8 @@ sub test_locked_state { my $num_outstanding = 0; my $steps = define_steps - cb_ref => \$finished_cb; + cb_ref => \$finished_cb, + finalize => sub { $chg->quit() if defined $chg }; step start => sub { $chg = Amanda::Changer->new("chg-null:");