This is a copy of PSPNG's docker-tests README file:
https://github.com/Internet2/grouper/blob/master/grouper-misc/grouper-pspng/pspng-docker-tests/README

This is PSPNG's integration-test harness which runs a 3-container docker-compose environment (GrouperDaemon, Ldap Server, Mysql DB), executes a series of gsh commands and tests PSPNG's corresponding provisioning of that Ldap Server. At a high level, there are three steps to running these tests: 1) docker-compose/build-images - Compiles PSPNG & creates docker images 2) ./create-data-templates - Creates LDAP & MySql data containers 3) RUN_TESTS - Runs actual tests This directory has the following components: - docker-compose/ - The Dockerfiles, etc for building the test environment. docker-compose/build-images compiles Grouper from local source and installs those .class files atop the TIER Grouper Docker Image - test-config* - Configuration-builders and other utilities for each type of pspng configuration being tested. For instance, test-config-posix-groups sets up grouper-loader.properties for posix-group provisioning as well as has utilities to validate that provisioning. - test*.sh - Individual tests that exercise a type of pspng activity. These can be run individually with some that work against specific test-config setups and others that can run against several of them. - RUN_TESTS - A harness that runs multiple tests against their compatible test-config setups. This collects results & logs. - scripts/ - A bunch of shell scripts that are used within the docker containers as well as within scripts run on the developer's workstation Environment variables used by the harness: DAEMON_BUILD_DIR: What Dockerfile should be used to build the grouper-daemon image to test There are three sources of grouper-daemon containers to test: -(default) The local version of pspng: DAEMON_BUILD_DIR=grouper-pspng-devel -A fully patched (including test patches) tier grouper image: DAEMON_BUILD_DIR=grouper-pspng-patched -The latest tier grouper image: DAEMON_BUILD_DIR=grouper-pspng-testing-config (untested) KEEP_VM={yes,no,on-failure}. Default: on-failure Should the docker containers continue to run after the test is finished (RUN_TESTS sets KEEP_VM=no) STOP_JAVA={yes,no}. Default: no Should the grouper-daemon jvm be killed after the test? GROUPER_LOADER_DEBUG_PORT, Default: none Configure the grouper-daemon jvm to listen on a jdb port, and wait for that port to be connected before continuing with the rest of the test KEEP_VOLUMES={yes,no}. Default:no, RUN_TESTS sets this to yes Should the volumes used by the ldap and mysql servers be kept after the containers are stopped TEST_HISTORY_DIR, Default:none Keep a file about every test, describing the hash of the config, its volume suffix and its result This is used when tests depend on other tests KEEP_TEMP={yes,no}. Default: no Should temporary files be kept Configuration of test groups and subjects: TEST_FOLDER_TOP (default: parentFolder): Root directory where groups are manipulated TEST_FOLDER (default: ${TEST_FOLDER_TOP}:provisionedFolder): Folder that is labeled for provisioning GROUP1_NAME (default: ${TEST_FOLDER}:group1) GROUP2_NAME (default: ${TEST_FOLDER}:group2) UNPROVISIONED_GROUP_NAME (default: ${TEST_FOLDER_TOP}:unprovisioned-group) - A group that is not labeled for provisioning PROVISIONER1_NAME (default: pspng1) SQL_DEBUGGING={yes,no}. Default: no Add extra sql logging to log4j config