diff options
Diffstat (limited to 'ACE/bin/PerlACE/TestTarget_WinCE.pm')
-rw-r--r-- | ACE/bin/PerlACE/TestTarget_WinCE.pm | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/ACE/bin/PerlACE/TestTarget_WinCE.pm b/ACE/bin/PerlACE/TestTarget_WinCE.pm new file mode 100644 index 00000000000..93791111145 --- /dev/null +++ b/ACE/bin/PerlACE/TestTarget_WinCE.pm @@ -0,0 +1,191 @@ +#! /usr/bin/perl +package PerlACE::TestTarget_WinCE; + +# ****************************************************************** +# Description : Creates a PerlACE::WiNCE +# Author : Johnny Willemsen +# Create Date : 29/20/2008 +# $Id$ +# ****************************************************************** + +# ****************************************************************** +# Pragma Section +# ****************************************************************** + +use strict; + +use PerlACE::TestTarget; +use PerlACE::ProcessVX; +use File::Copy; +use Cwd; +use English; + +our @ISA = qw(PerlACE::TestTarget); + +sub new +{ + my $proto = shift; + my $config_name = shift; + my $class = ref ($proto) || $proto; + my $self = {}; + bless ($self, $class); + $self->GetConfigSettings($config_name); + my $targethost; + my $env_name = $config_name.'_IPNAME'; + if (exists $ENV{$env_name}) { + $targethost = $ENV{$env_name}; + } + else { + print STDERR "You must define target hostname/IP with $env_name\n"; + undef $self; + return undef; + } + + $env_name = $config_name.'_FS_ROOT'; + my $fsroot = '\network\temp\ACE\wince6'; + if (exists $ENV{$env_name}) { + $fsroot = $ENV{$env_name}; + } + else { + print STDERR "Warning: no $env_name variable; falling back ", + "to $fsroot\n"; + } + $self->{FSROOT} = $fsroot; + + $self->{REBOOT_CMD} = $ENV{'ACE_REBOOT_LVRT_CMD'}; + if (!defined $self->{REBOOT_CMD}) { + $self->{REBOOT_CMD} = 'I_Need_A_Reboot_Command'; + } + $self->{REBOOT_TIME} = $ENV{'ACE_LVRT_REBOOT_TIME'}; + if (!defined $self->{REBOOT_TIME}) { + $self->{REBOOT_TIME} = 200; + } + + $self->{REBOOT_TIME} = $ENV{'ACE_RUN_LVRT_REBOOT_TIME'}; + if (!defined $self->{REBOOT_TIME}) { + $self->{REBOOT_TIME} = 200; + } + $self->{REBOOT_NEEDED} = undef; + + my $telnet_port = $ENV{'ACE_RUN_VX_TGT_TELNET_PORT'}; + my $telnet_host = $ENV{'ACE_RUN_VX_TGT_TELNET_HOST'}; + if (!defined $telnet_host) { + $telnet_host = $ENV{'ACE_RUN_VX_TGTHOST'}; + } + if (!defined $telnet_port) { + $telnet_port = 23; + } + if (!defined $self->{HOST_ROOT}) { + $self->{HOST_ROOT} = $self->{FSROOT}; + } + + $PerlACE::ProcessVX::ExeExt = '.exe'; + + return $self; +} + +# ****************************************************************** +# Subroutine Section +# ****************************************************************** + +sub LocalFile { + my $self = shift; + my $file = shift; + my $cwdrel = $file; + my $prjroot = defined $ENV{'ACE_RUN_VX_PRJ_ROOT'} ? $ENV{'ACE_RUN_VX_PRJ_ROOT'} : $ENV{'ACE_ROOT'}; + if (length ($cwdrel) > 0) { + $cwdrel = File::Spec->abs2rel( cwd(), $prjroot ); + } + else { + $cwdrel = File::Spec->abs2rel( $cwdrel, $prjroot ); + } + my $newfile = $self->{FSROOT} . "/" . $cwdrel . "/" . $file; + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print STDERR "WinCE LocalFile for $file is $newfile\n"; + } + return $newfile; +} + +sub AddLibPath ($) +{ + my $self = shift; + my $dir = shift; + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print STDERR "Adding libpath $dir\n"; + } + PerlACE::add_lib_path ($dir); +} + +sub CreateProcess +{ + my $self = shift; + if ($OSNAME eq "MSWin32") { + my $process = new PerlACE::ProcessVX ($self, @_); return $process; + } else { + my $process = new PerlACE::ProcessVX (@_, $self); return $process; + } +} + +# Need a reboot when this target is destroyed. +sub NeedReboot ($) +{ + my $self = shift; + $self->{REBOOT_NEEDED} = 1; +} + +# Reboot target +sub RebootNow ($) +{ + my $self = shift; + $self->{REBOOT_NEEDED} = undef; + print STDERR "Attempting to reboot target...\n"; + reboot (); +} + +sub WaitForFileTimed ($) +{ + my $self = shift; + my $file = shift; + my $timeout = shift; + my $cwdrel = $file; + my $prjroot = defined $ENV{'ACE_RUN_VX_PRJ_ROOT'} ? $ENV{'ACE_RUN_VX_PRJ_ROOT'} : $ENV{'ACE_ROOT'}; + if (length ($cwdrel) > 0) { + $cwdrel = File::Spec->abs2rel( cwd(), $prjroot ); + } + else { + $cwdrel = File::Spec->abs2rel( $cwdrel, $prjroot ); + } + my $newfile = $self->{HOST_ROOT} . "/" . $cwdrel . "/" . $file; + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print STDERR "WinCE waits for $newfile timeout $timeout\n"; + } + return PerlACE::waitforfile_timed ($newfile, $timeout); +} + +# Put file from a to b +sub PutFile ($) +{ + my $self = shift; + my $src = shift; + return 0; +} + +sub DeleteFile ($) +{ + my $self = shift; + my $file = shift; + my $newfile = $self->LocalFile($file); + if (defined $ENV{'ACE_TEST_VERBOSE'}) { + print STDERR "delete $newfile\n"; + } + unlink ("$newfile"); +} + +sub KillAll ($) +{ + my $self = shift; + my $procmask = shift; + PerlACE::ProcessVX::kill_all ($procmask, $self); +} + +1; |