Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
69d14e0
refactor: initial rust rewrite from python
JustinMeimar Feb 22, 2026
fa6f5a3
refactor: apply rust idioms
JustinMeimar Feb 22, 2026
374a6a4
refactor: move scripts to rust src
JustinMeimar Mar 1, 2026
bcda87a
refactor: drive grading scripts from cli
JustinMeimar Mar 1, 2026
e438dd5
refactor: replace custom error type with sum type
JustinMeimar Mar 1, 2026
7035d77
clean: delete old python project
JustinMeimar Mar 1, 2026
21972e0
fix: cache compiled regex
JustinMeimar Mar 1, 2026
0e89602
refactor: idiomatic rust cleanup for ported code
JustinMeimar Mar 1, 2026
b78bf8a
refactor: unified csv-backed key system for grading scripts
JustinMeimar Mar 1, 2026
15a0f06
fix: ci for new testing
JustinMeimar Mar 1, 2026
9147ba1
refactor: more idiomatic rust patterns
JustinMeimar Mar 1, 2026
5e5fdf3
fix: indent test output by subpackage depth
JustinMeimar Mar 1, 2026
b4dff3a
feat: decouple memcheck mode from valgrind config
JustinMeimar Mar 1, 2026
6dbb89a
refactor: use path/pathbuf in util function signatures
JustinMeimar Mar 1, 2026
ab7dda8
refactor: extract script runner into src/script.rs
JustinMeimar Mar 1, 2026
cf552ad
refactor: migrate path fields from string to pathbuf
JustinMeimar Mar 1, 2026
7e79e75
refactor: rewrite toolchain runner as try_fold pipeline
JustinMeimar Mar 1, 2026
a31af62
refactor: simplify toolchain config json language
JustinMeimar Mar 1, 2026
d833a4d
feat: add serve mode http api for remote test execution
JustinMeimar Mar 1, 2026
2c3fa67
refactor: avoid input stream allocation in run_step
JustinMeimar Mar 2, 2026
2f2b9e1
feat: parallelize test execution within subpackages using rayon
JustinMeimar Mar 2, 2026
891db69
feat: add embedded html frontend for serve mode
JustinMeimar Mar 2, 2026
12bdde7
chore: update cargo.lock for rayon dependency
JustinMeimar Mar 2, 2026
d91828c
refactor: organize files
JustinMeimar Mar 2, 2026
ac888d5
fix: valgrind in ci & skipping when unavailable
JustinMeimar Mar 2, 2026
99f99dd
fix: some non-optinal flags which should be optional
JustinMeimar Mar 2, 2026
ffb9b46
fix: macos ci test
JustinMeimar Mar 2, 2026
6d35a30
refactor: imperative arg skipping for default mode replaced with try_…
JustinMeimar Mar 2, 2026
7350d06
refactor: use a proc-macro system for logging
JustinMeimar Mar 2, 2026
02c81f7
rename: TestHarness trait to SequentialTestHarness
JustinMeimar Mar 2, 2026
997dd70
refactor: derive json serialization for Step struct and display for
JustinMeimar Mar 2, 2026
71283ed
refactor: introduce Serde for RawConfig to remove manual parse_toolch…
JustinMeimar Mar 2, 2026
1517dca
refactor: imperative directive parsing with functional
JustinMeimar Mar 2, 2026
4f1dc82
fix: remove MainError hack around introduced F25 due to spec
JustinMeimar Mar 2, 2026
f376bd5
refactor: give magic args their own Enum
JustinMeimar Mar 2, 2026
9ce897d
feature: closes #19 log full failure path
JustinMeimar Mar 2, 2026
ae73cec
impl: more descript DragonError variants
JustinMeimar Mar 2, 2026
b82bd2c
update: README
JustinMeimar Mar 2, 2026
5d2cd92
feature: closes #18 adding directive to skip tests
JustinMeimar Mar 2, 2026
3161ba9
fix: flush stdout after each test for smooth view
JustinMeimar Mar 2, 2026
d9a99e4
fix: create itermediate files in tmp as to not clutter cwd
JustinMeimar Mar 2, 2026
9de348f
update: nix flake
JustinMeimar Mar 2, 2026
d71f56e
refactor: accumulate parsing errors directly, without storing in Conf…
JustinMeimar Mar 2, 2026
60025f0
fix: error prone coupling between solutionExe and config
JustinMeimar Mar 2, 2026
11a33e5
update: restore previous formatting for -vv, -s, and -t flags
JustinMeimar Mar 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 19 additions & 16 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,28 @@ jobs:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install dependencies
run: |
pip install .

- name: run config tests
run: pytest tests/test_config.py
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable

- name: Install valgrind (Linux only)
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y valgrind

- name: run runner tests
run: pytest tests/test_runner.py
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}

- name: run grade tests
run: pytest tests/test_grader.py

- name: run runtime tests
run: pytest tests/test_runtime.py
- name: Run tests
run: ./tests/run_tests.sh
Loading
Loading