Features

Distributed Test Support

Whimsy has support for distributed testing baked in. This system supports running multiple tests on the same computer or running on both a server a multiple clients.

Note

The support for remote clients is not particularly fault tolerant. If a client disconnects before completing its currently assigned task the server is likely to hang. This is one area for further development.

In order to run the test suite in a multithreaded manner. The server and client should both have the same filesystem structure. (It would be simpliest to share a nfs mount, but copies will work just fine.) In both the client and server a credentials.ini file must exist in the current working directory. The file should contain the information to start the server and for the client to connect to it.

The credentials.ini should be formatted as follows:

[Credentials]
hostname=localhost
port=11111
passkey=password

Then when you wish to begin testing start up the client and server:

Client:

whimsy client -j 8

Server:

whimsy run -j 8

Note

It is required that the server be started with the flag -j2 or more in order for multithreading support to be enabled.

This support allows non lazy_init whimsy.fixture.Fixture objects to be built once and shared across test clients. I.E. expensive setup items like SCons targets will be built once and all test clients will be able to share them (assuming a client has the gem5 build attached via nfs).

This distributed support is provisional and may possibly need to be modified to fit users solutions. Modders will find the currently implemented support in the whimsy.runner.parallel and whimsy.runner.runner modules.