|
|
name: tests
|
|
|
|
|
|
on:
|
|
|
push:
|
|
|
paths-ignore: ['**.md', '**.svg', '**.png']
|
|
|
pull_request:
|
|
|
paths-ignore: ['**.md', '**.svg', '**.png']
|
|
|
|
|
|
jobs:
|
|
|
linux:
|
|
|
runs-on: ubuntu-latest
|
|
|
name: linux-${{ matrix.config.target }}
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
strategy:
|
|
|
fail-fast: false
|
|
|
matrix:
|
|
|
config:
|
|
|
- {target: clang, cc: clang, }
|
|
|
- {target: clang-x86, cc: clang, flags: -DCMAKE_C_FLAGS="-m32", install: "gcc-multilib" }
|
|
|
- {target: gcc, cc: gcc, }
|
|
|
# Builds without uvwasi
|
|
|
- {target: gcc-no-uvwasi, cc: gcc, flags: -DBUILD_WASI=simple }
|
|
|
- {target: clang-no-uvwasi, cc: clang, flags: -DBUILD_WASI=simple }
|
|
|
# Debug builds
|
|
|
- {target: gcc-debug, cc: gcc, flags: -DCMAKE_BUILD_TYPE=Debug }
|
|
|
- {target: clang-no-uvwasi-debug, cc: clang, flags: -DCMAKE_BUILD_TYPE=Debug -DBUILD_WASI=simple }
|
|
|
|
|
|
# TODO: fails on numeric operations
|
|
|
#- {target: gcc-x86, cc: gcc, flags: "-m32", install: "gcc-multilib" }
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Install ${{ matrix.config.install }}
|
|
|
if: ${{ matrix.config.install }}
|
|
|
run: |
|
|
|
sudo apt install ${{ matrix.config.install }}
|
|
|
- name: Configure
|
|
|
env:
|
|
|
CC: ${{ matrix.config.cc }}
|
|
|
CFLAGS: ${{ matrix.config.cflags }}
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ${{ matrix.config.flags }} ..
|
|
|
- name: Build
|
|
|
run: |
|
|
|
cmake --build build
|
|
|
- name: Test WebAssembly spec
|
|
|
run: cd test && python3 run-spec-test.py
|
|
|
- name: Test previous WebAssembly specs
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-spec-test.py --spec=v1.1
|
|
|
- name: Test WASI apps
|
|
|
run: cd test && python3 run-wasi-test.py
|
|
|
|
|
|
linux-alpine:
|
|
|
runs-on: ubuntu-latest
|
|
|
container: alpine:3.10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Prepare
|
|
|
run: apk add build-base cmake python3 git --update-cache
|
|
|
- name: Configure
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ..
|
|
|
- name: Build
|
|
|
run: cmake --build build
|
|
|
- name: Test WebAssembly spec
|
|
|
run: cd test && python3 run-spec-test.py
|
|
|
- name: Test WASI apps
|
|
|
run: cd test && python3 run-wasi-test.py
|
|
|
|
|
|
macos:
|
|
|
runs-on: macos-latest
|
|
|
name: macos-${{ matrix.config.target }}
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
strategy:
|
|
|
fail-fast: false
|
|
|
matrix:
|
|
|
config:
|
|
|
- {target: uvwasi, }
|
|
|
- {target: no-uvwasi, flags: -DBUILD_WASI=simple }
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Configure
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ${{ matrix.config.flags }} ..
|
|
|
- name: Build
|
|
|
run: |
|
|
|
cmake --build build
|
|
|
- name: Test WebAssembly spec
|
|
|
run: cd test && python3 run-spec-test.py
|
|
|
- name: Test previous WebAssembly specs
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-spec-test.py --spec=v1.1
|
|
|
- name: Test WASI apps
|
|
|
run: cd test && python3 run-wasi-test.py
|
|
|
|
|
|
windows:
|
|
|
runs-on: windows-latest
|
|
|
name: windows-${{ matrix.config.target }}
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
strategy:
|
|
|
fail-fast: false
|
|
|
matrix:
|
|
|
config:
|
|
|
- {target: clang-x64, platform: "-A x64", toolset: "-T ClangCL" }
|
|
|
- {target: msvc-x64, platform: "-A x64", toolset: "" }
|
|
|
- {target: clang-x86, platform: "-A Win32", toolset: "-T ClangCL" }
|
|
|
- {target: msvc-x86, platform: "-A Win32", toolset: "" }
|
|
|
# Builds without uvwasi
|
|
|
- {target: clang-x64-no-uvwasi, platform: "-A x64", toolset: "-T ClangCL", flags: "-DBUILD_WASI=simple" }
|
|
|
- {target: msvc-x64-no-uvwasi, platform: "-A x64", toolset: "", flags: "-DBUILD_WASI=simple" }
|
|
|
- {target: clang-x86-no-uvwasi, platform: "-A Win32", toolset: "-T ClangCL", flags: "-DBUILD_WASI=simple" }
|
|
|
- {target: msvc-x86-no-uvwasi, platform: "-A Win32", toolset: "", flags: "-DBUILD_WASI=simple" }
|
|
|
|
|
|
defaults:
|
|
|
run:
|
|
|
shell: cmd
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Configure
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ${{ matrix.config.platform }} ${{ matrix.config.toolset }} ${{ matrix.config.flags }} ..
|
|
|
- name: Build
|
|
|
run: |
|
|
|
cmake --build build --config Release
|
|
|
cp ./build/Release/wasm3.exe ./build/
|
|
|
- name: Test WebAssembly spec
|
|
|
run: |
|
|
|
cd test
|
|
|
python run-spec-test.py
|
|
|
- name: Test previous WebAssembly specs
|
|
|
run: |
|
|
|
cd test
|
|
|
python run-spec-test.py --spec=v1.1
|
|
|
- name: Test WASI apps
|
|
|
run: |
|
|
|
cd test
|
|
|
python run-wasi-test.py
|
|
|
|
|
|
wasi:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Install Python dependencies
|
|
|
run: |
|
|
|
python3 -m pip install pip==20.1.1
|
|
|
python3 -m pip install --upgrade setuptools wheel
|
|
|
pip3 --version
|
|
|
- name: Install Wasienv
|
|
|
env:
|
|
|
WASMER_RELEASE_TAG: "1.0.2"
|
|
|
run: curl https://raw.githubusercontent.com/wasienv/wasienv/master/install.sh | sh
|
|
|
- name: Configure
|
|
|
run: |
|
|
|
source $HOME/.wasienv/wasienv.sh
|
|
|
mkdir build-wasi
|
|
|
cd build-wasi
|
|
|
wasimake cmake ..
|
|
|
- name: Build
|
|
|
run: |
|
|
|
source $HOME/.wasienv/wasienv.sh
|
|
|
cmake --build build-wasi
|
|
|
- name: Test WebAssembly spec (in Wasmer)
|
|
|
run: |
|
|
|
source $HOME/.wasmer/wasmer.sh
|
|
|
cd test
|
|
|
python3 run-spec-test.py --exec "wasmer run --mapdir=/:. ../build-wasi/wasm3.wasm -- --repl"
|
|
|
|
|
|
- name: Test WASI apps (in Wasmer)
|
|
|
run: |
|
|
|
source $HOME/.wasmer/wasmer.sh
|
|
|
cd test
|
|
|
python3 run-wasi-test.py --exec "wasmer run --mapdir=/:. ../build-wasi/wasm3.wasm --" --fast
|
|
|
|
|
|
- name: Configure (native)
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ..
|
|
|
- name: Build (native)
|
|
|
run: |
|
|
|
cmake --build build
|
|
|
- name: Test WebAssembly spec (in Wasm3, self-hosting)
|
|
|
run: |
|
|
|
cd test
|
|
|
cp ../build-wasi/wasm3.wasm ./
|
|
|
python3 run-spec-test.py --exec "../build/wasm3 --stack-size 2097152 ../build-wasi/wasm3.wasm --repl"
|
|
|
- name: Test WASI apps (in Wasm3, self-hosting)
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-wasi-test.py --fast --exec "../build/wasm3 --stack-size 2097152 ../build-wasi/wasm3.wasm"
|
|
|
|
|
|
ios:
|
|
|
runs-on: macos-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: List Xcode versions
|
|
|
run: ls /Applications | grep Xcode
|
|
|
- name: Select Xcode 11
|
|
|
run: sudo xcode-select -switch /Applications/Xcode_11.3.app
|
|
|
- name: Build (iPhone 11)
|
|
|
run: |
|
|
|
cd platforms/ios
|
|
|
xcodebuild build -scheme wasm3 -project wasm3.xcodeproj -configuration Release -destination 'platform=iOS Simulator,name=iPhone 11,OS=13.3'
|
|
|
|
|
|
android:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- uses: seanmiddleditch/gha-setup-ninja@master
|
|
|
- name: Set up JDK 1.8
|
|
|
uses: actions/setup-java@v1
|
|
|
with:
|
|
|
java-version: 1.8
|
|
|
- name: Install NDK
|
|
|
run: |
|
|
|
sudo ${ANDROID_HOME}/tools/bin/sdkmanager --install "ndk;22.0.7026061"
|
|
|
- name: Build
|
|
|
run: |
|
|
|
cd platforms/android
|
|
|
./gradlew build
|
|
|
|
|
|
python:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- name: Checkout
|
|
|
uses: actions/checkout@v2
|
|
|
with:
|
|
|
path: wasm3
|
|
|
- name: Checkout pywasm3
|
|
|
uses: actions/checkout@v2
|
|
|
with:
|
|
|
repository: wasm3/pywasm3
|
|
|
path: pywasm3
|
|
|
- name: Set up Python
|
|
|
uses: actions/setup-python@v2
|
|
|
- name: Update and Build Python module
|
|
|
run: |
|
|
|
rm -rf ./pywasm3/wasm3
|
|
|
cp -r wasm3/source ./pywasm3/wasm3
|
|
|
pip install ./pywasm3
|
|
|
- name: Install WABT
|
|
|
run: |
|
|
|
sudo apt install wabt
|
|
|
- name: Test
|
|
|
run: |
|
|
|
pip install pytest
|
|
|
cd ./pywasm3
|
|
|
pytest
|
|
|
|
|
|
cosmopolitan:
|
|
|
runs-on: ubuntu-20.04
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Build αcτµαlly pδrταblε εxεcµταblε
|
|
|
run: |
|
|
|
cd platforms/cosmopolitan
|
|
|
gcc -v
|
|
|
./build.sh
|
|
|
- name: Prepare tests
|
|
|
run: |
|
|
|
cd test
|
|
|
cp ../platforms/cosmopolitan/wasm3.com ./wasm3-lin.com
|
|
|
cp ../platforms/cosmopolitan/wasm3.com ./wasm3-win.com
|
|
|
sudo sh -c "echo ':APE:M::MZqFpD::/bin/sh:' >/proc/sys/fs/binfmt_misc/register"
|
|
|
- name: Test WebAssembly spec
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-spec-test.py --exec "./wasm3-lin.com --repl"
|
|
|
- name: Test WASI apps
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-wasi-test.py --fast --exec "./wasm3-lin.com"
|
|
|
- name: Install Wine64
|
|
|
run: |
|
|
|
sudo apt install wine64
|
|
|
wine --version
|
|
|
- name: Test WebAssembly spec (in Wine)
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-spec-test.py --exec "wine ./wasm3-win.com --repl"
|
|
|
- name: Test WASI apps (in Wine)
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-wasi-test.py --fast --exec "wine ./wasm3-win.com"
|
|
|
|
|
|
cross-qemu:
|
|
|
runs-on: ubuntu-20.04
|
|
|
name: cross-qemu-${{ matrix.config.target }}
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
strategy:
|
|
|
fail-fast: false
|
|
|
matrix:
|
|
|
config:
|
|
|
#- {target: i386, toolchain: gcc-multilib, cc: clang -m32, qemu: qemu-i386-static }
|
|
|
- {target: arm, toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static }
|
|
|
- {target: armhf, toolchain: gcc-arm-linux-gnueabihf, cc: arm-linux-gnueabihf-gcc, qemu: qemu-arm-static }
|
|
|
- {target: aarch64, toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static }
|
|
|
- {target: riscv64, toolchain: gcc-riscv64-linux-gnu, cc: riscv64-linux-gnu-gcc, qemu: qemu-riscv64-static }
|
|
|
- {target: ppc, toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static }
|
|
|
- {target: ppc64, toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static }
|
|
|
#- {target: ppc64le, toolchain: gcc-powerpc64le-linux-gnu, cc: powerpc64le-linux-gnu-gcc, qemu: qemu-ppc64le-static }
|
|
|
- {target: s390x, toolchain: gcc-s390x-linux-gnu, cc: s390x-linux-gnu-gcc, qemu: qemu-s390x-static }
|
|
|
- {target: mips, toolchain: gcc-mips-linux-gnu, cc: mips-linux-gnu-gcc, qemu: qemu-mips-static }
|
|
|
- {target: mips64, toolchain: gcc-mips64-linux-gnuabi64, cc: mips64-linux-gnuabi64-gcc, qemu: qemu-mips64-static }
|
|
|
- {target: mipsel, toolchain: gcc-mipsel-linux-gnu, cc: mipsel-linux-gnu-gcc, qemu: qemu-mipsel-static }
|
|
|
- {target: mips64el,toolchain: gcc-mips64el-linux-gnuabi64, cc: mips64el-linux-gnuabi64-gcc,qemu: qemu-mips64el-static }
|
|
|
- {target: alpha, toolchain: gcc-alpha-linux-gnu, cc: alpha-linux-gnu-gcc, qemu: qemu-alpha-static }
|
|
|
- {target: sparc64, toolchain: gcc-sparc64-linux-gnu, cc: sparc64-linux-gnu-gcc, qemu: qemu-sparc64-static, skip_wasi: true }
|
|
|
|
|
|
#- {target: i386 (u64 slots), toolchain: gcc-multilib, cc: clang -m32, qemu: qemu-i386-static, cflags: -Dd_m3Use32BitSlots=0 }
|
|
|
- {target: arm (u64 slots), toolchain: gcc-arm-linux-gnueabi, cc: arm-linux-gnueabi-gcc, qemu: qemu-arm-static, cflags: -Dd_m3Use32BitSlots=0 }
|
|
|
- {target: aarch64 (u64 slots), toolchain: gcc-aarch64-linux-gnu, cc: aarch64-linux-gnu-gcc, qemu: qemu-aarch64-static, cflags: -Dd_m3Use32BitSlots=0 }
|
|
|
- {target: ppc (u64 slots), toolchain: gcc-powerpc-linux-gnu, cc: powerpc-linux-gnu-gcc, qemu: qemu-ppc-static, cflags: -Dd_m3Use32BitSlots=0 }
|
|
|
- {target: ppc64 (u64 slots), toolchain: gcc-powerpc64-linux-gnu, cc: powerpc64-linux-gnu-gcc, qemu: qemu-ppc64-static, cflags: -Dd_m3Use32BitSlots=0 }
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Install QEMU
|
|
|
run: |
|
|
|
sudo apt install qemu-user-static
|
|
|
- name: Install ${{ matrix.config.toolchain }}
|
|
|
run: |
|
|
|
sudo apt install ${{ matrix.config.toolchain }}
|
|
|
- name: Build
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
${{ matrix.config.cc }} -DASSERTS -Dd_m3HasWASI ${{ matrix.config.cflags }} \
|
|
|
-I../source ../source/*.c ../platforms/app/main.c \
|
|
|
-O3 -g0 -flto -lm -static \
|
|
|
-o wasm3
|
|
|
- name: Test WebAssembly spec
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-spec-test.py --exec "${{ matrix.config.qemu }} ../build/wasm3 --repl"
|
|
|
- name: Test WASI apps
|
|
|
if: ${{ !matrix.config.skip_wasi }}
|
|
|
run: |
|
|
|
cd test
|
|
|
python3 run-wasi-test.py --fast --exec "${{ matrix.config.qemu }} ../build/wasm3"
|
|
|
|
|
|
platformio:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Set up Python
|
|
|
uses: actions/setup-python@v2
|
|
|
with:
|
|
|
python-version: '3.x'
|
|
|
- name: Install PlatformIO
|
|
|
run: |
|
|
|
python -m pip install --upgrade pip
|
|
|
pip install -U platformio
|
|
|
- name: Build AVR ATmega1284
|
|
|
run: |
|
|
|
cd platforms/embedded/arduino
|
|
|
pio run -e mega1284
|
|
|
! nm .pio/build/mega1284/firmware.elf | grep printf
|
|
|
- name: Build ESP8266
|
|
|
run: |
|
|
|
cd platforms/embedded/esp8266
|
|
|
pio run
|
|
|
# TODO:
|
|
|
#- name: Build ESP32
|
|
|
# run: |
|
|
|
# cd platforms/embedded/esp32-pio
|
|
|
# pio run
|
|
|
|
|
|
platformio-arm:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Set up Python
|
|
|
uses: actions/setup-python@v2
|
|
|
with:
|
|
|
python-version: '3.x'
|
|
|
- name: Install PlatformIO
|
|
|
run: |
|
|
|
python -m pip install --upgrade pip
|
|
|
pip install -U platformio
|
|
|
- name: Build Arduino MKR1000
|
|
|
run: |
|
|
|
cd platforms/embedded/arduino
|
|
|
pio run -e mkr1000
|
|
|
- name: Build Blue Pill (JeeH)
|
|
|
run: |
|
|
|
cd platforms/embedded/bluepill
|
|
|
pio run
|
|
|
- name: Build TinyBLE
|
|
|
run: |
|
|
|
cd platforms/embedded/arduino
|
|
|
pio run -e tinyBLE
|
|
|
- name: Build MXChip AZ3166
|
|
|
run: |
|
|
|
cd platforms/embedded/arduino
|
|
|
pio run -e az3166
|
|
|
|
|
|
platformio-riscv:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Set up Python
|
|
|
uses: actions/setup-python@v2
|
|
|
with:
|
|
|
python-version: '3.x'
|
|
|
- name: Install PlatformIO
|
|
|
run: |
|
|
|
python -m pip install --upgrade pip
|
|
|
pip install -U platformio
|
|
|
- name: Build HiFive1
|
|
|
run: |
|
|
|
cd platforms/embedded/hifive1
|
|
|
pio run
|
|
|
- name: Build Sipeed MAIX
|
|
|
run: |
|
|
|
cd platforms/embedded/arduino
|
|
|
pio run -e maix
|
|
|
|
|
|
particle:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
if: "github.event_name == 'push'"
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Set up Particle CLI
|
|
|
run: sudo npm install -g particle-cli
|
|
|
- name: Log in
|
|
|
env:
|
|
|
PARTICLE_TOKEN: ${{ secrets.PARTICLE_TOKEN }}
|
|
|
run: particle login --token $PARTICLE_TOKEN
|
|
|
- name: Build Photon
|
|
|
run: |
|
|
|
cd platforms/embedded/particle
|
|
|
particle compile --followSymlinks photon
|
|
|
|
|
|
esp32-idf:
|
|
|
runs-on: ubuntu-latest
|
|
|
container: igrr/idf-qemu:release-v4.0-esp-develop-20191228
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Build for ESP32 (IDF v4.0)
|
|
|
run: |
|
|
|
. $IDF_PATH/export.sh
|
|
|
cd platforms/embedded/esp32-idf
|
|
|
export EXTRA_CFLAGS="-Werror"
|
|
|
idf.py build
|
|
|
shell: bash
|
|
|
- name: Test for ESP32 in QEMU
|
|
|
run: |
|
|
|
cd platforms/embedded/esp32-idf
|
|
|
make-flash-img.sh wasm3 flash_img.bin
|
|
|
qemu-system-xtensa -machine esp32 -nographic -drive file=flash_img.bin,if=mtd,format=raw -no-reboot | tee out.txt
|
|
|
grep "Result: 46368" out.txt
|
|
|
grep "Elapsed: " out.txt
|
|
|
grep "Restarting..." out.txt
|
|
|
test $(($(grep "ets Jun 8 2016" out.txt | wc -l))) -eq 1
|
|
|
- name: Check that IDF and PIO examples are in sync
|
|
|
run: |
|
|
|
diff -q platforms/embedded/esp32-idf/main/main.cpp platforms/embedded/esp32-pio/src/main.cpp
|
|
|
# TODO: also check that the build flags are in sync
|
|
|
|
|
|
cpp:
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Configure
|
|
|
run: |
|
|
|
cd platforms/cpp
|
|
|
mkdir build
|
|
|
cd build
|
|
|
cmake ..
|
|
|
- name: Build
|
|
|
run: |
|
|
|
cd platforms/cpp
|
|
|
cmake --build build
|
|
|
- name: Run
|
|
|
run: |
|
|
|
cd platforms/cpp/build
|
|
|
./wasm3_cpp_example
|
|
|
|
|
|
as-cpp:
|
|
|
name: maintenance (build as C++)
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Build
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
clang -xc++ -Dd_m3HasWASI \
|
|
|
-I../source ../source/*.c ../platforms/app/main.c \
|
|
|
-O3 -g0 -lm \
|
|
|
-o wasm3
|
|
|
- name: Test
|
|
|
run: ./build/wasm3 ./test/wasi/simple/test.wasm
|
|
|
|
|
|
with-logs:
|
|
|
name: maintenance (debug logs)
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Build
|
|
|
run: |
|
|
|
mkdir build
|
|
|
cd build
|
|
|
clang -xc++ -Dd_m3HasWASI -DDEBUG \
|
|
|
-Dd_m3EnableOpTracing=1 \
|
|
|
-Dd_m3EnableStrace=1 \
|
|
|
-Dd_m3LogParse=1 \
|
|
|
-Dd_m3LogModule=1 \
|
|
|
-Dd_m3LogCompile=1 \
|
|
|
-Dd_m3LogWasmStack=1 \
|
|
|
-Dd_m3LogEmit=1 \
|
|
|
-Dd_m3LogCodePages=1 \
|
|
|
-Dd_m3LogRuntime=1 \
|
|
|
-Dd_m3LogNativeStack=1 \
|
|
|
-I../source ../source/*.c ../platforms/app/main.c \
|
|
|
-O3 -g0 -lm \
|
|
|
-o wasm3
|
|
|
- name: Test
|
|
|
run: ./build/wasm3 ./test/wasi/simple/test.wasm > /dev/null
|
|
|
|
|
|
preprocessed-ops:
|
|
|
name: maintenance (preprocess ops)
|
|
|
runs-on: ubuntu-latest
|
|
|
timeout-minutes: 10
|
|
|
|
|
|
steps:
|
|
|
- uses: actions/checkout@v2
|
|
|
- name: Install sponge
|
|
|
run: |
|
|
|
sudo apt install moreutils
|
|
|
- name: Build
|
|
|
run: |
|
|
|
make -f extra/utils.mk preprocess
|
|
|
mkdir build
|
|
|
cd build
|
|
|
gcc -Dd_m3HasWASI \
|
|
|
-I../source ../source/*.c ../platforms/app/main.c \
|
|
|
-O3 -g0 -lm \
|
|
|
-o wasm3
|
|
|
- name: Test
|
|
|
run: ./build/wasm3 ./test/wasi/simple/test.wasm
|
|
|
|
|
|
spellcheck:
|
|
|
runs-on: ubuntu-latest
|
|
|
steps:
|
|
|
- name: Set up Python
|
|
|
uses: actions/setup-python@v2
|
|
|
- name: Install codespell
|
|
|
run: |
|
|
|
pip install codespell
|
|
|
- name: Spellcheck
|
|
|
run: |
|
|
|
codespell
|