Imported Upstream version 3.3.2
[debian/amanda] / installcheck / Amanda_Changer_rait.pl
index 1b2618765b2fb799137e80f166e5ec3981cc793a..c0cb9663a2cc5bb23d88132b0479b73e152422f3 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2009, 2010 Zmanda, Inc.  All Rights Reserved.
+# Copyright (c) 2009-2012 Zmanda, Inc.  All Rights Reserved.
 #
 # This program is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License version 2 as published
@@ -16,7 +16,7 @@
 # Contact information: Zmanda Inc, 465 S. Mathilda Ave., Suite 300
 # Sunnyvale, CA 94086, USA, or: http://www.zmanda.com
 
-use Test::More tests => 42;
+use Test::More tests => 43;
 use File::Path;
 use Data::Dumper;
 use strict;
@@ -103,7 +103,8 @@ sub test_threeway {
     pass("Create 3-way RAIT of vtapes");
 
     my $steps = define_steps
-       cb_ref => \$finished_cb;
+       cb_ref => \$finished_cb,
+       finalize => sub { $chg->quit() };
 
     step get_info => sub {
         $chg->info(info_cb => $steps->{'check_info'},
@@ -268,19 +269,19 @@ sub test_threeway {
        die $err if $err;
 
        is_deeply($inv,  [
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
            f_type => $Amanda::Header::F_EMPTY, label => undef, # undef because labels don't match
            reserved => 0,
            slot => '{1,1,1}', import_export => undef },
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
            f_type => $Amanda::Header::F_EMPTY, label => undef, # all blank
            reserved => 0,
            slot => '{2,2,2}', import_export => undef },
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
            f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels
            reserved => 0,
            slot => '{3,3,3}', import_export => undef },
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED,
            f_type => $Amanda::Header::F_EMPTY, label => undef, # mismatched labels
            reserved => 0,
            slot => '{4,4,4}', import_export => undef } ,
@@ -297,9 +298,11 @@ sub test_threeway_error {
 
     my $chg = Amanda::Changer->new("chg-rait:{chg-disk:$tapebase/1,chg-disk:$tapebase/2,ERROR}");
     pass("Create 3-way RAIT of vtapes, with the third errored out");
+    is($chg->have_inventory(), '1', "changer have inventory");
 
     my $steps = define_steps
-       cb_ref => \$finished_cb;
+       cb_ref => \$finished_cb,
+       finalize => sub { $chg->quit() };
 
     step get_info => sub {
         $chg->info(info_cb => $steps->{'check_info'},
@@ -389,7 +392,8 @@ sub test_normal_inventory {
     pass("Create 3-way RAIT of vtapes with correctly-labeled children");
 
     my $steps = define_steps
-       cb_ref => \$finished_cb;
+       cb_ref => \$finished_cb,
+       finalize => sub { $chg->quit() };
 
     step setup => sub {
        reset_taperoot();
@@ -416,9 +420,9 @@ sub test_normal_inventory {
            slot => '{1,1,1}', import_export => undef },
           { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_TAPESTART, label => 'mytape-2', reserved => 0,
            slot => '{2,2,2}', import_export => undef },
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
            slot => '{3,3,3}', import_export => undef },
-          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_SUCCESS, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
+          { state => Amanda::Changer::SLOT_FULL, device_status => $DEVICE_STATUS_VOLUME_UNLABELED, f_type => $Amanda::Header::F_EMPTY, label => undef, reserved => 0,
            slot => '{4,4,4}', import_export => undef } ,
         ], "second inventory is correct");
 
@@ -454,7 +458,8 @@ sub test_properties {
        "Create RAIT device from a named config subsection");
 
     my $steps = define_steps
-       cb_ref => \$finished_cb;
+       cb_ref => \$finished_cb,
+       finalize => sub { $chg->quit() };
 
     step do_load_1 => sub {
        reset_taperoot();
@@ -498,7 +503,8 @@ sub test_except_slots {
     my $chg;
 
     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("myrait");