Index: hcatalog/src/test/e2e/templeton/tests/jobsubmission.conf =================================================================== --- hcatalog/src/test/e2e/templeton/tests/jobsubmission.conf (revision 1477723) +++ hcatalog/src/test/e2e/templeton/tests/jobsubmission.conf (working copy) @@ -49,6 +49,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, { @@ -107,6 +108,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, ] @@ -128,6 +130,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'FAILURE', + 'check_job_exit_value' => 8, 'check_call_back' => 1, }, { @@ -140,7 +143,9 @@ #results 'status_code' => 200, 'check_job_created' => 1, + 'check_job_exit_value' => 0, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, { @@ -154,6 +159,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, { @@ -167,6 +173,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -181,6 +188,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -197,6 +205,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -212,6 +221,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -257,6 +267,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'FAILURE', + 'check_job_exit_value' => 11, }, @@ -271,6 +282,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -285,6 +297,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, { @@ -298,6 +311,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -312,6 +326,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -326,6 +341,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -340,6 +356,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, 'check_call_back' => 1, }, @@ -356,6 +373,7 @@ 'status_code' => 200, 'check_job_created' => 1, 'check_job_complete' => 'SUCCESS', + 'check_job_exit_value' => 0, }, Index: hcatalog/src/test/e2e/templeton/drivers/TestDriverCurl.pm =================================================================== --- hcatalog/src/test/e2e/templeton/drivers/TestDriverCurl.pm (revision 1477723) +++ hcatalog/src/test/e2e/templeton/drivers/TestDriverCurl.pm (working copy) @@ -699,7 +699,9 @@ } - if (defined $testCmd->{'check_job_created'} || defined $testCmd->{'check_job_complete'}) { + if ( (defined $testCmd->{'check_job_created'}) + || (defined $testCmd->{'check_job_complete'}) + || (defined $testCmd->{'check_job_exit_value'}) ) { my $jobid = $json_hash->{'id'}; if (!defined $jobid) { print $log "$0::$subName INFO check failed: " @@ -714,7 +716,7 @@ . "jobresult not defined "; $result = 0; } - if ($testCmd->{'check_job_complete'}) { + if (defined($testCmd->{'check_job_complete'}) || defined($testCmd->{'check_job_exit_value'})) { my $jobComplete; my $NUM_RETRIES = 60; my $SLEEP_BETWEEN_RETRIES = 5; @@ -736,12 +738,22 @@ $result = 0; } else { # job has completed, check the runState value - my $runState = $res_hash->{'status'}->{'runState'}; - my $runStateVal = $self->getRunStateNum($testCmd->{'check_job_complete'}); - if ( (!defined $runState) || $runState ne $runStateVal) { - print $log "check_job_complete failed. got runState $runState, expected $runStateVal"; - $result = 0; + if (defined($testCmd->{'check_job_complete'})) { + my $runState = $res_hash->{'status'}->{'runState'}; + my $runStateVal = $self->getRunStateNum($testCmd->{'check_job_complete'}); + if ( (!defined $runState) || $runState ne $runStateVal) { + print $log "check_job_complete failed. got runState $runState, expected $runStateVal"; + $result = 0; + } } + if (defined($testCmd->{'check_job_exit_value'})) { + my $exitValue = $res_hash->{'exitValue'}; + my $expectedExitValue = $testCmd->{'check_job_exit_value'}; + if ( (!defined $exitValue) || $exitValue ne $expectedExitValue) { + print $log "check_job_exit_value failed. got exitValue $exitValue, expected $expectedExitValue"; + $result = 0; + } + } } } }