Skip to content

[WASI] testing code outside of the current repo #108490

Open

Description

Description

This doc https://github.com/dotnet/runtime/tree/main/src/mono/wasi#how-to-build-the-runtime suggested that built runtime pack can be referenced outside of the repo by a sample project. When I use it this way I end up with some errors:

hello-wasm failed with 1 error(s) (0.7s) → bin/Debug/net9.0/wasi-wasm/publish/
    /home/jstur/.dotnet/nightly/packs/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/9.0.0-rtm.24480.7/Sdk/WasmApp.Common.targets(875,5): error :
      Failed to compile /home/jstur/projects/runtime/artifacts/bin/microsof
      t.netcore.app.runtime.wasi-wasm/Debug/runtimes/wasi-wasm/native/src/p
      invoke.c -> /home/jstur/projects/components/hello-wasm/obj/Debug/net9
      .0/wasi-wasm/wasm/for-publish/pinvoke.o
      In file included from /home/jstur/projects/runtime/artifacts/bin/micr
      osoft.netcore.app.runtime.wasi-wasm/Debug/runtimes/wasi-wasm/native/s
      rc/pinvoke.c:15:
      /home/jstur/projects/components/hello-wasm/obj/Debug/net9.0/wasi-wasm
      /wasm/for-publish/pinvoke-table.h:169:149: error: too few arguments t
      o function call, expected 6, have 5

Is there a way to reference the runtime pack for testing outside of the repository? Maybe the approach in https://github.com/dotnet/runtime/blob/main/docs/workflow/testing/using-dev-shipping-packages.md is needed?

Running the samples provided in wasi folder in the repo work fine.

Reproduction Steps

I changed the approach a bit from what is documented in after finding other docs that suggested:

<Target Name="UpdateRuntimePack" AfterTargets="ResolveFrameworkReferences">
    <ItemGroup>
      <!-- update runtime pack to local build -->
      <ResolvedRuntimePack
        PackageDirectory="/home/jstur/projects/runtime/artifacts/bin/microsoft.netcore.app.runtime.wasi-wasm/Debug"
        Condition="'%(ResolvedRuntimePack.FrameworkName)' == 'Microsoft.NETCore.App'" />
    </ItemGroup>
  </Target>

A sample repo is in: https://github.com/jsturtevant/test-runtime

Expected behavior

Should be able to test runtime with sample projects outside repo

Actual behavior

errors with linked code

Regression?

no

Known Workarounds

No response

Configuration

No response

Other information

No response

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions