Implement tests #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Install packages | |
run: sudo apt install -y opam zlib1g-dev pkg-config libgmp-dev z3 device-tree-compiler | |
- name: Check out repository code | |
uses: actions/checkout@HEAD | |
with: | |
submodules: recursive | |
- name: Ensure pre-commit checks pass | |
run: pip install pre-commit && pre-commit run --all-files --show-diff-on-failure --color=always | |
- name: Init opam | |
run: opam init --disable-sandboxing -y | |
- name: Install sail | |
run: opam install -y sail | |
- name: Download RISC-V toolchain (32-bit) | |
run: wget -c https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.04.12/riscv32-elf-ubuntu-22.04-gcc-nightly-2024.04.12-nightly.tar.gz | |
- name: Install RISC-V toolchain (32-bit) | |
run: sudo tar xvfz riscv32-elf-ubuntu-22.04-gcc-nightly-2024.04.12-nightly.tar.gz --directory /opt | |
- name: Download RISC-V toolchain (64-bit) | |
run: wget -c https://github.com/riscv-collab/riscv-gnu-toolchain/releases/download/2024.04.12/riscv64-elf-ubuntu-22.04-gcc-nightly-2024.04.12-nightly.tar.gz | |
- name: Install RISC-V toolchain (64-bit) | |
run: sudo tar xvfz riscv64-elf-ubuntu-22.04-gcc-nightly-2024.04.12-nightly.tar.gz --directory /opt | |
- name: Build RISC-V testsuite | |
run: | | |
cd TEST_DIR_ROOT/riscv_tests.git.subtree ; \ | |
echo ${PWD} ; ls ; \ | |
autoconf ; \ | |
./configure --prefix=${PWD}/target ; \ | |
export PATH=/opt/riscv/bin:${PATH} ; \ | |
make isa ; | |
- name: Build and test simulators | |
run: eval $(opam env) && test/run_tests.sh | |
- name: Build and test simulators (new method) | |
run: | | |
eval $(opam env) ; \ | |
cd TEST_DIR_ROOT/riscv_tests.git.subtree ; \ | |
../../bin/run_tests.py --outfile=tests_new.xml --32bit=yes --64bit=yes --c_sim=yes --sailcov=no --clean_build=yes --test_switch_pyfile=test_command_line_switch.py --test_ignore_pyfile=test_ignore_list.py | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: tests.xml | |
path: test/tests.xml | |
- name: Upload test results (new) | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: tests_new.xml | |
path: TEST_DIR_ROOT/riscv_tests.git.subtree/tests_new.xml | |
- name: Upload event payload | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: event.json | |
path: ${{ github.event_path }} |