Files
WSL/cloudtest/CMakeLists.txt
Ben Hillis 680fe6545e cloudtest: skip WSLC test suite on Windows Server images (#40559)
* cloudtest: skip WSLC test suite on Windows Server images

The WSLC TAEF job consistently times out on Windows Server images
because of a VMBus PowerOff hang during VM teardown on Server SKUs.

Skip the wslc TAEF group on Server images until the host issue is
resolved. The wsl1 and wsl2 groups continue to run on Server. Client
images (rs_prerelease, win11-23h2, win10-22h2) are unchanged and still
run all three groups.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address review feedback: dereference loop variable in IN_LIST check

Use "${image}" instead of bare image in the IN_LIST condition for
clarity and to avoid relying on if() implicit variable lookup.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* .pipelines: skip WSLC test job on Server images

Companion change to the cloudtest/CMakeLists.txt skip: tag the
fe_release image as `server: true` and gate the WSLC test job on
`image.server` so the pipeline does not try to load a TestMap.xml
that is no longer generated for the WS22+wslc combination.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-05-18 17:23:39 +00:00

61 lines
2.4 KiB
CMake

set(OUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cloudtest)
file(MAKE_DIRECTORY ${OUT})
if (${TARGET_PLATFORM} STREQUAL x64)
set(CLOUDTEST_IMAGES
"wsl-test-image-rs_prerelease-2025-01-30"
"wsl-test-image-win11-23h2-ent-2024-11-18"
"wsl-test-image-2022-datacenter-g2-2024-09-10"
"wsl-test-image-win10-22h2-ent-g2-2024-09-10")
# WSLC tests trigger a Hyper-V VMBus PowerOff hang during VM teardown
# on Windows Server SKUs, which causes the WSLC TAEF job to time out.
# Skip the WSLC test suite on Server images until the host issue is
# resolved.
set(CLOUDTEST_SERVER_IMAGES
"wsl-test-image-2022-datacenter-g2-2024-09-10")
set(CLOUDTEST_TEST_PACKAGES "Test_Packages_2025_07_28")
set(DUMPTOOL_DROP "DumpTool_X64_2025-01-27")
elseif (${TARGET_PLATFORM} STREQUAL arm64)
set(CLOUDTEST_IMAGES)
set(CLOUDTEST_SERVER_IMAGES)
else()
message(FATAL_ERROR "Unsupported target platform: ${TARGET_PLATFORM}")
endif()
# Passed down to test-setup.ps1 to determine if -AllowUnsigned should be passed to Add-AppxPackage
if (OFFICIAL_BUILD)
set(ALLOW_UNSIGNED_PACKAGE "0")
else()
set(ALLOW_UNSIGNED_PACKAGE "1")
endif()
# When the package stage is included (release + nightly), test the real bundle from that stage.
# PR builds test the installer.msix directly from the build artifact (no bundle needed).
if (INCLUDE_PACKAGE_STAGE)
set(TEST_PACKAGE_PROVIDER "[package]")
set(TEST_PACKAGE_PATH "bundle\\Microsoft.WSL_${PACKAGE_VERSION}_x64_ARM64.msixbundle")
set(TEST_PACKAGE_FILE "Microsoft.WSL_${PACKAGE_VERSION}_x64_ARM64.msixbundle")
else()
set(TEST_PACKAGE_PROVIDER "[drop]")
set(TEST_PACKAGE_PATH "testbin\\x64\\release\\installer.msix")
set(TEST_PACKAGE_FILE "installer.msix")
endif()
function(add_test_group image version suffix filter)
set(DIR ${OUT}/${image}-${suffix})
file(MAKE_DIRECTORY ${DIR})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TestMap.xml.in ${DIR}/TestMap.xml)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/TestGroup.xml.in ${DIR}/TestGroup.xml)
endfunction()
foreach(image ${CLOUDTEST_IMAGES})
add_test_group("${image}" "1" "wsl1" "not (@TestCategory='WSLC')")
add_test_group("${image}" "2" "wsl2" "not (@TestCategory='WSLC')")
if (NOT "${image}" IN_LIST CLOUDTEST_SERVER_IMAGES)
add_test_group("${image}" "2" "wslc" "@TestCategory='WSLC'")
endif()
endforeach()