Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
ufebl
mjtest
Commits
d67903a5
Commit
d67903a5
authored
Nov 29, 2016
by
Johannes Bechberger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve README
parent
b8fdbb2b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
8 deletions
+35
-8
README.mdwn
README.mdwn
+35
-8
No files found.
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