From 094a6be70db37ea64308d9a7a3b841ed75b688da Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Fri, 11 Dec 2015 18:33:17 +0000 Subject: [PATCH] scstadmin: Add a seventh regression test git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@6733 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- .../scst-0.9.10/t/07-result.conf | 14 +++ .../scst-0.9.10/t/07-scstadmin-args.t | 85 +++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-result.conf create mode 100644 scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-scstadmin-args.t diff --git a/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-result.conf b/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-result.conf new file mode 100644 index 000000000..d11c5f262 --- /dev/null +++ b/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-result.conf @@ -0,0 +1,14 @@ +# Automatically generated by SCST Configurator v... + + +TARGET_DRIVER scst_local { + TARGET local { + GROUP ig { + + INITIATOR ini1 + + INITIATOR ini2 + } + } +} + diff --git a/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-scstadmin-args.t b/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-scstadmin-args.t new file mode 100644 index 000000000..accea98f5 --- /dev/null +++ b/scstadmin/scstadmin.sysfs/scst-0.9.10/t/07-scstadmin-args.t @@ -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")); +