diff --git a/.forgejo/workflows/test.yml b/.forgejo/workflows/test.yml new file mode 100644 index 0000000..74e5cd1 --- /dev/null +++ b/.forgejo/workflows/test.yml @@ -0,0 +1,71 @@ +name: per-push tests +on: + push: + +jobs: + build-components: + runs-on: docker + container: + image: rustlang/rust:nightly + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: compile components + run: | + cargo build --lib + cargo build --bin decomposer + + test-frontend: + needs: [build] + runs-on: docker + container: + image: rustlang/rust:nightly + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: test lexer + run: cargo test lexer + - name: test parser + run: cargo test parser + + timed-decomposer-parse: + needs: [test-frontend] + runs-on: docker + container: + image: rustlang/rust:nightly + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: build decomposer + run: cargo build --bin decomposer + - name: download test scheme source + run: curl https://raw.githubusercontent.com/ecraven/r7rs-benchmarks/refs/heads/master/src/compiler.scm --output test.scm + - name: time parsing of test source + run: cargo run --bin decomposer -- -t test.scm + + test-utility: + needs: [build] + runs-on: docker + container: + image: rustlang/rust:nightly + steps: + - name: checkout code + users: actions/checkout@v4 + - name: test number package + run: cargo test number + - name: test double stack data type + run: cargo test stackstack + - name: test hashmap data type + run: cargo test hmap + + test-backend: + needs: [build] + runs-on: docker + container: + image: rustlang/rust:nightly + steps: + - name: checkout code + uses: actions/checkout@v4 + - name: test instruction decoding + run: cargo test util # this is instruction decoding code +