This is a test suite for the archiver. It is designed to ease the pain
of formulating the (rather complex) tests the check all the
functionality of the archiver. Simply loading up the GUI and playing
around with it is not enough, since one wrong move can destroy a
person's configuration.
Tests: The test suite checks the following functionality:
1. On an account or machine where data have never been
archived, the default location and archive are properly
and automatically set up without user intervention.
2. Locations inheriting the default location are created
and destroyed properly.
3. Backends can be added and removed from non-toplevel
locations, with both full and partial containment. Any
attempt to do so on a toplevel location results in an
error.
4. Rollback data may be stored on both the base and derived
locations. When stored in the derived location where the
backend is marked with partial containment, the rollback
data represent only the differences between the derived and
parent configurations. The most recent configuration from
the parent location is used for making this determination.
5. When rolling a backend back in a derived location, if the
backend is not marked as contained in the derived location,
the data are retrieved from the location's parent
recursively. If the backend is marked as partially
contained, then the XML data are merged with the parent's
data.
6. Changing the current location correctly invokes the
rollback algorithm
7. Rolling back by date and by number of steps works in a
manner similar to the above.
8. Logs accurately represent the data archived.
9. Backends are invoked properly and data are sent to them
properly.
10. All erroneous input should result in an error and not a
crash. The program should return an appropriate error
condition.