From: Dale Weiler
- GMQCC comes with a complete testsuite system for verifying semantics - and syntatics, TODO explain more and how to use it, write your own - tests etc.... + To run the testsuite you can either use +
$ make check+ Or if you're on windows or have already compiled the + testsuite from source: +
$ ./testsuite+ + Optionally you may provide the testsuite with additional + arguments: + +
Argument | +What it does | +
-redirout=<file> | +Redirect stdout to any file. | +
-redirerr=<file> | +Redirect stderr to any file. | +
-debug | +Turn on testsuite debug messages. | +
-memchk | +Turn on testsuite memleak checker. | +
-nocolor | +Turn off colored stdout/stderr. | +
+ GMQCC comes with a complete testsuite for verifying semantics + and syntatics. The testsuite executes files from the test/ + directory, by reading task template files. +
++ templates are rules for a specific test, used to create a "task" that + is executed with those set of rules (arguments, and what not). Tests + that don't have a template with them cannot become tasks, since without + the information for that test there is no way to properly "test" them. + Rules for these templates are described in a template file, using a + task template language. +
++ The languge is composed entierly of "tags" which describe a string of + text for a task. Think of it much like a configuration file. Except + it's been designed to allow flexibility and future support for prodecual + semantics. +
+
+ The following "tags" are suported by the language: +
+Tag | +Description of what the tag does | +
D: | +Used to set a description of the current test, this must be + provided, this tag is NOT optional. | +
F: | +Used to set a failure message, this message will be displayed + if the test fails, this tag is optional. | +
S: | +Used to set a success message, this message will be displayed + if the test succeeds, this tag is optional. + | +
T: | +Used to set the procedure for the given task, there are two
+ options for this:
+
|
+
C: | +Used to set the compilation flags for the given task, this + must be provided, this tag is NOT optional. | +
E: | +Used to set the execution flags for the given task. This tag + must be provided if T == -execute, otherwise it's erroneous + as compilation only takes place. | +
M: | +Used to describe a string of text that should be matched from + the output of executing the task. If this doesn't match the + task fails. This tag must be provided at least once if + T == -execute, otherwise it's erroneous as compilation only + takes place. Multiple M tags are required for multi-line comparision + | +
I: | +Used to specify the INPUT source file to operate on, this must be + provided, this tag is NOT optional | +
+ These tags (with exception to M) have one-time use, using them more + than once will result in template compilation errors, +
++ Lines beginning with # or // in the template file are comments and + are ignored by the template parser. + Whitespace is optional, with exception to the colon ':' between the + tag and it's assignment value. +
+ The template compiler will detect erronrous tags (optional tags + that need not be set), as well as missing tags, and error accordingly + which will result in that task failing. + +Having trouble with GMQCC? Join our IRC channel at #kf-engine on irc.freenode.net or contact Us