From 9def0e7d3f849cdf47167e23545d700a8cbe4759 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Mon, 30 Sep 2024 22:10:45 +1000 Subject: [PATCH] Add reproduction of #1217 Signed-off-by: Jiahao XU --- .github/workflows/main.yml | 40 +++++++++++++++++++ Cargo.toml | 4 ++ .../wasm32-wasip1-threads-test/Cargo.toml | 8 ++++ .../wasm32-wasip1-threads-test/src/lib.rs | 14 +++++++ 4 files changed, 66 insertions(+) create mode 100644 dev-tools/wasm32-wasip1-threads-test/Cargo.toml create mode 100644 dev-tools/wasm32-wasip1-threads-test/src/lib.rs diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2049b6dc..c448f77c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -188,6 +188,46 @@ jobs: - run: cargo test --no-run --target ${{ matrix.target }} --release - run: cargo test --no-run --target ${{ matrix.target }} --features parallel + test-wasm32-wasip1-thread: + name: Test wasm32-wasip1-thread + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Install Rust (rustup) + run: | + rustup toolchain install nightly --no-self-update --profile minimal --target wasm32-wasip1-threads + + - name: Get latest version of wasi-sdk + env: + REPO: WebAssembly/wasi-sdk + GH_TOKEN: ${{ github.token }} + run: | + VERSION="$(gh release list --repo $REPO -L 1 --json tagName --jq '.[]|.tagName')" + echo $VERSION + echo "WASI_TOOLCHAIN_VERSION=$VERSION" >> "$GITHUB_ENV" + + - name: Install wasi-sdk + working-directory: /tmp + env: + REPO: WebAssembly/wasi-sdk + run: | + VERSION="$WASI_TOOLCHAIN_VERSION" + VERSION_FULL="${VERSION}.0" + FILE="wasi-sdk-${VERSION_FULL}-x86_64-linux.deb" + wget "https://github.com/$REPO/releases/download/wasi-sdk-${VERSION}/${FILE}" + sudo dpkg -i "${FILE}" + WASI_SDK_PATH="/opt/wasi-sdk" + CC="${WASI_SDK_PATH}/bin/clang" + echo "WASI_SDK_PATH=$WASI_SDK_PATH" >> "$GITHUB_ENV" + echo "CC=$CC" >> "$GITHUB_ENV" + + - uses: Swatinem/rust-cache@v2 + with: + env-vars: "WASI_TOOLCHAIN_VERSION" + + - name: Run tests + run: cargo +nightly build -p cc-test --target wasm32-wasip1-threads + cuda: name: Test CUDA support runs-on: ubuntu-20.04 diff --git a/Cargo.toml b/Cargo.toml index fbe94df4..d72f19cc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,4 +42,8 @@ members = [ "dev-tools/cc-test", "dev-tools/gen-target-info", "dev-tools/gen-windows-sys-binding", + "dev-tools/wasm32-wasip1-threads-test", ] + +[patch.crates-io] +cc = { path = "." } diff --git a/dev-tools/wasm32-wasip1-threads-test/Cargo.toml b/dev-tools/wasm32-wasip1-threads-test/Cargo.toml new file mode 100644 index 00000000..9308ecab --- /dev/null +++ b/dev-tools/wasm32-wasip1-threads-test/Cargo.toml @@ -0,0 +1,8 @@ +[package] +name = "wasm32-wasip1-threads-test" +version = "0.1.0" +edition = "2021" +publish = false + +[dependencies] +rusqlite = { version = "0.32.0", features = ["bundled"] } diff --git a/dev-tools/wasm32-wasip1-threads-test/src/lib.rs b/dev-tools/wasm32-wasip1-threads-test/src/lib.rs new file mode 100644 index 00000000..b93cf3ff --- /dev/null +++ b/dev-tools/wasm32-wasip1-threads-test/src/lib.rs @@ -0,0 +1,14 @@ +pub fn add(left: u64, right: u64) -> u64 { + left + right +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn it_works() { + let result = add(2, 2); + assert_eq!(result, 4); + } +}