common/tools/ats/ats_testdrop.pl
author Simon Howkins <simonh@symbian.org>
Tue, 21 Sep 2010 13:09:28 +0100
changeset 1264 cdda4a9d1d16
parent 1087 73af6e555060
permissions -rw-r--r--
Store error output from 'hg id' to help diagnose why it's failing at the moment.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1087
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     1
#!/usr/bin/perl
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     2
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     3
# Copyright (c) 2009 Symbian Foundation Ltd
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     4
# This component and the accompanying materials are made available
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     5
# under the terms of the License "Eclipse Public License v1.0"
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     6
# which accompanies this distribution, and is available
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     7
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     8
#
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
     9
# Initial Contributors:
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    10
# Symbian Foundation Ltd - initial contribution.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    11
#   Mike Kinghan, mikek@symbian.org
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    12
#
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    13
# Contributors:
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    14
#   Maciej Seroka, maciejs@symbian.org
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    15
#
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    16
# Description:
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    17
#   This is a tool for sending an ATS testdrop to an ATS server.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    18
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    19
use strict;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    20
use Getopt::Long;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    21
use File::Copy;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    22
use File::Spec;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    23
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    24
my $username = "admin"; # ATS server user name
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    25
my $password = "admin"; # ATS server password
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    26
my $host;   # ATS server hostname
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    27
my $schedule;   # Schedule string for test drop, if any
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    28
my $host_drop_path; # Directory path on the ATS server where the test drop will be placed.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    29
                    # This must be physically the same path as $local_drop_path, via drive mapping. 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    30
my $local_drop_path; # Local directory path where the test drop will be placed.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    31
                    # This must be physically the same path as $host_drop_path, via drive mapping.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    32
