Skip to content

πŸ“š Update accreditation #1500

πŸ“š Update accreditation

πŸ“š Update accreditation #1500

Workflow file for this run

name: Tests
on: [ push ]
jobs:
# Stage 1: unit test vm machinery
unit:
name: Run VM unit tests
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, macos-latest ]
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Create build folder
run: mkdir build-unit-tests
- name: Build unit tests
run: cmake .. -D BUILD_UNITTEST=ON ; cmake --build .
working-directory: build-unit-tests
- name: Run unit tests
run: ctest -VV
working-directory: build-unit-tests
# Stage 2: integration testing with official Wasm specification test suite
spectests:
name: Run official testsuite
needs: unit
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Build warduino cli
run: |
cmake . -D BUILD_EMULATOR=ON
cmake --build .
echo "EMULATOR=$(realpath ./wdcli)" >> $GITHUB_ENV
- name: Get WABT commit ID
working-directory: lib/wabt
run: echo "WABT_VERSION=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache wabt
uses: actions/cache@v4
id: cache-wabt
with:
key: ${{ runner.os }}-wabt-${{ env.WABT_VERSION }}
path: lib/wabt/build
restore-keys: |
${{ runner.os }}-wabt-
- name: Build WABT # Build latest version
if: steps.cache-wabt.outputs.cache-hit == false
working-directory: lib/wabt
run: |
mkdir build; cd build
cmake ..
cmake --build .
- name: Verify wat2wasm
run: |
echo "WABT=$(readlink -f ./lib/wabt/build)" >> $GITHUB_ENV
./lib/wabt/build/wat2wasm --version
- run: npm install
working-directory: tests/latch/
- name: Run Latch
run: npm run spectest
working-directory: tests/latch/
# Stage 3: end-to-end testing of primitives and debugger
primtests:
name: Run WARDuino primitives testsuite
needs: spectests
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Build warduino cli
run: |
cmake . -D BUILD_EMULATOR=ON
cmake --build .
echo "EMULATOR=$(realpath ./wdcli)" >> $GITHUB_ENV
- name: Get WABT commit ID
working-directory: lib/wabt
run: echo "WABT_VERSION=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache wabt
uses: actions/cache@v4
id: cache-wabt
with:
key: ${{ runner.os }}-wabt-${{ env.WABT_VERSION }}
path: lib/wabt/build
restore-keys: |
${{ runner.os }}-wabt-
- name: Build WABT # Build latest version
if: steps.cache-wabt.outputs.cache-hit == false
working-directory: lib/wabt
run: |
mkdir build; cd build
cmake ..
cmake --build .
- name: Verify wat2wasm
run: |
echo "WABT=$(readlink -f ./lib/wabt/build)" >> $GITHUB_ENV
./lib/wabt/build/wat2wasm --version
- run: npm install
working-directory: tests/latch/
- name: Run Latch
run: npm run primtest
working-directory: tests/latch/
debugtests:
name: Run debugger testsuite
needs: spectests
runs-on: ubuntu-latest
if: github.event.pull_request.draft == false
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: 20
- name: Build warduino cli
run: |
cmake . -D BUILD_EMULATOR=ON
cmake --build .
echo "EMULATOR=$(realpath ./wdcli)" >> $GITHUB_ENV
- name: Get WABT commit ID
working-directory: lib/wabt
run: echo "WABT_VERSION=$(git rev-parse HEAD)" >> $GITHUB_ENV
- name: Cache wabt
uses: actions/cache@v4
id: cache-wabt
with:
key: ${{ runner.os }}-wabt-${{ env.WABT_VERSION }}
path: lib/wabt/build
restore-keys: |
${{ runner.os }}-wabt-
- name: Build WABT # Build latest version
if: steps.cache-wabt.outputs.cache-hit == false
working-directory: lib/wabt
run: |
mkdir build; cd build
cmake ..
cmake --build .
- name: Verify wat2wasm
run: |
echo "WABT=$(readlink -f ./lib/wabt/build)" >> $GITHUB_ENV
./lib/wabt/build/wat2wasm --version
- run: npm install
working-directory: tests/latch/
- name: Run Latch
run: npm run debugtest
working-directory: tests/latch/