{section: Testing HTCondor On Linux} Starting in 8.9.3, HTCondor tests can be invoked using the =ctest= framework. {subsection: Building HTCondor} This is a simple primer for building HTCondor; refer to BuildingHtcondorOnLinux for more in-depth build instructions. 1: Get the source code from any of the following locations: {code} git clone https://github.com/htcondor/htcondor.git # Source code can also be obtained from tarballs on HTCondor's website {endcode} 2: Compiling the code and tests.(See {wiki: BuildingHtcondorOnLinux} for more details on building the code and pre-requisites) {code} cd htcondor # change directory to the root of source tree.. mkdir __build # make an out-of-source build destination cd __build ../configure_uw .. make install {endcode} {subsection: Running ctest} From the build directory, after creating a release directory via =make install= (or equivalent), run: {code} ctest {endcode} That's it! The tests should be idempotent - it should be safe to re-run them as many times as desired. If all the tests fail and the failures happened very quickly (i.e., no condor was launched), the first place to check is =Testing/Temporary/LastTest.log=. *NOTE*: Some tests failures cause a personal =condor_pool= to be leaked. If you have issues re-running the tests, try doing =killall condor_master=. Some =ctest= tips and tricks: {code} # Run 20 test cases in parallel: ctest -j 20 # Run all tests matching the regex `cmr`: ctest -R cmr {endcode} {subsection: Running ctest in a docker container} When running the condor tests inside a docker container, the container must be started with special flags for some of the tests to work. While we hope to fix the tests in the future, for now, starting with {code} docker run --network host --hostname docker.cs.wisc.edu {endcode} is needed. The unit_test_sinful looks for ipv6 addresses, which most docker containers do not fully support, and running with host networking fixes that problem. Many other tests assume that hostnames are FQDNs, and will fail if the hostname of the container has no dots in it.