Project

General

Profile

Integration Test Suite

The integration test suite is located in the jobsub git repository at jobsub/test/client/integration_test.sh

Usage: ./integration_tests.sh
  • Default behavior is to run tests as the 'nova' group.
  • export GROUP=minerva (or whatever) to run as this group.
  • This test suite will run until it encounters an error and then exit.
    • export JOBSUB_TEST_CONTINUE_ON_FAILURE=1 to continue test suite after a failure
  • Some of the tests expect you to be able to submit using role=Production. Not all groups support this
  • As of 3/6/15 only groups lbne minerva, minos, and nova run Production jobs.
  • To disable this to test other groups, export SKIP_PRODUCTION_TEST=1.

If you have VOMS/GUMS entries allowing you submit as Production roles in these groups, this should run to completion without errors against the fifebatch-preprod server:

  • for G in lbne minerva minos nova ; do do export GROUP=$G ; ./integration_test.sh fifebatch-dev.fnal.gov ; done

If you are members of all of these groups in VOMS/GUMS, this command should run to completion without errors:

  • export SKIP_PRODUCTION_TEST=1
  • for G in argoneut cdf cdms chips coupp darkside des dzero fermilab genie gm2 lar1 lar1nd lariat lbne lsst marsgm2 marslbne marsmu2e minerva miniboone minos mu2e numix nova patriot seaquest uboone ; do do export GROUP=$G ; ./integration_test.sh fifebatch-dev.fnal.gov ; done

Starting with v1.1.1, Digicerts and proxies from Digicerts and KCAs are supported as authentication methods
To test this with the integration test suite:

  • voms-proxy-init (kca proxy) or grid-proxy-init (digicert proxy)
  • export X509_USER_PROXY=(whatever proxy you created in the previous step)
  • ./integration_test.sh my_server.fnal.gov as before

What is tested

integration_test.sh performs the following test, stopping if one of the tests fails.

  • test simple submission
    • jobsub_submit
  • test submission with Production role
    • jobsub_submit --role
  • test hold and release of submitted job
    • jobsub_hold
    • jobsub_release
  • test dag submission
    • jobsub_dag_submit
  • test dag submission with Production role
    • jobsub_dag_submit --role Production
  • test cdf SAM job DAG
    • jobsub_submit -G cdf --dataset_name
  • test job submission with dropbox
    • jobsub_submit dropbox://some_file
  • test job submission with with multiple -f dropbox combinations
    • jobsub_submit -f dropbox://file1 -f dropbox://file2
  • test help option
    • jobsub_submit -h
  • test jobsub_q permutations
    • jobsub_q
  • test jobsub_history permutations
    • jobsub_history
  • test jobsub_fetchlog permutations
    • jobsub_fetchlog
  • test listing of sandboxes
    • jobsub_fetchlog --list-sandboxes
    • jobsub_fetchlog --list-sandboxes --role Production
  • test listing remote sites
    • jobsub_status --list-sites
  • test list of URLS documented for responses via api_coverage_test.sh
  • test that jobsub_fetchlog with nonexistent group fails to authenticate
  • test that '@' in jobsub_submit options is parsed correctly by server
  • submit job that writes huge stdout to test that jobsub_max_head_size and jobsub_max_tail_size work correctly
  • submit job testing that environment variables with spaces and '=' in them are parsed correctly on server

Jobsub tools unit test suite.

These commands should be placed in a file named jobsub_tools_unit_test.sh and run periodically on the server:

#!/bin/bash
export SUBMIT_HOST=`hostname`
export GROUP=nova
export JOBSUB_INI_FILE=/opt/jobsub/server/conf/jobsub.ini 
export CONDOR_TMP=/tmp/$$
export CONDOR_EXEC=$CONDOR_TMP
mkdir -p $CONDOR_TMP
source /fnal/ups/etc/setups.sh
setup jobsub_tools
sh $JOBSUB_TOOLS_DIR/test/Run_Unit_Tests.sh