Files
WSL/test/windows/wslc/WSLCCLIOptionsParserUnitTests.cpp
Ben Hillis 358ab87d40 Add WSLC (WSL Containers) feature (#40366)
WSLC is a container runtime built on the Windows Subsystem for Linux, enabling Windows applications to create and manage Linux containers through a native Windows API surface.

Key components:
- wslc.exe: CLI for managing containers, images, volumes, and networks
  (build, run, stop, inspect, push/pull from registries)
- wslcsession.exe: Per-user Windows service hosting container lifecycle,
  storage management, and networking
- WSLC SDK: C++ and C# client libraries with NuGet packaging for
  programmatic container management
- Container networking: port forwarding, DNS tunneling, virtio
  networking, and HCN integration
- Storage: VHD-backed volumes, virtiofs file sharing, overlayfs layers
- GPU passthrough and device host proxy support

Co-authored-by: Ben Hillis <benhill@ntdev.microsoft.com>
Co-authored-by: 1wizkid <richard.fricks@hotmail.com>
Co-authored-by: AmirMS <104940545+AmelBawa-msft@users.noreply.github.com>
Co-authored-by: beena352 <beenachauhan@microsoft.com>
Co-authored-by: Blue <OneBlue@users.noreply.github.com>
Co-authored-by: Craig Loewen <crloewen@microsoft.com>
Co-authored-by: Darshak Bhatti <47045043+dabhattimsft@users.noreply.github.com>
Co-authored-by: David Bennett <dbenne@microsoft.com>
Co-authored-by: Feng Wang <wang6922@outlook.com>
Co-authored-by: Flor Chacon <14323496+florelis@users.noreply.github.com>
Co-authored-by: John Stephens <johnstep@microsoft.com>
Co-authored-by: JohnMcPMS <johnmcp@microsoft.com>
Co-authored-by: Kevin Vega <40717198+kvega005@users.noreply.github.com>
Co-authored-by: Pooja Trivedi <poojatrivedi@gmail.com>
Co-authored-by: ramesh-ramn <raman.ramesh@gmail.com>
Co-authored-by: Richard Fricks <richfr@microsoft.com>
Co-authored-by: yao-msft <50888816+yao-msft@users.noreply.github.com>
2026-04-30 13:34:43 -07:00

48 lines
1.2 KiB
C++

/*++
Copyright (c) Microsoft. All rights reserved.
Module Name:
WSLCCLIOptionsParserUnitTests.cpp
Abstract:
This file contains unit tests for WSLC CLI driver option parsing.
--*/
#include "precomp.h"
#include "windows/Common.h"
#include "WSLCCLITestHelpers.h"
#include "VolumeModel.h"
using namespace wsl::windows::wslc;
namespace WSLCCLIOptionsParserUnitTests {
class WSLCCLIOptionsParserUnitTests
{
WSLC_TEST_CLASS(WSLCCLIOptionsParserUnitTests)
TEST_METHOD(WSLCCLIOptionsParser_ValidOptions)
{
std::vector<std::tuple<std::wstring, std::string, std::string>> validOptions = {
{L"SizeBytes=3145728", "SizeBytes", "3145728"},
{L"ReadOnly", "ReadOnly", ""},
{L"key=", "key", ""},
{L"=value", "", "value"},
{L"", "", ""},
{L"key=a=b=c", "key", "a=b=c"},
};
for (const auto& [input, expectedKey, expectedValue] : validOptions)
{
auto result = models::DriverOption::Parse(input);
VERIFY_ARE_EQUAL(expectedKey, result.first);
VERIFY_ARE_EQUAL(expectedValue, result.second);
}
}
};
} // namespace WSLCCLIOptionsParserUnitTests