From bbf9ebfd80302d1416f9b1c660abbb36c168fd61 Mon Sep 17 00:00:00 2001 From: Dale Weiler Date: Sat, 24 Nov 2012 02:20:04 +0000 Subject: [PATCH] More documentation --- doc.html | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 136 insertions(+), 4 deletions(-) diff --git a/doc.html b/doc.html index d3074f1..344ee75 100644 --- a/doc.html +++ b/doc.html @@ -357,12 +357,144 @@ $ cd gmqcc

Testsuite Documentation

+

Running The Testsuite

- 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: + + + + + + + + + + + + + + + + + + + + + + + + + + +
ArgumentWhat it does
-redirout=<file>Redirect stdout to any file.
-redirerr=<file>Redirect stderr to any file.
-debugTurn on testsuite debug messages.
-memchkTurn on testsuite memleak checker.
-nocolorTurn off colored stdout/stderr.

- +

Writing Tests

+

+ 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: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TagDescription 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: +
    +
  • -compile  + This simply performs compilation only
  • +
  • -execute  + This will perform compilation and execution
  • +
+ + This tag must be provided, this tag is NOT optional. +
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
+

Notes

+

+ 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. +

+

Support or Contact

Having trouble with GMQCC? Join our IRC channel at #kf-engine on irc.freenode.net or contact Us -- 2.39.2