Testing the BCCD
From BCCD 3.0
Contents |
Automatic test suite
The first version of the BCCD test suite is now present in recent revisions of the BCCD. It resides in the bccd user home directory under tests.
Automatically Testing the BCCD
- Start up whatever setup you wish to test
- Log in as bccd and cd to tests
- Make sure there's a control directory. see the following section: "Generating a Control Directory" if you don't see one.
- Run startx
- Run bccd_test_suite.pl --mailto (your email)
- You should shortly receive a message in your email inbox declaring success or describing what tests had errors and how many.
- In the latter case, the details of the test will be included as an attachment.
Generating a Control Directory
The BCCD Test Suite utilizes comparative testing. It runs its tests and compares them against the results they had in a distribution / environment already known to work. These known good results are referred to as the "control." If you do not have a directory "control" with the control results of the tests in your ~bccd/tests folder, (if you're an end user you should) you can generate one on a known good machine with the -c predicate:
- Start up a network of at least two machines with the latest ISO
- If you mean to test in a single-node setting, boot up only one machine.
- Log in as bccd and cd into tests
- Run startx
- In either terminal, run perl bccd_test_suite.pl -c --mail --mailto you@yourdomain.com
- Presuming that your machine is connected to the network, eventually you'll receive an email with the control tarball.
- Check it for errors before using it. A test isn't much good if the control set is wrong.
Adding new tests
See a list of tests to be added to the test_suite.
Adding new tests has never been simpler.
- Write a script in your favorite language
- Make sure it knows what parser to use when executed (get to know #! ("shebang" if you want to Google it) if you're not already acquainted)
- Take a look to see if a similar test already exists to avoid duplicated effort (see Note)
- Save it in ~bccd/tests/scripts
- If your script is not a test, but a diagnostic for relevant system data, drop it in the "system" subdirectory
- "system" tests are not included in control generation, and are always included in reports, even reports of success
Note: There is a hidden subdirectory in the scripts directory .sharedcode. It is in this directory that you should put the code shared by multiple tests. For instance, the MPI tests all use the same general format and therefore are mostly handled by the perlshared.pm module file in the .sharedcode directory.
Scripts and Software combinations
| Test | Script | Notes | Test Results |
| Gromacs | gromacs.pl | TestGromacsNotes | GromacsTestLog |
| R | r.pl | TestRNotes | RTestLog |
| GalaxSee | mpitest.sh | TestGalNotes | GalaxeeTestLog |
| Life | mpitest.sh | TestLifeNotes | LifeTestLog |
| Param Space | mpitest.sh | TestPSNotes | ParamSpaceTestLog |
| PSC_DX | NA | TestPSCDX | PSC_DXTestLog |
MPI/Compiler Binding Matrix
| Application | OpenMPI + GCC | OpenMPI + ICC | MPICH2 + GCC | MPICH2 + ICC |
| GalaxSee | Yes (as of r2297) | Unknown | Yes (as of r2297) | Unknown |
| Life | Yes (as of r2297) | Unknown | Yes (as of r2297) | Unknown |
| Param Space | Yes (as of r2297) | Unknown | Yes (as of r2297) | Unknown |
Run states
Live CD
- Defaults
Either
- Custom router:
- Node 1: linux startdhcp dhcp_router=A.B.C.D.
- Make sure this ends up in /etc/dhcp3. You should see the router option in dhcpd.conf set to A.B.C.D.
- Custom router based on NIC:
- Node 1: linux startdhcp dhcp_routernic=ethn
- Make sure this ends up in /etc/dhcp3. You should see the router option in dhcpd.conf set to A.B.C.D.
- Custom IP information:
- Node 1: linux nics=ip0/mask0:ip1/mask1
- Make sure the node has this information in /etc/network/interfaces and ifconfig.
Liberated
- Liberate: perl /root/liberate.pl --libdev=/dev/dev
- Reboot.
- Start with DHCP services: linux startdhcp startnfs allowpxe
- Boot other cluster nodes after boot up.
- As root, add a new user
- Do the necessary setup for that user
- Attempt to run the parallel software as listed above.
Troubleshooting
- If zlib compression failures swamp the console when you try to liberate, this probably means you're using a scratched livecd disc.
- Wipe the disc clean and try again.