Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
uwdkn
mjtest
Commits
d67903a5
Commit
d67903a5
authored
Nov 29, 2016
by
Johannes Bechberger
Browse files
Improve README
parent
b8fdbb2b
Changes
1
Hide whitespace changes
Inline
Side-by-side
README.mdwn
View file @
d67903a5
...
...
@@ -22,11 +22,11 @@ The test cases are divided in 5 'modes':
them.
- __ast__: Test cases that check the generated ast by using the pretty printing functionality.
- __semantic__: Test cases that check semantic checking of MiniJava programs
- __
exec
__: Test cases that check the correct compilation and execution of MiniJava programs.
- __
compile-firm
__: Test cases that check the correct compilation and execution of MiniJava programs
with the libfirm backend
.
_Only the lexer, syntax, ast and semantic mode are currently usable, but the others will follow._
The test different test cases for each mode are located in a folder with the same name.
Except the compile-firm test cases which are located in the `exec` folder.
The test different test cases for each mode are located in a folder with the same name.
The default directory that contains all test folders is `tests`.
Sub folders in side the test case folders are allowed.
...
...
@@ -43,7 +43,7 @@ Test types for the lexer mode
<tr><th>File ending(s) of test cases</th><th>Expected behaviour to complete a test of this type</th></tr>
<tr>
<td><code>.valid.mj</code> <code>.mj</code></td>
<td>Return code is <code>0</code> and the output matches the expected output (located in the file `[test file].out`</td>
<td>Return code is <code>0</code> and the output matches the expected output (located in the file `[test file].out`
)
</td>
</tr>
<tr>
<td><code>.invalid.mj</code>
...
...
@@ -89,7 +89,7 @@ Test types for the semantic mode
<table>
<tr><th>File ending(s) of test cases</th><th>Expected behaviour to complete a test of this type</th></tr>
<tr>
<td><code>.valid.mj</code> <code>.mj</code> <code>.valid.java</code> <code>.java</code>
<td><code>.valid.mj</code> <code>.mj</code> <code>.valid.java</code> <code>.java</code>
</td>
<td>Return code is <code>0</code>, i.e. the MiniJava is accepted as semantically correct</td>
</tr>
<tr>
...
...
@@ -101,6 +101,29 @@ Test types for the semantic mode
__All semantic mode tests have to be syntactically correct___
Test types for the compile-firm mode
------------------------------------
<table>
<tr><th>File ending(s) of test cases</th><th>Expected behaviour to complete a test of this type</th></tr>
<tr>
<td><code>.java</code> <code>.mj</code></td>
<td>The test file should compile. The resulting binary should be runnable and its output should be:<br/>
if a <code>[test file].out</code> exists: the content of this file<br/>
if no such file exists: the same as the execution of the file with <code>java</code></td>
</tr>
<tr>
<td><code>.inf.java</code> <code>.inf.mj</code></td>
<td>Tests for infinite loops. The test file should compile. The binary should run at least 1 second.
The output should start with the content of the <code>[test file].out</code> file, if such file exists.</td>
</tr>
</table>
__All compile-firm mode tests have to be semantically correct___
__All bigger test cases (e.g. for benchmarking) should be placed into the `big` folder__
Test runner
-----------
...
...
@@ -125,11 +148,11 @@ To get colored output install the python3 module `termcolor`.
Output of the `./mjt.py --help`
```
usage: mjt.py [-h] [--only_incorrect_tests] [--
produce_no_repor
ts]
[--produce_all_reports] [--parallel]
usage: mjt.py [-h] [--only_incorrect_tests] [--
all_exec_tes
ts]
[--produce_no_reports]
[--produce_all_reports] [--parallel]
[--output_no_incorrect_reports] [--color] [--ci_testing]
[--log_level LOG_LEVEL]
{all,lexer,syntax,ast,semantic,compile-firm
.
exec} MJ_RUN
{all,lexer,syntax,ast,semantic,compile-firm
,
exec} MJ_RUN
MiniJava test runner
...
...
@@ -144,6 +167,8 @@ optional arguments:
-h, --help show this help message and exit
--only_incorrect_tests
Only run the tests that were incorrect the last run
--all_exec_tests Run all exec (compile-firm...) tests, not only the
small ones
--produce_no_reports Produce no long reports besides the command line
output
--produce_all_reports
...
...
@@ -195,6 +220,8 @@ MiniJava style recommendations
### General
- All code should be valid Java code
- If code isn't valid Java code it should be located in a `.mj` file
- All other code files should end with `.java`
- All functionality that could be useful for other test cases should be extracted into an importable files
- Such importable files should be placed in a folder (or sub folder) of `lib`
- Classes and methods should be documented with Javadocs if there name isn't self explanatory
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment