49 lines
1.9 KiB
Text
49 lines
1.9 KiB
Text
|
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.
|