diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-04-12 13:15:06 +0000 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2005-04-12 13:15:06 +0000 |
commit | 4bc8c9c38f13757ec06f2eac83ea5c7fff6d539e (patch) | |
tree | 686ca9c3dbdeb8b0f864c7ca0371018951db8bbc | |
parent | 71148bfdeff461e6a6d71d19487078751c887593 (diff) | |
download | ATCD-4bc8c9c38f13757ec06f2eac83ea5c7fff6d539e.tar.gz |
ChangeLogTag: Tue Apr 12 13:11:12 UTC 2005 Martin Corino <mcorino@remedy.nl>
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | bin/PerlACE/ProcessVX_Win32.pm | 90 |
2 files changed, 54 insertions, 41 deletions
diff --git a/ChangeLog b/ChangeLog index 6c5798e6a92..b7dea4929d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 12 13:11:12 UTC 2005 Martin Corino <mcorino@remedy.nl> + + * bin/PerlACE/ProcessVX.pm: + Enhanced functionality for controlling kernel reboot. + Tue Apr 12 07:53:39 2005 Arvind S. Krishna <arvindk@dre.vanderbilt.edu> * tests/Memcpy_Test.cpp: diff --git a/bin/PerlACE/ProcessVX_Win32.pm b/bin/PerlACE/ProcessVX_Win32.pm index 9933a51f06c..25d8c895a21 100644 --- a/bin/PerlACE/ProcessVX_Win32.pm +++ b/bin/PerlACE/ProcessVX_Win32.pm @@ -61,7 +61,7 @@ sub DESTROY "> still running upon object destruction\n"; $self->Kill (); } - + if (!defined $ENV{'ACE_TEST_VERBOSE'}) { unlink "run_test.vxs"; } @@ -174,7 +174,7 @@ sub Spawn () "> not executable\n"; return -1; } - + if ($self->{IGNOREEXESUBDIR} == 0) { if (!-f $self->Executable ()) { print STDERR "ERROR: Cannot Spawn: <", $self->Executable (), @@ -186,7 +186,7 @@ sub Spawn () my $status = 0; my $hard_reboot = 0; - + my $cmdline; ## ## check if VxWorks kernel is reachable @@ -227,46 +227,54 @@ sub Spawn () exit $status; } } - + ## ## initialize VxWorks kernel (reboot!) if needed if (!$hard_reboot && ($do_vx_init || $ENV{'ACE_RUN_VX_TGT_REBOOT'})) { - $cmdline = $self->{WINDSH} . " -e \"shParse {" . $self->{REBOOT_CMD} . "}\" " . $ENV{'ACE_RUN_VX_TGTSVR'}; - if (defined $ENV{'ACE_TEST_VERBOSE'}) { - print $cmdline . "\n"; - } - ## reboot VxWorks kernel to cleanup - Win32::Process::Create ($self->{PROCESS}, - $self->{WINDSH}, - $cmdline, - 0, - 0, - '.'); - if (defined $ENV{'ACE_TEST_VERBOSE'}) { - print "Spawned: " . $cmdline . "\n"; - } - Win32::Process::GetExitCode ($self->{PROCESS}, $status); - if ($status != $STILL_ACTIVE) { - print STDERR "ERROR: Spawn failed for <", $self->{WINDSH}, ">\n"; - exit $status; - } - if (defined $ENV{'ACE_TEST_VERBOSE'}) { - print "Status: $status\n"; + if (defined $ENV{'ACE_RUN_VX_REBOOT_TOOL'}) { + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print "Calling: $ENV{'ACE_RUN_VX_REBOOT_TOOL'}\n"; + } + system ($ENV{'ACE_RUN_VX_REBOOT_TOOL'}); } - $self->{RUNNING} = 1; - $status = $self->TimedWait (3); - if (defined $ENV{'ACE_TEST_VERBOSE'}) { - print "TimedWait Status: $status\n"; - } - if ($status == -1) { - $self->Kill (); - # Don't need to Wait since we are on Win32 + else { + $cmdline = $self->{WINDSH} . " -e \"shParse {" . $self->{REBOOT_CMD} . "}\" " . $ENV{'ACE_RUN_VX_TGTSVR'}; + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print $cmdline . "\n"; + } + ## reboot VxWorks kernel to cleanup + Win32::Process::Create ($self->{PROCESS}, + $self->{WINDSH}, + $cmdline, + 0, + 0, + '.'); + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print "Spawned: " . $cmdline . "\n"; + } + Win32::Process::GetExitCode ($self->{PROCESS}, $status); + if ($status != $STILL_ACTIVE) { + print STDERR "ERROR: Spawn failed for <", $self->{WINDSH}, ">\n"; + exit $status; + } + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print "Status: $status\n"; + } + $self->{RUNNING} = 1; + $status = $self->TimedWait (3); + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print "TimedWait Status: $status\n"; + } + if ($status == -1) { + $self->Kill (); + # Don't need to Wait since we are on Win32 + } + $self->{RUNNING} = 0; + $self->{PROCESS} = undef; } - $self->{RUNNING} = 0; - $self->{PROCESS} = undef; $set_vx_defgw = 1; $do_vx_init = 0; - + sleep($self->{REBOOT_TIME}); } @@ -280,7 +288,7 @@ sub Spawn () } $cwdrel =~ s/\\/\//g; $program = basename($program, ".out"); - + unlink "run_test.vxs"; my $oh = new FileHandle(); if (!open($oh, ">run_test.vxs")) { @@ -298,11 +306,11 @@ sub Spawn () "cd \"" . $ENV{"ACE_ROOT"} . "/" . $cwdrel . "\"\n" . "\@cd \"" . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . "\"\n" . "putenv(\"TMPDIR=" . $ENV{"ACE_RUN_VX_TGTSVR_ROOT"} . "/" . $cwdrel . "\")\n"; - + if (defined $ENV{'ACE_RUN_VX_CHECK_RESOURCES'}) { print $oh "memShow();\n"; } - + my $length = length ($program) + 2; my $arguments = ""; if (defined $self->{ARGUMENTS}) { @@ -358,12 +366,12 @@ sub WaitKill ($) print STDERR "ERROR: $self->{EXECUTABLE} timedout\n"; $self->Kill (); # Don't need to Wait since we are on Win32 - + $do_vx_init = 1; # force reboot on next run } $self->{RUNNING} = 0; - + return $status; } |