my $local_test_pkg; # Local pathname of the test drop (zip or xml file). The test drop will be
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    33
                    # copied from here to $local_drop_path to make it accessible on the server,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    34
                    # unless $local_test_pkg begins with "...". This indicates the test drop is already
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    35
                    # present in $local_drop_path and does need to be copied there. The remainder
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    36
                    # following "..." is the filename of the test drop.    
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    37
my $help;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    38
my $dev_null = $^O =~ /^MSWin/ ? "nul" : "/dev/null";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    39
my $ats_version; # The version of ATS used for running tests
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    40
my $ats_worker_path;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    41
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    42
sub usage($);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    43
sub help();
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    44
sub usage_error();
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    45
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    46
my %optmap = (  'host' => \$host,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    47
			    'local-test-pkg' => \$local_test_pkg,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    48
				'host-drop-path' => \$host_drop_path,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    49
				'local-drop-path' =>\$local_drop_path,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    50
				'username' => \$username,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    51
				'password' => \$password,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    52
				'schedule' => \$schedule,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    53
				'ats-version' => \$ats_version,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    54
				'ats-worker-path' => \$ats_worker_path,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    55
                'help' => \$help);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    56
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    57
GetOptions(\%optmap,
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    58
          'host=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    59
          'local-test-pkg=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    60
          'host-drop-path=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    61
          'local-drop-path=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    62
          'username=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    63
          'password=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    64
          'schedule=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    65
		  'ats-version=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    66
		  'ats-worker-path=s',
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    67
          'help!') 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    68
          or usage_error();
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    69
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    70
if ($help) {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    71
	help();
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    72
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    73
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    74
usage_error(), unless (defined($host) && defined($local_test_pkg) && defined($local_drop_path) && defined($host_drop_path));
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    75
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    76
# --ats-version is not mandatory.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    77
if (!defined($ats_version)) { # Set ats3 by default
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    78
	$ats_version = "ats3" 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    79
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    80
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    81
# --ats-worker-path is not mandatory.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    82
if (!defined($ats_worker_path)) { # Set ats3 by default
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    83
	$ats_worker_path = "c:\\apps\\$ats_version\\bin" 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    84
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    85
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    86
my $curl_version = `curl --version 1> $dev_null 2>&1`;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    87
die("Need program \"curl\". Not found"), if ($?);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    88
die("Test drop path \"$local_drop_path\" not found"), unless ( -d "$local_drop_path");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    89
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    90
if (lc($ats_version) eq "ats4") {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    91
	$host = "http:\/\/" . $host . ":7780\/ServerService", unless ($host =~ /:\d+$/);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    92
} else {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    93
	$host .= ":8080", unless ($host =~ /:\d+$/);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    94
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    95
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    96
my ($vol,$dir,$pkg);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    97
my $local_test_drop;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    98
my $host_test_drop;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
    99
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   100
if ($local_test_pkg =~ /^\.\.\.(.+)/ ) { # Local test package name begins with "...". No need to copy. 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   101
    $pkg = $1; # Get the filename of the test package.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   102
    # Compose the full name of the test drop within the local drop path.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   103
    $local_test_drop = File::Spec->catfile($local_drop_path,$pkg);    
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   104
    die("Test package file \"$local_test_drop\" not found"), unless ( -f "$local_test_drop");        
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   105
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   106
else { # Local test package must be copied to local drop path.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   107
    die("Test package file \"$local_test_pkg\" not found"), unless ( -f "$local_test_pkg");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   108
    # Compose the full name of the test drop within the local drop path.    
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   109
    ($vol,$dir,$pkg) = File::Spec->splitpath($local_test_pkg);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   110
    $local_test_drop = File::Spec->catfile($local_drop_path,$pkg);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   111
    if ( -f "$local_test_drop") {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   112
        # A state test drop of the same name exists. Delete.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   113
        unlink($local_test_drop) or die("Can't delete stale test drop \"$local_test_drop\". $!");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   114
        print("A stale test drop \"$local_test_drop\" existed. Deleted\n");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   115
    }
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   116
    # Copy the test drop to the local drop path.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   117
    copy("$local_test_pkg","$local_test_drop")
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   118
        or die("Cannot copy \"$local_test_pkg\" -> \"$local_test_drop\". $!");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   119
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   120
# Compose the full name of the test drop within the host drop path.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   121
$host_test_drop = File::Spec->catfile($host_drop_path,$pkg);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   122
# Compose URL to notify server of test drop, requesting run.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   123
my $url;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   124
if (lc($ats_version) eq "ats4") {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   125
	$url ="-Xmx512M -cp  $ats_worker_path\/..\/plugins\/*;$ats_worker_path\/..\/lib\/util.jar com.nokia.ats.util.server.CommandLineClient -url $host -path $local_test_pkg";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   126
} else {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   127
	$url ="http://$host/ats3/XTestRunExecute.do?username=$username&password=$password&testrunpath=$host_test_drop";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   128
	$url .= "&schedule=$schedule", if (defined($schedule));
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   129
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   130
# Post URL to server with cURL.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   131
my $curl_cmd;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   132
if (lc($ats_version) eq "ats4") {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   133
	$curl_cmd = "java $url";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   134
} else {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   135
	$curl_cmd = "curl \"$url\"";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   136
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   137
my $curl_response = `$curl_cmd 2>&1`;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   138
#die("\nTest drop failed: $!\n"), if ($?);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   139
die("\nTest drop failed: $curl_response\n"), if ($?);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   140
if (lc($ats_version) eq "ats4") {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   141
	print "$curl_response\n";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   142
} else { 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   143
	if ($curl_response =~ /(TEST_RUN_REF_ID=\d+)/) {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   144
		#extract test run id from cURL response.
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   145
		print "$1\n";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   146
	}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   147
	else {
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   148
		print "$curl_response\n";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   149
		die("Test drop failed\n");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   150
	} 
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   151
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   152
print("Test drop done\n");
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   153
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   154
exit 0;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   155
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   156
sub usage($)
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   157
{
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   158
    my $error = shift;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   159
    my $fh = $error == 0 ? *STDOUT : *STDERR;
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   160
    print $fh "ats_testdrop.pl\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   161
            "Send a test drop to an ATS server for execution\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   162
            "usage:\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   163
            "  ats_testdrop.pl --help\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   164
            "  ats_testdrop.pl --host=HOSTNAME --local-test-pkg=PKGFILE --local-drop-path=LOCALPATH " .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   165
                " --host-drop-path=HOSTPATH " .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   166
                "[--username=ATS3USERNAME] [--password=ATS3PASSWORD] [--schedule=DD.MM.YYYY-HH:MM] [--ats-version=VERSION] [--ats-worker-path=ATSPATH]\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   167
            "options:\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   168
            "  --help                        Display this help and exit\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   169
            "  --host=HOSTAME                HOSTNAME is ATS server\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   170
            "  --local-test-pkg=PKGFILE      PKGFILE is the test package.\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   171
            "                                If PKGFILE begins \"...\" a filename in LOCALPATH is assumed\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   172
            "  --local-drop-path=LOCALPATH   Path to local directory where PKGFILE will be dropped\n" .            
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   173
            "  --host-drop-path=HOSTPATH     Host directory that is mapped to LOCALPATH.\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   174
            "                                Must agree with the properties of the registered device that the test package nominates\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   175
            "  --username=ATS3USERNAME       ATS3 user to whome the test will belong. Default=admin\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   176
            "  --password=ATS3PASSWORD       Password of ATS3 user. Default=admin\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   177
            "  --schedule=DD.MM.YYYY-HH:MM   Date-time at which test is to run. Default=as soon as possible\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   178
            "  --ats-version=VERSION         Version of ATS which will be used to run the tests. If not specified ATS3 will be set by default.\n" .
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   179
            "  --ats-worker-path=ATSPATH     Path to the ATS bin directory. If not specified c:\\apps\\\$ats_version\\bin will set by default.\n";
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   180
    exit $error;            
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   181
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   182
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   183
sub help()
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   184
{
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   185
    usage(0);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   186
}
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   187
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   188
sub usage_error()
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   189
{
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   190
    usage(1);
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   191
}             
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   192
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   193
# EOF
73af6e555060 Replaced ats3_testdrop with ats_testdrop to handle sending test drops to ATS4 server
Maciej Seroka <maciejs@symbian.org>
parents:
diff changeset
   194