Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/workflow/building/libraries/webassembly-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ Submit a PR request with the updated version, wait for all checks to pass and fo
{
"dockerfile": "src/ubuntu/18.04/webassembly/Dockerfile",
"simpleTags": [
"ubuntu-18.04-webassembly-20200529220811-6a6da63"
"ubuntu-18.04-webassembly-20210707133424-12f133e"
],
"digest": "sha256:1f2d920a70bd8d55bbb329e87c3bd732ef930d64ff288dab4af0aa700c25cfaf",
"osType": "Linux",
Expand All @@ -169,7 +169,7 @@ Copy the docker image tag and replace it in [platform-matrix.yml](https://github

```
container:
image: ubuntu-18.04-webassembly-20200409132031-f70ea41
image: ubuntu-18.04-webassembly-20210707133424-12f133e
registry: mcr
```

Expand Down
2 changes: 1 addition & 1 deletion eng/pipelines/common/platform-matrix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ jobs:
targetRid: browser-wasm
platform: Browser_wasm
container:
image: ubuntu-18.04-webassembly-20210531091624-f5c7a43
image: ubuntu-18.04-webassembly-20210707133424-12f133e
registry: mcr
jobParameters:
runtimeFlavor: ${{ parameters.runtimeFlavor }}
Expand Down
42 changes: 42 additions & 0 deletions eng/pipelines/runtime-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -317,6 +317,7 @@ jobs:
scenarios:
- normal
- wasmtestonbrowser
- wasmtestonnodejs
condition: >-
or(
eq(variables['librariesContainsChange'], true),
Expand Down Expand Up @@ -463,6 +464,47 @@ jobs:
scenarios:
- normal

#
# Build for Browser/wasm and test it on NodeJS
#
- template: /eng/pipelines/common/platform-matrix.yml
parameters:
jobTemplate: /eng/pipelines/common/global-build-job.yml
helixQueuesTemplate: /eng/pipelines/libraries/helix-queues-setup.yml
buildConfig: Release
runtimeFlavor: mono
platforms:
- Browser_wasm
variables:
# map dependencies variables to local variables
- name: librariesContainsChange
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'] ]
- name: monoContainsChange
value: $[ dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'] ]
jobParameters:
testGroup: innerloop
nameSuffix: AllSubsets_Mono
buildArgs: -s mono+libs+host+packs+libs.tests -c $(_BuildConfig) /p:ArchiveTests=true
timeoutInMinutes: 180
condition: >-
or(
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
eq(variables['isFullMatrix'], true))
# extra steps, run tests
extraStepsTemplate: /eng/pipelines/libraries/helix.yml
extraStepsParameters:
creator: dotnet-bot
testRunNamePrefixSuffix: Mono_$(_BuildConfig)
scenarios:
- wasmtestonnodejs
condition: >-
or(
eq(variables['librariesContainsChange'], true),
eq(variables['monoContainsChange'], true),
eq(variables['isFullMatrix'], true))

#
# Build the whole product using Mono and run runtime tests
#
Expand Down
73 changes: 62 additions & 11 deletions eng/testing/WasmRunnerAOTTemplate.sh
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
#!/usr/bin/env bash

EXECUTION_DIR=$(dirname $0)
SCENARIO=$3
# SetCommands defined in eng\testing\tests.wasm.targets
[[SetCommands]]
[[SetCommandsEcho]]

cd $EXECUTION_DIR
EXECUTION_DIR=$(dirname $0)
if [[ -n "$3" ]]; then
SCENARIO=$3
fi

if [ -z "$HELIX_WORKITEM_UPLOAD_ROOT" ]; then
if [[ -z "$HELIX_WORKITEM_UPLOAD_ROOT" ]]; then
XHARNESS_OUT="$EXECUTION_DIR/xharness-output"
else
XHARNESS_OUT="$HELIX_WORKITEM_UPLOAD_ROOT/xharness-output"
Expand All @@ -19,12 +23,47 @@ else
HARNESS_RUNNER="dotnet xharness"
fi

if [[ "$SCENARIO" == "WasmTestOnBrowser" ]]; then
XHARNESS_COMMAND="test-browser"
elif [ -z "$XHARNESS_COMMAND" ]; then
XHARNESS_COMMAND="test"
if [[ -z "$XHARNESS_COMMAND" ]]; then
if [[ "${SCENARIO,,}" == "wasmtestonbrowser" ]]; then
XHARNESS_COMMAND="test-browser"
else
XHARNESS_COMMAND="test"
fi
fi

if [[ "${XHARNESS_COMMAND,,}" == "test" ]]; then
if [[ -z "$JS_ENGINE" ]]; then
if [[ "${SCENARIO,,}" == "wasmtestonnodejs" ]]; then
JS_ENGINE="--engine=NodeJS"
else
JS_ENGINE="--engine=V8"
fi
fi

if [[ -z "$MAIN_JS" ]]; then
MAIN_JS="--js-file=test-main.js"
fi

if [[ -z "$JS_ENGINE_ARGS" ]]; then
JS_ENGINE_ARGS="--engine-arg=--stack-trace-limit=1000"
fi
fi

if [[ -z "$XHARNESS_ARGS" ]]; then
XHARNESS_ARGS="$JS_ENGINE $JS_ENGINE_ARGS $MAIN_JS"
fi

echo EXECUTION_DIR=$EXECUTION_DIR
echo SCENARIO=$SCENARIO
echo XHARNESS_OUT=$XHARNESS_OUT
echo XHARNESS_CLI_PATH=$XHARNESS_CLI_PATH
echo HARNESS_RUNNER=$HARNESS_RUNNER
echo XHARNESS_COMMAND=$XHARNESS_COMMAND
echo MAIN_JS=$MAIN_JS
echo JS_ENGINE=$JS_ENGINE
echo JS_ENGINE_ARGS=$JS_ENGINE_ARGS
echo XHARNESS_ARGS=$XHARNESS_ARGS

function _buildAOTFunc()
{
local projectFile=$1
Expand Down Expand Up @@ -56,11 +95,23 @@ function _buildAOTFunc()
return 0
}

# RunCommands defined in tests.mobile.targets
[[RunCommands]]

pushd $EXECUTION_DIR

# ========================= BEGIN Test Execution =============================
echo ----- start $(date) =============== To repro directly: =====================================================
echo pushd $EXECUTION_DIR
# RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommandsEcho]]
echo popd
echo ===========================================================================================================
pushd $EXECUTION_DIR
# RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommands]]
_exitCode=$?
popd
echo ----- end $(date) ----- exit code $_exitCode ----------------------------------------------------------

echo "XHarness artifacts: $XHARNESS_OUT"

exit $_exitCode
exit $_exitCode
54 changes: 49 additions & 5 deletions eng/testing/WasmRunnerTemplate.cmd
Original file line number Diff line number Diff line change
@@ -1,8 +1,14 @@
@echo off
setlocal enabledelayedexpansion

:: SetCommands defined in eng\testing\tests.wasm.targets
[[SetCommands]]
[[SetCommandsEcho]]

set EXECUTION_DIR=%~dp0
set SCENARIO=%3
if [%3] NEQ [] (
set SCENARIO=%3
)

if [%HELIX_WORKITEM_UPLOAD_ROOT%] == [] (
set "XHARNESS_OUT=%EXECUTION_DIR%xharness-output"
Expand All @@ -18,22 +24,60 @@ if [%XHARNESS_CLI_PATH%] NEQ [] (
set HARNESS_RUNNER=dotnet.exe xharness
)

if [%SCENARIO%]==[WasmTestOnBrowser] (
set XHARNESS_COMMAND=test-browser
if [%XHARNESS_COMMAND%] == [] (
if /I [%SCENARIO%]==[wasmtestonbrowser] (
set XHARNESS_COMMAND=test-browser
) else (
set XHARNESS_COMMAND=test
)
)

if /I [%XHARNESS_COMMAND%] == [test] (
if [%JS_ENGINE%] == [] (
if /I [%SCENARIO%] == [wasmtestonnodejs] (
set "JS_ENGINE=--engine^=NodeJS"
) else (
set "JS_ENGINE=--engine^=V8"
)
)
if [%MAIN_JS%] == [] (
set "MAIN_JS=--js-file^=test-main.js"
)

if [%JS_ENGINE_ARGS%] == [] (
set "JS_ENGINE_ARGS=--engine-arg^=--stack-trace-limit^=1000"
)
) else (
if [%XHARNESS_COMMAND%] == [] (
set XHARNESS_COMMAND=test
if [%BROWSER_PATH%] == [] (
set "BROWSER_PATH=--browser-path^=%HELIX_CORRELATION_PAYLOAD%\chrome-win\chrome.exe"
)
)

if [%XHARNESS_ARGS%] == [] (
set "XHARNESS_ARGS=%JS_ENGINE% %JS_ENGINE_ARGS% %BROWSER_PATH% %MAIN_JS%"
)

echo EXECUTION_DIR=%EXECUTION_DIR%
echo SCENARIO=%SCENARIO%
echo XHARNESS_OUT=%XHARNESS_OUT%
echo XHARNESS_CLI_PATH=%XHARNESS_CLI_PATH%
echo HARNESS_RUNNER=%HARNESS_RUNNER%
echo XHARNESS_COMMAND=%XHARNESS_COMMAND%
echo MAIN_JS=%MAIN_JS%
echo JS_ENGINE=%JS_ENGINE%
echo JS_ENGINE_ARGS=%JS_ENGINE_ARGS%
echo XHARNESS_ARGS=%XHARNESS_ARGS%

:: ========================= BEGIN Test Execution =============================
echo ----- start %DATE% %TIME% =============== To repro directly: =====================================================
echo pushd %EXECUTION_DIR%
:: RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommandsEcho]]
echo popd
echo ===========================================================================================================
pushd %EXECUTION_DIR%
@echo on
:: RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommands]]
set EXIT_CODE=%ERRORLEVEL%
@echo off
Expand Down
71 changes: 61 additions & 10 deletions eng/testing/WasmRunnerTemplate.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
#!/usr/bin/env bash

EXECUTION_DIR=$(dirname $0)
SCENARIO=$3
# SetCommands defined in eng\testing\tests.wasm.targets
[[SetCommands]]
[[SetCommandsEcho]]

cd $EXECUTION_DIR
EXECUTION_DIR=$(dirname $0)
if [[ -n "$3" ]]; then
SCENARIO=$3
fi

if [[ -z "$HELIX_WORKITEM_UPLOAD_ROOT" ]]; then
XHARNESS_OUT="$EXECUTION_DIR/xharness-output"
Expand All @@ -19,17 +23,64 @@ else
HARNESS_RUNNER="dotnet xharness"
fi

if [[ "$SCENARIO" == "WasmTestOnBrowser" ]]; then
XHARNESS_COMMAND="test-browser"
elif [[ -z "$XHARNESS_COMMAND" ]]; then
XHARNESS_COMMAND="test"
if [[ -z "$XHARNESS_COMMAND" ]]; then
if [[ "${SCENARIO,,}" == "wasmtestonbrowser" ]]; then
XHARNESS_COMMAND="test-browser"
else
XHARNESS_COMMAND="test"
fi
fi

# RunCommands defined in tests.mobile.targets
[[RunCommands]]
if [[ "${XHARNESS_COMMAND,,}" == "test" ]]; then
if [[ -z "$JS_ENGINE" ]]; then
if [[ "${SCENARIO,,}" == "wasmtestonnodejs" ]]; then
JS_ENGINE="--engine=NodeJS"
else
JS_ENGINE="--engine=V8"
fi
fi

if [[ -z "$MAIN_JS" ]]; then
MAIN_JS="--js-file=test-main.js"
fi

if [[ -z "$JS_ENGINE_ARGS" ]]; then
JS_ENGINE_ARGS="--engine-arg=--stack-trace-limit=1000"
fi
fi

if [[ -z "$XHARNESS_ARGS" ]]; then
XHARNESS_ARGS="$JS_ENGINE $JS_ENGINE_ARGS $MAIN_JS"
fi

echo EXECUTION_DIR=$EXECUTION_DIR
echo SCENARIO=$SCENARIO
echo XHARNESS_OUT=$XHARNESS_OUT
echo XHARNESS_CLI_PATH=$XHARNESS_CLI_PATH
echo HARNESS_RUNNER=$HARNESS_RUNNER
echo XHARNESS_COMMAND=$XHARNESS_COMMAND
echo MAIN_JS=$MAIN_JS
echo JS_ENGINE=$JS_ENGINE
echo JS_ENGINE_ARGS=$JS_ENGINE_ARGS
echo XHARNESS_ARGS=$XHARNESS_ARGS


pushd $EXECUTION_DIR

# ========================= BEGIN Test Execution =============================
echo ----- start $(date) =============== To repro directly: =====================================================
echo pushd $EXECUTION_DIR
# RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommandsEcho]]
echo popd
echo ===========================================================================================================
pushd $EXECUTION_DIR
# RunCommands defined in eng\testing\tests.wasm.targets
[[RunCommands]]
_exitCode=$?
popd
echo ----- end $(date) ----- exit code $_exitCode ----------------------------------------------------------

echo "XHarness artifacts: $XHARNESS_OUT"

exit $_exitCode
exit $_exitCode
1 change: 1 addition & 0 deletions eng/testing/tests.targets
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@
</ItemGroup>

<GenerateRunScript RunCommands="@(RunScriptCommands)"
SetCommands="@(SetScriptCommands)"
TemplatePath="$(RunScriptInputPath)"
OutputPath="$(RunScriptOutputPath)" />

Expand Down
Loading