scstadmin: Add a seventh regression test

git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6733 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
Bart Van Assche
2015-12-11 18:33:17 +00:00
parent 9484c62c41
commit 094a6be70d
2 changed files with 99 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
# Automatically generated by SCST Configurator v...
TARGET_DRIVER scst_local {
TARGET local {
GROUP ig {
INITIATOR ini1
INITIATOR ini2
}
}
}

View File

@@ -0,0 +1,85 @@
#!perl
use strict;
use Cwd qw(abs_path);
use File::Basename;
use File::Spec;
use Test;
my $testdir;
my $scstadmin_pm_dir;
my $scstadmin_dir;
my $scstadmin;
my $redirect_file = "/tmp/07-output.txt";
my $redirect = ">>$redirect_file";
my $redirect = ">/dev/null";
BEGIN {
unlink($redirect_file);
$testdir = dirname(abs_path($0));
$scstadmin_pm_dir = dirname($testdir);
$scstadmin_dir = dirname($scstadmin_pm_dir);
$scstadmin = File::Spec->catfile($scstadmin_dir, "scstadmin");
unless(grep /blib/, @INC) {
unshift(@INC, File::Spec->catdir($scstadmin_pm_dir, "lib"));
}
plan tests => 2;
}
use Data::Dumper;
use SCST::SCST;
use File::Temp qw/tempfile/;
sub setup {
my $SCST = shift;
my ($drivers, $errorString) = $SCST->drivers();
my %drivers = map { $_ => 1 } @{$drivers};
ok(exists($drivers{'scst_local'}));
}
sub attributeTest {
my $expected = shift;
my $tmpfilename1 = File::Spec->catfile(File::Spec->tmpdir(),
"scstadmin-test-07-$$-1");
my $tmpfilename2 = File::Spec->catfile(File::Spec->tmpdir(),
"scstadmin-test-07-$$-2");
my $diff = File::Spec->catfile(File::Spec->tmpdir(),
"scstadmin-test-07-$$-diff");
system("$scstadmin -clear_config -force -noprompt -no_lip $redirect");
system("$scstadmin -open_dev nodev -handler vdisk_nullio -attributes dummy=1,read_zero=1 $redirect");
system("$scstadmin -open_dev disk0 -handler vdisk_fileio -attributes filename=/dev/zero,read_only=1 $redirect");
system("$scstadmin -open_dev disk1 -handler vdisk_fileio -attributes filename=/dev/zero,nv_cache=1 $redirect");
system("$scstadmin -driver scst_local -add_target local $redirect");
system("$scstadmin -driver scst_local -target local " .
"-add_lun 0 -device nodev $redirect");
system("$scstadmin -driver scst_local -target local -add_group ig " .
"$redirect");
system("$scstadmin -driver scst_local -target local -group ig " .
"-add_init ini1 $redirect");
system("$scstadmin -driver scst_local -target local -group ig " .
"-add_init ini2 $redirect");
system("$scstadmin -driver scst_local -target local -group ig " .
"-add_lun 0 -device disk0 $redirect");
system("$scstadmin -driver scst_local -target local -group ig " .
"-add_lun 1 -device disk1 $redirect");
system("$scstadmin -write_config $tmpfilename1 >/dev/null");
system("awk 'BEGIN { t = 0 } /^# Automatically generated by SCST Configurator v/ { \$0 = \"# Automatically generated by SCST Configurator v...\" } /^TARGET_DRIVER.*{\$/ { if (\$0 != \"TARGET_DRIVER scst_local {\") t = 1 } /^}\$/ { if (t == 1) t = 2 } /^\$/ { if (t == 2) { t = 3 } } /^./ { if (t == 3) { t = 0 } } { if (t == 0) print }' <$tmpfilename1 >$tmpfilename2");
my $compare_result = system("diff -u $tmpfilename2 $expected >$diff");
ok($compare_result, 0);
if ($compare_result == 0) {
unlink($tmpfilename2);
unlink($tmpfilename1);
}
}
my $_DEBUG_ = 0;
my $SCST = eval { new SCST::SCST($_DEBUG_) };
die("Creation of SCST object failed") if (!defined($SCST));
setup($SCST);
attributeTest(File::Spec->catfile($testdir, "07-result.conf"));