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
10 changes: 6 additions & 4 deletions .pipelines/build-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -382,24 +382,26 @@ stages:
- powershell: |
$taefVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.Taef'']/@version').Node.Value
New-Item -ItemType Directory -Path "$(ob_outputDirectory)\bundle" -Force
foreach ($arch in @("x64", "ARM64"))
# TODO: Add "ARM64" to this list once arm64 testing is supported
foreach ($arch in @("x64"))
{
mkdir $(ob_outputDirectory)\testbin\$arch\release

Move-Item -Path "bin\$arch\release\wsltests.dll" -Destination "$(ob_outputDirectory)\testbin\$arch\release\wsltests.dll"
Move-Item -Path "bin\$arch\release\testplugin.dll" -Destination "$(ob_outputDirectory)\testbin\$arch\release\testplugin.dll"
Move-Item -Path "packages\Microsoft.Taef.$taefVersion\build\Binaries\$arch" -Destination "$(ob_outputDirectory)\testbin\$arch\release\taef"
Move-Item -Path "bin\$arch\cloudtest" -Destination "$(ob_outputDirectory)\testbin\$arch\cloudtest"

$TestDistroVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.WSL.TestDistro'']/@version').Node.Value
Copy-Item "packages\Microsoft.WSL.TestDistro.$TestDistroVersion\$arch\test_distro.tar.xz" "$(ob_outputDirectory)\testbin\$arch"
}

Move-Item -Path "bin\x64\cloudtest" -Destination "$(ob_outputDirectory)\testbin\x64\cloudtest"
Move-Item -Path "tools\test\test-setup.ps1" -Destination "$(ob_outputDirectory)\testbin\test-setup.ps1"
Move-Item -Path "tools\test\CloudTest-Setup.bat" -Destination "$(ob_outputDirectory)\testbin\CloudTest-Setup.bat"
Move-Item -Path "diagnostics\wsl.wprp" -Destination "$(ob_outputDirectory)\testbin\wsl.wprp"
Move-Item -Path "test\linux\unit_tests" -Destination "$(ob_outputDirectory)\testbin\unit_tests"

Move-Item -Path bundle\release\* -Destination $(ob_outputDirectory)\bundle
$TestDistroVersion = (Select-Xml -Path packages.config -XPath '/packages/package[@id=''Microsoft.WSL.TestDistro'']/@version').Node.Value
Copy-Item "packages\Microsoft.WSL.TestDistro.$TestDistroVersion\test_distro.tar.xz" "$(ob_outputDirectory)\testbin\x64"

displayName: Move artifacts to drop directory

Expand Down
2 changes: 0 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,8 @@ endif()

if("${CMAKE_GENERATOR_PLATFORM}" STREQUAL "arm64" OR "${TARGET_PLATFORM}" STREQUAL "arm64")
set(TARGET_PLATFORM "arm64")
set(TEST_DISTRO_PLATFORM "arm64")
elseif("${CMAKE_GENERATOR_PLATFORM}" MATCHES "x64|amd64" OR "${TARGET_PLATFORM}" MATCHES "x64|amd64")
set(TARGET_PLATFORM "x64")
set(TEST_DISTRO_PLATFORM "amd64")
else()
message(FATAL_ERROR "Unsupported platform: ${CMAKE_GENERATOR_PLATFORM}")
endif()
Expand Down
2 changes: 1 addition & 1 deletion packages.config
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<package id="Microsoft.WSL.DeviceHost" version="1.1.39-0" />
<package id="Microsoft.WSL.Kernel" version="6.6.114.1-1" targetFramework="native" />
<package id="Microsoft.WSL.LinuxSdk" version="1.20.0" targetFramework="native" />
<package id="Microsoft.WSL.TestDistro" version="2.5.7-47" />
<package id="Microsoft.WSL.TestDistro" version="2.7.1-1" />
<package id="Microsoft.WSLg" version="1.0.73" />
<package id="Microsoft.Xaml.Behaviors.WinUI.Managed" version="3.0.0" />
<package id="vswhere" version="3.1.7" />
Expand Down
72 changes: 36 additions & 36 deletions test/windows/PluginTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::Success);
Expand All @@ -182,8 +182,8 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::Success);
Expand All @@ -200,8 +200,8 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::Success);
Expand Down Expand Up @@ -259,8 +259,8 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=2)
Folder mounted (* -> /test-plugin)
Process created
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

