Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
JustinMeimar committed Nov 17, 2024
1 parent 83ed36e commit 8533b03
Showing 1 changed file with 35 additions and 9 deletions.
44 changes: 35 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,10 @@
</div>
<br>

Dragon-Runner is a successor to the [415-tester](https://github.com/cmput415/Tester). Its name is derived by being a test runner for a compiler class that likes dragon iconography.

## Design
Dragon-Runner inherits much of the previous testers design but with greater emphasis on the following aspects:
## What

* Simplicity: Sub 1000 lines
* Reliability: Each step of the toolchain is observable to a configurable degree.
* User Experience: Warn when paths do not exist in the config, throw more informed errors when toolchains panic and improve debug support.
* Design: Define clear boundaries between the front, middle and backend.
`dragon-runner` is a successor to the [415-tester](https://github.com/cmput415/Tester). Its name is derived by being a test runner for a compiler class that likes dragon iconography. `dragon-runner` has dual functions for students and graders. For students it serves as unit tester, versaitle to use over arbitrary toolchains through a generic JSON configuration language. For graders dragon-runner is an swiss army knife of sorts. It wraps scripts for building, gathering tests, and meta JSON configuration which are useful for herding an arbitrary number of compiler submissions into place. It also can run tests in a tournament mode, where each submitted compier and test-suite pair is ran in a cross product with every other submission. The tournament mode produces a CSV output according to the CMPUT 415 grading scheme.

## Building

Expand All @@ -31,11 +26,42 @@ dragon-runner --help
```
If `dragon-runner` is not found on `$PATH` try adding `~/.local/bin`

## Contributing
Please feel free to make a PR. The previous tester had plenty of contributions
from students, we hope dragon-runner will as well.

## Examples

#### Preparing a Configuration File
The configuration file is in JSON format:
```json
{
"testDir": "<path_to_input>",
"testedExecutablePaths": {
"ccid_or_groupid": "<path_to_executable>"
},
"runtimes": {
"ccid_or_groupid": "<path_to_SHARED_library>"
},
"toolchains": {
"toolchain_name": [
{
"stepName": "step 1",
"executablePath": "<path_to_executable>",
"arguments": ["arg1", "arg2", ...],
"output": "<output_file_name>",
"usesRuntime": true,
"usesInStr": true
}
]
}
}
```
## Running

Dragon runner implements the same config semantics as the [415-tester](https://github.com/cmput415/Tester). Reference the documentation there in lieu of a complete migration.

## Contributing
## Issues

For any bugs or other problems please file a github issue.

Please feel free to make a PR. The previous tester had plenty of contributions from students.

0 comments on commit 8533b03

Please sign in to comment.