KP Test Cases Catalog

[Contents] [Prev] [Next]
Table of Contents


The Knowbot Program test cases exercises many fundamental aspects of the Knowbot Operating System and its environment. Most are intended to be run by submitting them as KPs to a running KOS. The great majority run without operator intervention; exceptions will be noted.

Fundamental Operations

KP Capabilities
Does nothing but allow the __main__() entry to point to fall through.
Accomplishes nothing, but consumes some CPU resources in the process.
Locates all the KOSs and sends a clone to as many as it can, excepting the current host. The clones do not propogate.

Exercise import of module transported with the KP from MIME package., pickle.mime
Migrate to all the active kernels in the namespace - uses suitcase, as well. pickle.mime is a transportable-state version.
This KP migrates to the current KOS repeatedly. This tests the support for the suitcase and state migration.
Migrate, retaining a working SimpleIOAPI connector.
Migrate randomly among kernels, visiting each at most once. A limit on the number of hops is imposed as well.
Read a line from the standard input stream.
Exercise standard I/O streams. This is used to test the various remote-stream implementations.
Sleep for a specified time. The time to sleep is specified using a file in the KP's suitcase.,
Exercise conditional variables.
Test receipt of ``command line'' arguments passed to the KP using metadata. The arguments are received via sys.argv, just as they would be when running the program from the command line.
Produce list of KP suitcase contents; this tests the SuitcaseFilesystem class.
Exercise the suitcase a bit; test creating, reading, and writing files, and create a directory within the suitcase as well.
Wander around and exercise the suitcase at each KOS. This includes more exercising of the path manipulation and interpretation by the SuitcaseFilesystem class.
Produce a dictionary of the KP suitcase contents.

KOS Services
Produce list of services available at the current KOS.
Produce list of entries in namespace, similar to nslist.

Error Conditions,,,,,,
Exit in various operational phases to test proper handling of possible exit points.

badmetadata.mime, badmime.mime, empty.mime, nocode.mime
Errors in MIME packaging; these test the ????,,,,,,,
KPs which generate errors which should be detected by the Supervisor component of the KOS.
A KP which should be killed from another process will running. This tests the ability of the KOS kernel to determine the loss of the process and handle the error.,,
KPs which cause the Python interpreter running the Supervisor to core dump in various operational phases. This tests the ability of the KOS kernel to correctly detect this event.
Cause a migration failure due to an unpicklable value stored on the KP object.

Elaborate cases

Loading Conditions
Three generations of clone bifurcation, plus the original makes seven KPs. This started as a performance check.
Create lots of KPs and have them run around. This can crash the system.
Suitcase filesystem tests. This is not a KP; run $KOSROOT/testcases/ from a command line.
Exercise conflicting connector registration and bookkeeping.
Exercise submit mechanism's "limit" capability.

Extension-specific Tests
Exercise the HTTP plugin by loading several URLs specified on the KP's ``command line.'' Each retrieved document and the time it took to retrieve is printed to the KP's standard output.
Exercise interface-finder plugin 'ifinder', migrating among KOSs and collecting information about the interfaces available at each.
Exercise user-interface interaction using a migrated connector. This tests the ability of the KOE to rebuild a connection between a KP and a service (which may be another KP).

Miscellaneous Tests
Exercise implicit-gzipping suitcase interface,
Basic service provider and consumer,
Slightly more complex service provider and consumer

Table of Contents

[Contents] [Prev] [Next]
Copyright © 1998 by the Corporation for National Research Initiatives.