Running the XSEDE Test Suite

How to run the XSEDE Tests against a bootstrapped grid

For the following instructions, we will give an example command line for each step.

Getting the test suite

  • To perform an anonymous checkout of the tools and test suite:
    • svn co svn://svn.xcg.virginia.edu:9002/GENREPO/GenesisII/trunk/xsede_tools xsede_tests

Setting up the test suite

  • Change into the xsede_tests directory: cd ~/xsede_tests
  • Copy the example input file to inputfile.txt: cp inputfile.example inputfile.txt
    • This file is the main configuration panel for what the tests will operate on in terms of queues, BES, etc.
  • Edit the inputfile.txt to match the type of bootstrapped grid you want to set up.
    • Note that the following steps use some of the information from this file as parameters.
    • If you want to run against an existing grid, then that will definitely dictate some of the contents of this file.

Initializing the test environment

  • Start by running the test preparation script: source prepare_tests.sh prepare_tests.sh
    • This step is needed before any of the following steps.
    • The script is mentioned twice on the command line to get around 'source' having no $0 to intuit the working directory from. The second path provides that.

Bootstrap a miniature grid

  • Using the quick start process...
    • bash ~/xsede_tests/library/bootstrap_quick_start.sh
    • This gets your container running in one step, based on the USERPATH in your input file.
    • Note that your user's password is set to FOOP.
    • (See appendix below for a bootstrap process that allows more flexibility.)
  • Note that the bootstrap process requires the "unlimited" JCE encryption jar files (see the page Developing GenesisII for more details). This is because the certificates used for the bootstrap grid's security are all created on the fly during the bootstrap process, and those certificates have a larger key size than the default JCE supports.

Actually running the tests...

  • To run the entire test suite: bash regression_test.sh
  • To run just GFFS tests: bash regression_test.sh GFFS
  • To run just EMS tests: bash regression_test.sh EMS

Helpful notes:

  • There is a top-level README.txt file that provides additional documentation and some caveats.
  • The regression test is a good reference for our entire list of tests.
  • Some of the individual tests require that you change to their directory before running them in isolation. The regression suite does this automatically.
  • If you would like assistance with running the tests, you can email the XCG Help mailing list at XCG Help Group or you can call Chris Koeritz or Vanamala Venkataswamy at Rice Hall on 434-243-2175.

Appendix

More Involved Bootstrap Process

  • This is a replacement for the Quick Start Process; do not run both.
  • Run the first part of the bootstrap process:
    • bash ~/xsede_tests/library/grid-bootstrap-single.sh /users/admin admin /groups/testers simpleGrid
    • Parameters are:
      • (1) RNS path to admin account.
      • (2) short name of admin account.
      • (3) RNS path to group that will be granted access to grid resources (SUBMIT_GROUP in inputfile.txt).
      • (4) short name for the bootstrap container (CONTAINERPATH in inputfile.txt).
    • This gives you a grid with a running container, an admin account, and two test accounts (test1:password1 and test2:password2).
    • This script also leaves you logged in as the admin. The tests are not intended to run with wide-open permissions like that, so be sure to login as one of the test accounts if you don't run the next step.
  • Run the second part of the bootstrap process to create demo users and set up the account in inputfile.txt:
    • NON_INTERACTIVE=true bash ~/xsede_tests/first_steps/setup_test_infrastructure.sh /containers/simpleGrid {chosenPassword}
    • The first parameter should be the full RNS path to your container that was just bootstrapped.
    • The {chosenPassword} should be replaced with whatever password you want your normal user to have.
    • If you want to have a unique user in inputfile.txt (set in the USERPATH variable) that is not a test account (test1 or test2) for running your tests, this step will create that account.
    • The demo users are needed for running multi-user tests. The script will set up the accounts listed in inputfile.txt (there are ten in the example input file).
    • Note that this script logs out of the grid once it's done, so you will need to log in again afterwards.
  • Then before running the tests, log out of any prior credentials and login with a normal user:
    • grid logout --all
    • grid login --username=test1 --password=password1
    • or... grid login --username={myUniqueUser} --password={chosenPassword}