Database

The database is composed of all of the pages and questions the project defines in its EML files. The database maintains an index of all these items based on their 'name' attribute. If there is no name assigned, then a name is generated by the index builder.

Queries

The database also maintains a list of queries created in script. The project uses these to access just a desired cross-section of the project's items.

The database only supports intersected searches. The only searches possible are for items which match ALL of the search properties. There is no way to specify a search for an item if it has property A OR property B. To change the search properties of the current query, use reset_column_search_strings and set_column_search_string.

Frames

When the current item in a query changes, the frame associated with that query is automatically updated. To associate a frame with a query, set the variable named '<query_name>_query_frame' to the name of the frame to update. The default query is called 'no_name', so if you don't save or load queries, you will want to set 'no_name_query_frame' to the name of a frame in your project.

Indexing

The index file maintained by the Test Engine is associated with the contents of the folder in which it resides. Whenever the Test Engine is run, it checks the contents of this folder to determine if they have changed since the index was built. If the contents are different, then the Test Engine automatically generates a new index and stores it.

The Windows Test Engine determines file changes based on size and date. The MacOS version uses only file size to determine changes (mostly because driver support for files on non-Appletalk networks isn't consistent enough at maintaining proper dates and would cause too many index recompilations)