X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=test%2Ftestclearcase.pl;fp=test%2Ftestclearcase.pl;h=512d372ee33ae0f5a09987221dc1b819cfaa0fbe;hb=e907bf835bb61d8888f2fcd59c90bd071e841cf7;hp=545f3d047f4b6dd7cbaec7bb9af2aeb506cf181d;hpb=64b1fd397779f5b896e23fcca190b3e42f244145;p=clearscm.git diff --git a/test/testclearcase.pl b/test/testclearcase.pl index 545f3d0..512d372 100755 --- a/test/testclearcase.pl +++ b/test/testclearcase.pl @@ -43,17 +43,6 @@ $Date: 2011/01/09 01:01:32 $ -[no]uc|m: Perform UCM Clearcase tests (Default: noucm) -[no]clean: Cleanup after yourself (Default: clean) -if -ucm is specified then the following additional parameters should be set: - - -username: Username to connect to Clearquest with (Can set CQ_USERNAME) - -password: Password to use to connect to Clearquest (CQ_PASSWORD) - -weburl: Web URL to use for enabling Clearcase -> Clearquest - connection (CQ_WEBURL - Do not specify the trailing - "/oslc") - -database: Clearquest database to enable (CQ_DATABASE) - -dbset: Clearquest DBSet (CQ_DBSET) - -provider: Name of provider (Default: CQPROV) - =head1 DESCRIPTION Clearcase smoke tests. Perform simple Clearcase operations to validate that @@ -69,7 +58,7 @@ use warnings; use Cwd; use FindBin; use Getopt::Long; -use Pod::Usage; +#use Term::ANSIColor qw(:constants); use lib "$FindBin::Bin/../lib"; @@ -131,20 +120,11 @@ sub LogOpts() { ); for (sort keys %opts) { - next if /help/ || /usage/ || /password/; - if (ref $opts{$_} eq 'ARRAY') { my $name = $_; - - for (@{$opts{$_}}) { - $log->msg("$name:\t$_") if $_; - } # for + $log->msg("$name:\t$_") for @{$opts{$_}}; } else { - if ($opts{$_}) { - $log->msg("$_:\t$opts{$_}"); - } else { - $log->msg("$_:\t"); - } # if + $log->msg("$_:\t$opts{$_}"); } # if } # for @@ -208,28 +188,14 @@ sub DestroyVob($) { ($status, @output) = $Clearcase::CC->execute('cd'); - $log->err('Unable to perform cd command', 1) if $status; - $log->msg('Unmounting vob ' . $vob->tag); ($status, @output) = $vob->umount; - if ($status) { - $log->err('Unable to unmount vob ' . $vob->tag); - } else { - $log->msg('Umounted vob ' . $vob->tag); - } # if - $log->msg('Removing vob ' . $vob->tag); ($status, @output) = $vob->remove; - if ($status) { - $log->err("Failed to execute command " . - $Clearcase::CC->lastcmd . "\n" . - join "\t\n", @output); - } # if - $log->log($_) for @output; return $status; @@ -261,18 +227,6 @@ sub SetView($) { return $status; } # SetView -sub StopView($) { - my ($view) = @_; - - $log->msg('Stopping view ' . $view->tag); - - my ($status, @output) = $view->stop; - - $log->log($_) for @output; - - return $status; -} # StopView - sub DestroyView($) { my ($view) = @_; @@ -492,7 +446,7 @@ sub CleanupUCM() { ($rc, @output) = $test_activity->remove; $status += $rc; - + $log->log($_) for @output; # Need to remove baselines from streams first using rebase (Devstream) @@ -550,7 +504,7 @@ sub CleanupUCM() { $log->log($_) for @output; $status += DestroyView($test_intview); - + $log->msg('Removing '. $test_devstream->name); ($rc, @output) = $test_devstream->remove; @@ -640,71 +594,19 @@ sub SetupTest($$) { ($status, @output) = $Clearcase::CC->execute("cd $dir"); - $log->log($_) for @output; + if ($status != 0) { + $log->log($_) for @output; + } # if return $status; } # SetupTest -sub SetupAttributeTypes() { - my @CC_CMI_Types = qw(CONTEXT TASK PROVIDERS); - - my $status = SetView($test_intview); - - return $status if $status; - - for (@CC_CMI_Types) { - my $cmd = "mkattype -nc -vtype string CC_CMI_$_"; - - my ($rc, @output) = $Clearcase::CC->execute($cmd); - - $status += $rc; - - $log->log($_) for @output; - } # for - - return $status; -} # SetupAttributeTypes - -sub CRMRegister() { - my $cmd = "crmregister add -database $opts{database} -connection RDE " - . "-url $opts{weburl} -username $opts{username} " - . "-password $opts{password}"; - - my ($status, @output) = Execute $cmd; - - $log->log($_) for @output; - - return $status; -} # CRMRegister - -sub MakeCMProvider() { - my $cmd = 'mkcmprovider -vob ' . $test_pvob->tag - . '-type cmcq -version V1_0 -description ' - . '"RDE CMI CQ Provider" ' - . '-connection baseurl:' . $opts{weburl} . " $opts{provider}"; - - my ($status, @output) = $Clearcase::CC->execute($cmd); - - $log->log($_) for @output; - - return $status; -} # MakeCMProvider - sub SetupUCMTest() { my $status; - $log->msg("Register RDE://$opts{username}\@$opts{database}"); - - $status = CRMRegister; - - $log->err("Unable to register RDE://$opts{username}\@$opts{database} - Check logfile", $status) - if $status; + $log->msg("Creating UCM Pvob $Clearcase::VOBTAG_PREFIX/tc.pvob"); - $log->msg("Creating UCM Pvob ${Clearcase::VOBTAG_PREFIX}tc.pvob"); - - ($status, $test_pvob) = CreatePvob("${Clearcase::VOBTAG_PREFIX}tc.pvob"); - - MountVob $test_pvob; + ($status, $test_pvob) = CreatePvob("$Clearcase::VOBTAG_PREFIX/tc.pvob"); return $status; } # SetupUCMTest @@ -716,7 +618,7 @@ sub CreateUCMProject() { $test_project = Clearcase::UCM::Project->new('tc.project', $test_folder, $test_pvob); $test_project->remove if $test_project->exists; - + $log->msg('Creating UCM Project tc.project'); my ($status, @output) = $test_project->create; @@ -862,7 +764,6 @@ sub RunUCMTests() { $status += CreateUCMIntStream; $status += CreateUCMDevStream; $status += CreateUCMIntView; - $status += SetupAttributeTypes; $status += CreateUCMDevView; $status += CreateUCMComponent; $status += AddModifiableComponent; @@ -883,18 +784,8 @@ my $startTime = time; my $conf_file = "$FindBin::Bin/$script.conf"; my $status = 0; -$opts{help} = sub { pod2usage }; -$opts{usage} = sub { pod2usage (-verbose => 2)}; -$opts{base} = 1; -$opts{clean} = 1; -$opts{username} = $ENV{CQ_USERNAME}; -$opts{password} = $ENV{CQ_PASSWORD}; -$opts{weburl} = $ENV{CQ_WEBURL}; - -$opts{weburl} .= $opts{weburl} ? "/oslc" : undef; -$opts{database} = $ENV{CQ_DATABASE}; -$opts{dbset} = $ENV{CQ_DBSET}; -$opts{provider} = $ENV{CQ_PROVIDER} || 'CQPROV'; +$opts{base} = 1; +$opts{clean} = 1; GetOptions( \%opts, @@ -905,11 +796,7 @@ GetOptions( 'base!', 'ucm!', 'clean!', - 'username=s', - 'database=s', - 'dbset=s', - 'provider', -) || pod2usage; +) or Usage; # Read the config file if (-f $conf_file) { @@ -923,13 +810,6 @@ for (keys %default_opts) { $opts{$_} = $default_opts{$_} if !$opts{$_}; } # for -# Check CQ parameters -if ($opts{ucm}) { - for ('username', 'password', 'weburl', 'database', 'dbset', 'provider') { - pod2usage "In UCM mode you must specify -$_" unless $opts{$_}; - } # for -} # if - $log->msg("$script: Start"); LogOpts; @@ -937,12 +817,10 @@ LogOpts; # Since we are creating private vobs (to avoid complications with having to # know and code the registry password when making public vobs), we'll simply # change $Clearcase::VOBTAG_PREFIX -if ($ARCHITECTURE !~ /win/i) { - $Clearcase::VOBTAG_PREFIX = $ENV{TMP} . '/' || '/tmp'; -} # if +$Clearcase::VOBTAG_PREFIX = $ENV{TMP} || '/tmp'; if ($opts{base}) { - $status = SetupTest "${Clearcase::VOBTAG_PREFIX}tc.vob", 'tc.view'; + $status = SetupTest "$Clearcase::VOBTAG_PREFIX/tc.vob", 'tc.view'; if ($status == 0) { $status += RunTests; @@ -951,7 +829,7 @@ if ($opts{base}) { } # if # Note if we are doing UCM tests then we need the view and vob here... - $status += Cleanup($test_view, $test_vob) if $opts{clean} && !$opts{ucm}; + $status += Cleanup($test_view, $test_vob) if $opts{clean} and !$opts{ucm}; if ($status != 0) { $log->err("$script: Failed (Base Clearcase)"); @@ -1007,9 +885,11 @@ L L +L + =head2 ClearSCM Perl Modules -=begin man +=begin man Clearcase Clearcase::Element