Requirements
- 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
- built HTCondor release_dir or equivalent (unpack the .ZIP release)
- all sources for src/condor_tests including subdirectories
- Condor.PM, CondorUtils.pm, CondorTest.pm, CondorPersonal.pm and run_test.pl from src/condor_scripts
- built tests
- 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" popd
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 XXX.run
For versions of HTCondor prior to 8.4.10, you will use use batch_test.pl
in instead of run_test.pl
Results
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.