# This file describes the GitHub Actions workflow for continuous integration of XS Core. name: EMU Test on: push: branches: [ master ] pull_request: branches: [ master ] jobs: generate-verilog: runs-on: self-hosted name: Generate Verilog steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Check Wiring run: bash .github/workflows/check-usage.sh "BoringUtils" $GITHUB_WORKSPACE - name: set env run: | echo "NEMU_HOME=/home/ci-runner/xsenv/NEMU" >> $GITHUB_ENV echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV - name: generate verilog file run: make verilog SIM_ARGS=--dual-core build-emu: runs-on: self-hosted name: Make EMU steps: - uses: actions/checkout@v2 with: submodules: 'recursive' - name: Set env run: | echo "NEMU_HOME=/home/ci-runner/xsenv/NEMU" >> $GITHUB_ENV echo "NOOP_HOME=$GITHUB_WORKSPACE" >> $GITHUB_ENV echo "RVTEST_HOME=/home/ci-runner/xsenv/riscv-tests" >> $GITHUB_ENV echo "AM_HOME=/home/ci-runner/xsenv/nexus-am" >> $GITHUB_ENV - name: Build EMU run: make ./build/emu SIM_ARGS=--disable-log NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME B=0 E=0 -j220 - name: Run cputest run: | CPU_TEST_DIR=$AM_HOME/tests/cputest echo $CPU_TEST_DIR ret=0 for test in $(ls $CPU_TEST_DIR/tests) do t=${test%.c} echo $t make -C $CPU_TEST_DIR ALL=$t ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run B=0 E=0 | grep "HIT GOOD TRAP" if [[ $? != 0 ]]; then echo $t fail ret=1 fi done exit $ret - name: Run riscv-tests run: | make -C $RVTEST_HOME/isa/ SUITES+=rv64ui SUITES+=rv64um SUITES+=rv64ua SUITES+=rv64uf SUITES+=rv64ud NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME noop_run B=0 E=0 - name: Run microbench run: | make -C $AM_HOME/apps/microbench ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME mainargs=test run B=0 E=0 - name: Run coremark run: | make -C $AM_HOME/apps/coremark ARCH=riscv64-noop AM_HOME=$AM_HOME NEMU_HOME=$NEMU_HOME NOOP_HOME=$NOOP_HOME run B=0 E=0