WslConfigChange config(LxssGenerateTestConfig({.vmIdleTimeout = 1, .kernelCommandLine = L"custom"}));
Expand All @@ -277,13 +277,13 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=10
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
OnDistroStarted: received same GUID
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::SameDistroId);
Expand All @@ -301,11 +301,11 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=14
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Init's pid is different (* ! = *)
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::InitPidIsDifferent);
Expand Down Expand Up @@ -341,8 +341,8 @@ class PluginTests
LR"(Plugin loaded. TestMode=7
VM created (settings->CustomConfigurationFlags=0)
API error tests passed
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

ConfigurePlugin(PluginTestType::ApiErrors);
Expand Down Expand Up @@ -442,8 +442,8 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=5
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping
OnVmStopping: E_UNEXPECTED)";

Expand All @@ -459,7 +459,7 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=4
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
OnDistroStarted: E_UNEXPECTED
VM Stopping)";

Expand All @@ -479,8 +479,8 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=6
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
OnDistroStopping: E_UNEXPECTED
VM Stopping)";

Expand Down Expand Up @@ -515,7 +515,7 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=12
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
OnDistroStarted: E_FAIL
VM Stopping)";

Expand Down Expand Up @@ -543,8 +543,8 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=13
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=13
VM Stopping)";

ValidateLogFile(ExpectedOutput);
Expand All @@ -568,14 +568,14 @@ class PluginTests
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=13
VM Stopping
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=13
VM created (settings->CustomConfigurationFlags=0)
Folder mounted (* -> /test-plugin)
Process created
Distribution registered, name=plugin-test-distro-vhd, package=, Flavor=debian, Version=12
Distribution unregistered, name=plugin-test-distro-vhd, package=, Flavor=debian, Version=12
Distribution registered, name=plugin-test-distro-vhd, package=, Flavor=debian, Version=13
Distribution unregistered, name=plugin-test-distro-vhd, package=, Flavor=debian, Version=13
VM Stopping)";

ValidateLogFile(ExpectedOutput);
Expand All @@ -593,9 +593,9 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=15
VM created (settings->CustomConfigurationFlags=0)
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution registered, name=plugin-test-distro, package=, Flavor=debian, Version=13
OnDistributionRegistered: E_UNEXPECTED
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=12
Distribution unregistered, name=plugin-test-distro, package=, Flavor=debian, Version=13
OnDistributionUnregistered: E_UNEXPECTED
VM Stopping)";

Expand All @@ -611,11 +611,11 @@ class PluginTests
constexpr auto ExpectedOutput =
LR"(Plugin loaded. TestMode=16
VM created (settings->CustomConfigurationFlags=0)
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Process created
Failed process launch returned: -2147467259
Invalid distro launch returned: -2147220717
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

StartWsl(0);
Expand All @@ -632,8 +632,8 @@ class PluginTests
LR"(Plugin loaded. TestMode=17
VM created (settings->CustomConfigurationFlags=0)
Username: *
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=12
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=12
Distribution started, name=test_distro, package=, PidNs=*, InitPid=*, Flavor=debian, Version=13
Distribution Stopping, name=test_distro, package=, PidNs=*, Flavor=debian, Version=13
VM Stopping)";

StartWsl(0);
Expand Down Expand Up @@ -666,4 +666,4 @@ class PluginTests
L"A fatal error was returned by plugin 'TestPlugin'\r\nError code: "
L"Wsl/Service/CreateInstance/CreateVm/Plugin/TRUST_E_NOSIGNATURE\r\n");
}
};
};
13 changes: 6 additions & 7 deletions test/windows/UnitTests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ class UnitTests
WSL2_TEST_ONLY();

// Override WSL's binfmt interpreter
VERIFY_ARE_EQUAL(LxsstuLaunchWsl(L"echo ':WSLInterop:M::MZ::/bin/echo:PF' > /usr/lib/binfmt.d/dummy.conf"), 0L);
VERIFY_ARE_EQUAL(LxsstuLaunchWsl(L"mkdir -p /usr/lib/binfmt.d && echo ':WSLInterop:M::MZ::/bin/echo:PF' > /usr/lib/binfmt.d/dummy.conf"), 0L);

