Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider adding tests for WASM support #2203

Closed
adamsitnik opened this issue Nov 21, 2022 · 4 comments · Fixed by #2532
Closed

Consider adding tests for WASM support #2203

adamsitnik opened this issue Nov 21, 2022 · 4 comments · Fixed by #2532

Comments

@adamsitnik
Copy link
Member

adamsitnik commented Nov 21, 2022

WASM support got again broken very recently: dotnet/runtime#78575

We should consider adding automated tests for verifying that WASM just works.

Our Linux CI jobs takes 20+ minutes to execute, so there is plenty of time we can consume (the limit is 1h).

We should mimic what we do for NativeAOT:

  1. Install dependencies on Linux:
    - bash: |
    wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
    sudo apt-add-repository "deb https://apt.llvm.org/focal/ llvm-toolchain-focal-9 main"
    sudo apt-get update
    - bash: |
    sudo apt-get install cmake clang-9 libicu66 uuid-dev libcurl4-openssl-dev zlib1g-dev libkrb5-dev

    - name: Set up zlib-static
    run: sudo apt-get install -y libkrb5-dev
  2. Run against hardcoded version to avoid WASM breaking us.

Ideally, we should update the SDK to .NET 7 first: #2080

We don't need to build entire monoVM as described in https://benchmarkdotnet.org/articles/configs/toolchains.html#wasm. We just need to install v8 as described in https://github.com/dotnet/runtime/blob/main/docs/workflow/testing/libraries/testing-wasm.md and follow steps described by @radical here: #1818 (comment)

cc @radical @naricc

@radical
Copy link
Member

radical commented Nov 21, 2022

I think wasm tests here can avoid building the latest dotnet/runtime as you mentioned:

  1. use latest dotnet 7.0
  2. dotnet workload install wasm-tools --skip-manifest-update - this would allow running the tests with relinking, and AOT.
  3. install v8
  4. run some tests!

Essentially, the tests here will provide a basic sanity check that wasm apps can be benchmarked. In addition, the dotnet/performance repo should have similar tests but those will run some microbenchmarks from dotnet/runtime as a sanity check. And that can follow the sdk version being used by dotnet/runtime for testing.

@naricc
Copy link

naricc commented Nov 29, 2022

@radical Do we need to rework how the wasm toolchain works? Or do we already support running it against whatever is in the the workload?

@radical
Copy link
Member

radical commented Nov 29, 2022

If you are asking whether running against the workload needs to be implemented, then no, it already works, and dotnet/runtime+dotnet/performance use that.

@timcassell
Copy link
Collaborator

This was done in #2532.

@timcassell timcassell modified the milestones: v0.14.x, v0.14.0 Aug 24, 2024
@timcassell timcassell linked a pull request Aug 24, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants