Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
hekate:heart_overview [2010/03/04 10:45]
esimon
hekate:heart_overview [2019/06/27 15:49] (current)
Line 171: Line 171:
  
 To download or check examples of using these libraries check [[HeaRT HowTo]]. To download or check examples of using these libraries check [[HeaRT HowTo]].
-==== Automatic ​Test ====+===== Automatic ​Tests ===== 
 +A simple mechanism for testing HeaRT was implemented. It is a bash script called //test.sh// located in //tests// directory. (It can be downloaded also from here: {{:​hekate:​test.txt|test.sh}}) The script takes as a parameter a name of the file with testing data, and produces information about errors on the screen. More detailed information are stored in //log.txt// file automatically created by the script. 
 + 
 +Example use of the script looks as follow:<​code>​./​test.sh thermostat_test.pl</​code>​ 
 +Example output with no errors:<​code>​Testing thermostat_test.pl 
 +
 +OK 
 +</​code>​ 
 + 
 +Example output with errors:<​code>​Testting thermostat_test.pl 
 +
 +There was errors! 
 +ERROR: Produced state is different that expected, for states init4 and eval4  
 +ERROR: Produced: [[day, wed], [hour, 3], [month, 7], [today, workday], [season, summer], [operation, nbizhrs], [thermostat_settings,​ 27]]  
 +ERROR: Expected: [[day, mon], [hour, 3], [month, 7], [season, summer], [operation, nbizhrs], [today, workday], [thermostat_settings,​ 27]] 
 +</​code>​ 
 + 
 + 
 +The log file contains the full trajectory of the system (see {{:​hekate:​log.txt|example logfile}}). 
 + 
 +===How to create a test file === 
 +  - A test file is a HMR file prepared for testing script.  
 +  - A HMR file that should be a test file has to have two following lines at the begining of the file:<​code>:​- ensure_loaded('​../​heart.pl'​). 
 +:- ensure_loaded('​test-predicates.pl'​).</​code>​ The test-predicates file can be downloaded from here: {{:​hekate:​test-predicates.pl|}} 
 +  - Special sets of states have to be added to the file. The state that is an input file have to be called **initX**, where X is some number. The state that describes the expected output should be called **evalX**, where X is a number that binds **init** state with **eval** state. Example of the testing states are shown below: 
 +<​code>​ 
 +xstat init2: [day, 1]. 
 +xstat init2: [hour, 12]. 
 +xstat init2: [month, 4]. 
 + 
 +xstat eval2: [day, 1]. 
 +xstat eval2: [hour, 12]. 
 +xstat eval2: [month, 4]. 
 +xstat eval2: [season, spring]. 
 +xstat eval2: [operation, bizhrs]. 
 +xstat eval2: [today,​workday]. 
 +xstat eval2: [thermostat_settings,​ 20]. 
 +</​code>​ It means that for the input state init2, we expect output state eval2. 
  
hekate/heart_overview.1267695953.txt.gz · Last modified: 2019/06/27 16:00 (external edit)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0