auto cleanupBinfmt = wil::scope_exit_log(WI_DIAGNOSTICS_INFO, []() {
LxsstuLaunchWsl(L"rm /usr/lib/binfmt.d/dummy.conf");
Expand Down Expand Up @@ -3807,7 +3807,7 @@ localhostForwarding=true
validateUidChange(L"root", 0, L"The operation completed successfully. \r\n", L"", 0);

const std::wstring invalidUser = L"Nonexistent";
validateUidChange(invalidUser, 0, L"", L"/usr/bin/id: \u2018" + invalidUser + L"\u2019: no such user\n", 1);
validateUidChange(invalidUser, 0, L"", L"id: \u2018" + invalidUser + L"\u2019: no such user\n", 1);

auto [out, _] = LxsstuLaunchWslAndCaptureOutput(L"--manage nonexistent --set-default-user root", -1);

Expand Down Expand Up @@ -3931,7 +3931,7 @@ localhostForwarding=true
VERIFY_ARE_EQUAL(ExpectedVersion, version);
};

validateFlavorVersion(LXSS_DISTRO_NAME_TEST_L, L"debian", L"12");
validateFlavorVersion(LXSS_DISTRO_NAME_TEST_L, L"debian", L"13");

constexpr auto testTar = L"exported-distro.tar";
constexpr auto tmpDistroName = L"tmpdistro";
Expand Down Expand Up @@ -4031,10 +4031,10 @@ VERSION_ID="Invalid|Format"
// Verify that importing a distribution with an os-release as then converting works as well
VERIFY_ARE_EQUAL(
LxsstuLaunchWsl(std::format(L"--import {} . {} --version {}", tmpDistroName, g_testDistroPath, convertVersion).c_str()), 0L);
validateFlavorVersion(tmpDistroName, L"debian", L"12");
validateFlavorVersion(tmpDistroName, L"debian", L"13");

VERIFY_ARE_EQUAL(LxsstuLaunchWsl(std::format(L"--set-version {} {}", tmpDistroName, currentVersion).c_str()), 0L);
validateFlavorVersion(tmpDistroName, L"debian", L"12");
validateFlavorVersion(tmpDistroName, L"debian", L"13");
}

TEST_METHOD(DistributionId)
Expand Down Expand Up @@ -6410,8 +6410,7 @@ Error code: Wsl/InstallDistro/WSL_E_INVALID_JSON\r\n",
// See https://github.com/microsoft/WSL/issues/13173.
TEST_METHOD(SetSidNoWarning)
{
auto [out, err] =
LxsstuLaunchWslAndCaptureOutput(L"socat - 'EXEC:setsid --wait cmd.exe /c echo OK',pty,setsid,ctty,stderr");
auto [out, err] = LxsstuLaunchWslAndCaptureOutput(L"socat - 'EXEC:setsid --wait cmd.exe /c echo OK',pty,setsid,stderr");

VERIFY_ARE_EQUAL(out, L"OK\r\r\n");
VERIFY_ARE_EQUAL(err, L"");
Expand Down
2 changes: 1 addition & 1 deletion test/windows/testplugin/Plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ HRESULT OnDistroStarted(const WSLSessionInformation* Session, const WSLDistribut

// Validate that the process actually ran inside the distro.
auto output = ReadFromSocket(socket.get());
const auto expected = "Debian GNU/Linux 12\n";
const auto expected = "Debian GNU/Linux 13\n";
if (std::string(output.begin(), output.end()) != expected)
{
g_logfile << "Got unexpected output from bash: " << std::string(output.begin(), output.end())
Expand Down
5 changes: 3 additions & 2 deletions tools/test/Microsoft.WSL.TestDistro.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<description>WSL Test distribution</description>
</metadata>
<files>
<file src="test_distro.tar.xz" target="test_distro.tar.xz"/>
<file src="x64\test_distro.tar.xz" target="x64"/>
<file src="arm64\test_distro.tar.xz" target="arm64"/>
Comment thread
benhillis marked this conversation as resolved.
</files>
</package>
</package>
Loading
Loading