This program is used in testing the atlas software. It compares the output of atlas, over a list of commands, with a precomputed answer. It only compares MD5 checksums. It can also be used to just create atlas output files, without doing any testing. The program runs over a collection of predefined groups and auxiliary data. It creates a directory tree structure, and an input file for atlas. This file can be processed (separately or within this program) to populate the tree with atlas output files. Quick Start: Try this: testAtlas.pl -e -d tables -t tiny -o mysums -r referenceChecksums -l log This means: do everything (-e), only for type a1 (-t tiny), write checksums (-o mysums), compare result with reference (-r referenceChecksums), keep a log file (-l log). If that works, try the same with tiny replaced by t,s,m or l (tiny, small, medium or large) More Details: The program does four distinct things: 1) write an input file for atlas, based on the -t argument, and create a directory tree 2) process the input file using atlas. This populates the tree with data. 3) compute checksums on the resulting files in the directory tree. 4) compares these checksums with reference ones You can do each of these steps separately, or all using -e (everything). Usage: testAtlas.pl -m -d directory -t [t/s/m/l] [-l log] (make directories and input file for atlas) testAtlas.pl -a [-A atlasExecutable] (runs atlas with input file atlasInput) testAtlas.pl -c -d directory -o outputFile (compute checkums in files in directory, write to outputFile) testAtlas.pl -C -r referenceFile -s sumsFile (compare checksums in referenceFile and sumsFile testAtlas.pl -e -d directory -t [t/s/m/l] -o outputFile -r referenceFile -l log [-A atlasExecutable] The -m option can be used to create tables of atlas data, without doing any testing. Options: -d: create directory tree under "directory" -t: use tiny/small/medium/large data input -o: write checksums to "outputFile" -r: compare checksum from referenceFile to "outputFile" -l: log file -q: quiet (less output to terminal, same amount to log file) -v: verbose (more output to terminal, same amount to log file) Here is more detail about each step: 1) writing input file for atlas and creating diretory tree: Based on -t [t/s/m/l], run over a list of groups, and create a directory tree, and an input file "atlasInput" for atlas. tiny: just A1 small: A1 through C3 medium: A1 through E7 large: A1 through E8, except for the principal (biggest) block 2) running atlas runs atlas using atlasInput for input: atlas < atlasInput You can give this command by hand. The default atlas program is given at the top of the file, you can change this with -A 3) Computing checksums Computes md5 checksums for every file in the tree and writes to outputFile 4) Comparing checksums Compares checksums in reference file ([-r] argument) and sums file ([-s] argument). In the case of [-e], the sums file is assumed to be the output file given by the [-o] argument The following are reported: a) any checksums which don't agree between the two files b) any files for which checksums are found in only one of the two files