Testing Condor On Windows

Look here for BT's instructions: BT's Testing Condor On Windows


  • Install Active-State Perl
  • Make a git clone of the HTCondor repo OR unpack the source tarball
  • Build HTCondor for Windows: Instructions

Preparing for testing

The easiest way to get an ititial Windows HTCondor test environment is to build HTCondor from git. It is possible to download the HTCondor MSI or tarball and test that, but you will need to also have the tests and the msconfig tools that you get from a git clone or from the source tarball.

Testing needs

There are five things needed for testing on windows that need to be assembled

  1. built HTCondor release_dir or equivalent (unpack the .ZIP release)
  2. all sources for src/condor_tests including subdirectories
  3. Condor.PM, CondorUtils.pm, CondorTest.pm, CondorPersonal.pm and run_test.pl from src/condor_scripts
  4. built tests
  5. working personal HTCondor config

Get tests from the HTCondor sources

You must copy some files from the condor sources into into the directory you wish to test in.

set SRCDIR=\scratch\CONDOR_SRC
set testdir=\scratch\test001
mkdir %testdir%
xcopy /S /E /Q /Y "%SRCDIR%\src\condor_tests\*" "%testdir%\condor_tests\"
xcopy /Q /Y "%SRCDIR%\src\condor_scripts\*.pm" "%testdir%\condor_tests\"
xcopy /Q /Y "%SRCDIR%\src\condor_scripts\*.pl" "%testdir%\condor_tests\"

Install HTCondor in the test dir and create a configuration

CD to the directory where HTCondor is built (where your condor.sln file is), build the tests, and install HTCondor into the testing directory.

Install HTCondor into the testing dir

cd \scratch\build
set testdir=\scratch\test001
cmake -DBUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=%testdir% -P cmake_install.cmake
rem BUILD_TYPE sould be Debug or RelWithDebInfo depending on what you built.

Create a HTCondor configuration that all of the tests will derive from. Assuming the environment variable SRCDIR points to HTCondor sources you can use these commands:

pushd "%testdir%"
cscript "%SRCDIR%\msconfig\init_config.wsf" ETC=etc PERSONAL=Y RUNJOBS=A
mkdir log
mkdir spool
mkdir execute
echo NUM_CPUS = 8 >> "%testdir%\condor_config"

If the machine you are running tests on has fewer than 5 DETECTED_CPUS some tests are known to fail. To be safe set NUM_CPUS to 8.

The init_config.wsf script can be used to pass arguments to msconfig\WiX\config.vbs which will create a condor_config file in much the same way that condor_install does on *nix builds. The ETC argument tells it where to find condor_config.generic

Build and Install the tests

Build the tests and copy them into the testing dir. Run these commands in your HTCondor build directory. There are some tests that will still run if you skip this step.

devenv condor.sln /Build Debug /Project BLD_TESTS
xcopy /Q /Y src\condor_tests\list_* "%testdir%\condor_tests\"
xcopy /Q /Y src\condor_tests\Debug\*.exe "%testdir%\condor_tests\"
xcopy /Q /Y src\condor_tests\Debug\*.pdb "%testdir%\condor_tests\"

Setup environment and start HTCondor

Set PATH and CONDOR_CONFIG environment variables

set CONDOR_CONFIG=%testdir%\condor_config
set PATH=%testdir%\bin;%PATH%

Start HTCondor and verify that it is running. This step is optional for some tests. You can tell which tests require a running HTCondor by looking at the Test_Requirements file.

start %testdir%\bin\condor_master -f -t

If you are using a very recent version of HTCondor (8.5.3 or later) you can use the new -wait option for condor_who

condor_who -wait:60 "NumDead > 0 || AllAlive"

Run a test

You should now be able to run single tests in the testing location you chose. Tests in the Windows_SkipList file are known not to work on Windows. For instance to run test XXX.run:

cd %testdir%\condor_tests
run_test.pl -d . -t XXX.run

For versions of HTCondor prior to 8.4.10, you will use use batch_test.pl in instead of run_test.pl


Test XXX.run will typically have output and error files xxx.out and xxx.err in the same directory in which the test ran. Sometimes there will be additional files in a XXX.saveme subdirectory.