# 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");
}
# 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
{
$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
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:");