59
60
#define HYPERV_FIREWALL_TEST_ONLY() \
61
{ \
62
- WSL2_TEST_ONLY(); \
62
WINDOWS_11_TEST_ONLY(); \
63
if (!AreExperimentalNetworkingFeaturesSupported() || !IsHyperVFirewallSupported()) \
64
{ \
69
70
#define MIRRORED_NETWORKING_TEST_ONLY() \
71
{ \
73
- WSL2_TEST_ONLY(); \
72
WINDOWS_11_TEST_ONLY(); \
73
if (!AreExperimentalNetworkingFeaturesSupported() || !IsHyperVFirewallSupported()) \
74
{ \
79
80
#define DNS_TUNNELING_TEST_ONLY() \
81
{ \
84
- WSL2_TEST_ONLY(); \
82
WINDOWS_11_TEST_ONLY(); \
83
if (!AreExperimentalNetworkingFeaturesSupported()) \
84
{ \
94
95
#define WINHTTP_PROXY_TEST_ONLY() \
96
{ \
100
- WSL2_TEST_ONLY(); \
97
if (!TryLoadWinhttpProxyMethods()) \
98
{ \
99
LogSkipped("Winhttp proxy APIs not present on this OS. Skipping test..."); \
103
104
#define VIRTIOPROXY_TEST_ONLY() \
105
{ \
110
- WSL2_TEST_ONLY(); \
106
}
107
108
static constexpr auto c_wslVmCreatorId = L"\'{40e0ac32-46a5-438a-A0B2-2B479E8F2E90}\'";
296
return true;
297
}
298
304
- TEST_METHOD(RemoveAndAddDefaultRoute)
299
+ WSL2_TEST_METHOD(RemoveAndAddDefaultRoute)
300
{
306
- WSL2_TEST_ONLY();
307
-
301
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
302
303
// Verify that the default routes are set
345
VERIFY_ARE_EQUAL(v6State.DefaultRoute->Device, L"eth0");
346
}
347
355
- TEST_METHOD(SetInterfaceDownAndUp)
348
+ WSL2_TEST_METHOD(SetInterfaceDownAndUp)
349
{
357
- WSL2_TEST_ONLY();
358
-
350
// Disconnect interface
351
wsl::shared::hns::NetworkInterface link;
352
link.Connected = false;
359
VERIFY_IS_TRUE(GetInterfaceState(L"eth0").Up);
360
}
361
371
- TEST_METHOD(SetMtu)
362
+ WSL2_TEST_METHOD(SetMtu)
363
{
373
- WSL2_TEST_ONLY();
374
-
364
// Set MTU - must be 1280 bytes or above to meet IPv6 minimum MTU requirement
365
wsl::shared::hns::NetworkInterface link;
366
link.Connected = true;
369
VERIFY_ARE_EQUAL(GetInterfaceState(L"eth0").Mtu, 1280);
370
}
371
383
- TEST_METHOD(AddAndRemoveCustomRoute)
372
+ WSL2_TEST_METHOD(AddAndRemoveCustomRoute)
373
{
385
- WSL2_TEST_ONLY();
386
-
374
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
375
376
// Add custom routes, one per address family
405
VERIFY_IS_TRUE(v6CustomRouteGone);
406
}
407
421
- TEST_METHOD(AddRouteWithMetrics)
408
+ WSL2_TEST_METHOD(AddRouteWithMetrics)
409
{
423
- WSL2_TEST_ONLY();
424
-
410
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
411
412
// Add a custom route per address family
443
VERIFY_IS_TRUE(v6CustomRouteGone);
444
}
445
461
- TEST_METHOD(ResetRoutes)
446
+ WSL2_TEST_METHOD(ResetRoutes)
447
{
463
- WSL2_TEST_ONLY();
464
-
448
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
449
450
// Add a custom route per address family
515
VERIFY_IS_TRUE(v6GwRestoredCorrectly);
516
}
517
535
- TEST_METHOD(ResetRoutesTwice)
518
+ WSL2_TEST_METHOD(ResetRoutesTwice)
519
{
537
- WSL2_TEST_ONLY();
538
-
520
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
521
522
auto state = GetIpv4RoutingTableState();
545
VERIFY_IS_TRUE(state.Routes.empty());
546
}
547
567
- TEST_METHOD(UpdateIpAddress)
548
+ WSL2_TEST_METHOD(UpdateIpAddress)
549
{
569
- WSL2_TEST_ONLY();
570
-
550
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
551
552
// Verify that the IPs are in the preferred state
604
IpSuffixOriginRandom,
605
};
606
628
- TEST_METHOD(TemporaryAddress)
607
+ WSL2_TEST_METHOD(TemporaryAddress)
608
{
630
- WSL2_TEST_ONLY();
631
-
609
TestCase({{L"eth0", {}, {}, {{L"fc00::2", 64}}, L"fc00::1"}});
610
611
// Make the address public
664
VERIFY_ARE_EQUAL(L"fc00::abcd:1234:5678:9999", match.str(1));
665
}
666
690
- TEST_METHOD(SimpleCase)
667
+ WSL2_TEST_METHOD(SimpleCase)
668
{
669
TestCase({{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
670
}
671
695
- TEST_METHOD(AddressChange)
672
+ WSL2_TEST_METHOD(AddressChange)
673
{
674
TestCase(
675
{{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"},
676
{L"eth0", {{L"192.168.0.3", 24}}, L"192.168.0.1", {{L"fc00::3", 64}}, L"fc00::1"}});
677
}
678
702
- TEST_METHOD(GatewayChange)
679
+ WSL2_TEST_METHOD(GatewayChange)
680
{
681
TestCase(
682
{{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"},
683
{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.3", {{L"fc00::2", 64}}, L"fc00::3"}});
684
}
685
709
- TEST_METHOD(NetworkChange)
686
+ WSL2_TEST_METHOD(NetworkChange)
687
{
688
TestCase(
689
{{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"},
690
{L"eth0", {{L"10.0.0.2", 16}}, L"10.0.0.1", {{L"fc00:abcd::5", 80}}, L"fc00:abcd::1"}});
691
}
692
716
- TEST_METHOD(NetworkChangeAndBack)
693
+ WSL2_TEST_METHOD(NetworkChangeAndBack)
694
{
695
TestCase(
696
{{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"},
698
{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
699
}
700
724
- TEST_METHOD(NoChange)
701
+ WSL2_TEST_METHOD(NoChange)
702
{
703
TestCase(
704
{{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"},
705
{L"eth0", {{L"192.168.0.2", 24}}, L"192.168.0.1", {{L"fc00::2", 64}}, L"fc00::1"}});
706
}
707
731
- TEST_METHOD(MultipleIps)
708
+ WSL2_TEST_METHOD(MultipleIps)
709
{
710
TestCase(
711
{{L"eth0",
715
L"fc00::1"}});
716
}
717
741
- TEST_METHOD(MacAddressChangeAndBack)
718
+ WSL2_TEST_METHOD(MacAddressChangeAndBack)
719
{
743
- WSL2_TEST_ONLY();
744
-
720
const auto originalMac = GetMacAddress();
721
722
wsl::shared::hns::MacAddress macAddress;
927
VerifyDnsQueries();
928
}
929
955
- TEST_METHOD(NatDnsTunneling)
930
+ WSL2_TEST_METHOD(NatDnsTunneling)
931
{
932
DNS_TUNNELING_TEST_ONLY();
933
936
VerifyDnsTunneling(c_dnsTunnelingDefaultIp);
937
}
938
964
- TEST_METHOD(NatDnsTunnelingWithSpecificIp)
939
+ WSL2_TEST_METHOD(NatDnsTunnelingWithSpecificIp)
940
{
941
DNS_TUNNELING_TEST_ONLY();
942
945
VerifyDnsTunneling(L"10.255.255.1");
946
}
947
973
- TEST_METHOD(NatDnsTunnelingVerifySuffixes)
948
+ WSL2_TEST_METHOD(NatDnsTunnelingVerifySuffixes)
949
{
950
DNS_TUNNELING_TEST_ONLY();
951
954
VerifyDnsSuffixes();
955
}
956
982
- TEST_METHOD(NatWithoutIcsDnsProxy)
957
+ WSL2_TEST_METHOD(NatWithoutIcsDnsProxy)
958
{
984
- WSL2_TEST_ONLY();
985
-
959
// Verify WSL has connectivity in NAT mode when the ICS DNS proxy is turned off (in which case the DNS servers
960
// from Windows are mirrored in Linux)
961
WslConfigChange config(LxssGenerateTestConfig({.dnsProxy = false}));
963
GuestClient(L"tcp-connect:bing.com:80");
964
}
965
993
- TEST_METHOD(DnsChange)
966
+ WSL2_TEST_METHOD(DnsChange)
967
{
995
- WSL2_TEST_ONLY();
996
-
968
wsl::shared::hns::DNS dns;
969
dns.ServerList = {L"1.1.1.1"};
970
dns.Options = LX_INIT_RESOLVCONF_FULL_HEADER;
975
VERIFY_ARE_EQUAL(expected, out.c_str());
976
}
977
1007
- TEST_METHOD(DnsChangeMultipleServerAndSearch)
978
+ WSL2_TEST_METHOD(DnsChangeMultipleServerAndSearch)
979
{
1009
- WSL2_TEST_ONLY();
1010
-
980
wsl::shared::hns::DNS dns;
981
dns.ServerList = L"1.1.1.1,1.1.1.2";
982
dns.Search = L"foo.microsoft.com,bar.microsoft.com";
992
VERIFY_ARE_EQUAL(expected, out.c_str());
993
}
994
1026
- TEST_METHOD(DnsResolutionBasic)
995
+ WSL2_TEST_METHOD(DnsResolutionBasic)
996
{
1028
- WSL2_TEST_ONLY();
1029
-
997
NetworkTests::VerifyDnsResolutionBasic();
998
}
999
1033
- TEST_METHOD(DnsResolutionDig)
1000
+ WSL2_TEST_METHOD(DnsResolutionDig)
1001
{
1035
- WSL2_TEST_ONLY();
1036
-
1002
NetworkTests::VerifyDnsResolutionDig();
1003
}
1004
1040
- TEST_METHOD(DnsResolutionRecordTypes)
1005
+ WSL2_TEST_METHOD(DnsResolutionRecordTypes)
1006
{
1042
- WSL2_TEST_ONLY();
1043
-
1007
NetworkTests::VerifyDnsResolutionRecordTypes();
1008
}
1009
1235
VerifyHttpProxyFilterByNetworkConfiguration(false);
1236
}
1237
1275
- TEST_METHOD(NatHttpProxyVerifyConfigDisabled)
1238
+ WSL2_TEST_METHOD(NatHttpProxyVerifyConfigDisabled)
1239
{
1240
WINHTTP_PROXY_TEST_ONLY();
1241
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = false}));
1245
VerifyHttpProxyEnvVariables(L"", L"", L"");
1246
}
1247
1285
- TEST_METHOD(NatHttpProxySimple)
1248
+ WSL2_TEST_METHOD(NatHttpProxySimple)
1249
{
1250
WINHTTP_PROXY_TEST_ONLY();
1251
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1253
VerifyHttpProxySimple();
1254
}
1255
1293
- TEST_METHOD(NatHttpProxySimpleMachineScope)
1256
+ WSL2_TEST_METHOD(NatHttpProxySimpleMachineScope)
1257
{
1258
WINHTTP_PROXY_TEST_ONLY();
1259
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1262
VerifyHttpProxySimple(false);
1263
}
1264
1302
- TEST_METHOD(NatNoHttpProxyConfigured)
1265
+ WSL2_TEST_METHOD(NatNoHttpProxyConfigured)
1266
{
1267
WINHTTP_PROXY_TEST_ONLY();
1268
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1270
VerifyNoHttpProxyConfigured();
1271
}
1272
1310
- TEST_METHOD(NatHttpProxyWithBypassesConfigured)
1273
+ WSL2_TEST_METHOD(NatHttpProxyWithBypassesConfigured)
1274
{
1275
WINHTTP_PROXY_TEST_ONLY();
1276
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1277
VerifyHttpProxyWithBypassesConfigured();
1278
}
1279
1317
- TEST_METHOD(NatHttpProxyChange)
1280
+ WSL2_TEST_METHOD(NatHttpProxyChange)
1281
{
1282
WINHTTP_PROXY_TEST_ONLY();
1283
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1284
VerifyHttpProxyChange();
1285
}
1286
1324
- TEST_METHOD(NatHttpProxyAndWslEnv)
1287
+ WSL2_TEST_METHOD(NatHttpProxyAndWslEnv)
1288
{
1289
WINHTTP_PROXY_TEST_ONLY();
1290
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1291
VerifyHttpProxyAndWslEnv();
1292
}
1293
1331
- TEST_METHOD(NatHttpProxyFilterByNetworkConfiguration)
1294
+ WSL2_TEST_METHOD(NatHttpProxyFilterByNetworkConfiguration)
1295
{
1296
WINHTTP_PROXY_TEST_ONLY();
1297
WslConfigChange config(LxssGenerateTestConfig({.autoProxy = true}));
1298
VerifyHttpProxyFilterByNetworkConfigurationNAT();
1299
}
1300
1338
- TEST_METHOD(RenameInterface)
1301
+ WSL2_TEST_METHOD(RenameInterface)
1302
{
1340
- WSL2_TEST_ONLY();
1341
-
1303
// Disconnect "eth0" interface so it can be renamed
1304
wsl::shared::hns::NetworkInterface link;
1305
link.Connected = false;
1323
VERIFY_IS_TRUE(eth0Connected);
1324
}
1325
1365
- TEST_METHOD(RenameWifiInterface)
1326
+ WSL2_TEST_METHOD(RenameWifiInterface)
1327
{
1367
- WSL2_TEST_ONLY();
1368
-
1328
std::wstring commandLine(L"wsl.exe bash -c \"zcat /proc/config.gz | grep CONFIG_PROXY_WIFI=y\"");
1329
const auto out = std::get<0>(LxsstuLaunchCommandAndCaptureOutputWithResult(commandLine.data()));
1330
if (out.empty())
1352
VERIFY_IS_TRUE(eth0Connected);
1353
}
1354
1396
- TEST_METHOD(EnableLoopbackRouting)
1355
+ WSL2_TEST_METHOD(EnableLoopbackRouting)
1356
{
1398
- WSL2_TEST_ONLY();
1399
-
1357
// Enable accept_local and route_localnet settings for eth0
1358
wsl::shared::hns::VmNicCreatedNotification creationNotification{AdapterId};
1359
RunGns(creationNotification, LxGnsMessageVmNicCreatedNotification);
1366
VERIFY_IS_TRUE(routeLocalnetEnabled);
1367
}
1368
1412
- TEST_METHOD(InitializeLoopbackConfiguration)
1369
+ WSL2_TEST_METHOD(InitializeLoopbackConfiguration)
1370
{
1414
- WSL2_TEST_ONLY();
1415
-
1371
// Assume eth0 is the GELNIC
1372
wsl::shared::hns::CreateDeviceRequest createDeviceRequest{wsl::shared::hns::DeviceType::Loopback, L"loopback", AdapterId};
1373
RunGns(createDeviceRequest, LxGnsMessageCreateDeviceRequest);
1415
VERIFY_IS_TRUE(shutdownSuccessful);
1416
}
1417
1463
- TEST_METHOD(AddRemoveLoopbackRoutesv4)
1418
+ WSL2_TEST_METHOD(AddRemoveLoopbackRoutesv4)
1419
{
1465
- WSL2_TEST_ONLY();
1466
-
1420
const std::wstring interfaceName = L"eth0";
1421
const std::vector<std::wstring> ipAddresses = {L"127.0.0.1", L"127.0.0.2"};
1422
1467
The test uses the "ip route get" command, which is equivalent to asking the OS what route it will take for a packet. It
1468
functions as a small integration test.
1469
*/
1517
- TEST_METHOD(LoopbackGetRoute)
1470
+ WSL2_TEST_METHOD(LoopbackGetRoute)
1471
{
1519
- WSL2_TEST_ONLY();
1520
-
1472
// Verify that before configurations are applied, the route chosen for 127.0.0.1 tcp/udp uses the local routing table
1473
const bool loopbackTcpUsesLocalTable =
1474
LxsstuLaunchWsl(L"ip route get from 127.0.0.1 127.0.0.1 ipproto tcp | grep local") == (DWORD)0;
1497
}
1498
1499
// Validate that adapter has an ip address, default route and DNS configuration in NAT mode
1549
- TEST_METHOD(NatConfiguration)
1500
+ WSL2_TEST_METHOD(NatConfiguration)
1501
{
1551
- WSL2_TEST_ONLY();
1552
-
1502
WslConfigChange config(LxssGenerateTestConfig());
1503
1504
const auto state = GetInterfaceState(L"eth0");
1583
VERIFY_SUCCEEDED(hr, error.get());
1584
}
1585
1637
- TEST_METHOD(NatInvalidRange)
1586
+ WSL2_TEST_METHOD(NatInvalidRange)
1587
{
1639
- WSL2_TEST_ONLY();
1588
WslConfigChange config(LxssGenerateTestConfig());
1589
WriteNatConfiguration(L"InvalidRange", {}, {L"delete"});
1590
ResetWslNetwork();
1604
VERIFY_ARE_EQUAL(state.Gateway.value_or(L""), networkConfiguration.gatewayIpAddress);
1605
}
1606
1659
- TEST_METHOD(NatInvalidGateway)
1607
+ WSL2_TEST_METHOD(NatInvalidGateway)
1608
{
1661
- WSL2_TEST_ONLY();
1609
WslConfigChange config(LxssGenerateTestConfig());
1610
WriteNatConfiguration({}, L"InvalidGateway", {});
1611
ResetWslNetwork();
1625
VERIFY_ARE_EQUAL(state.Gateway.value_or(L""), networkConfiguration.gatewayIpAddress);
1626
}
1627
1681
- TEST_METHOD(NatInvalidAddress)
1628
+ WSL2_TEST_METHOD(NatInvalidAddress)
1629
{
1683
- WSL2_TEST_ONLY();
1630
WslConfigChange config(LxssGenerateTestConfig());
1631
1632
const auto previousConfiguration = GetNatConfiguration();
1768
__fallthrough;
1769
case wsl::core::NetworkingMode::Mirrored:
1770
case wsl::core::NetworkingMode::VirtioProxy:
1825
- WSL2_TEST_ONLY();
1771
+ if (!LxsstuVmMode())
1772
+ {
1773
+ LogSkipped("This test is only applicable to WSL2");
1774
+ return;
1775
+ }
1776
break;
1777
}
1778
2263
}
2264
}
2265
2316
- TEST_METHOD(NatLocalhostRelay)
2266
+ WSL2_TEST_METHOD(NatLocalhostRelay)
2267
{
2318
- WSL2_TEST_ONLY();
2268
WslKeepAlive keepAlive;
2269
2270
ValidateLocalhostRelayTraffic(AF_INET);
2271
ValidateLocalhostRelayTraffic(AF_INET6);
2272
}
2273
2325
- TEST_METHOD(NatLocalhostRelayNoIpv6)
2274
+ WSL2_TEST_METHOD(NatLocalhostRelayNoIpv6)
2275
{
2327
- WSL2_TEST_ONLY();
2328
-
2276
WslConfigChange config(LxssGenerateTestConfig({.kernelCommandLine = L"ipv6.disable=1"}));
2277
WslKeepAlive keepAlive;
2278
2336
VERIFY_ARE_NOT_EQUAL(warnings.find(L"starting data transfer loop"), std::string::npos);
2337
}
2338
2392
- TEST_METHOD(NatNonRootNamespaceEphemeralBind)
2339
+ WSL2_TEST_METHOD(NatNonRootNamespaceEphemeralBind)
2340
{
2394
- WSL2_TEST_ONLY();
2395
-
2341
// Because the test creates a new network namespace, the resolv.conf from the root network namespace
2342
// is copied in the resolv.conf of the new network namespace. The DNS tunneling listener running in the root namespace
2343
// needs to be accessible from the new namespace, so it can't use a 127* IP.
2544
AddFirewallRuleAndValidateTraffic(hyperVBlockRule, expectedConnectivity);
2545
}
2546
2602
- TEST_METHOD(NatFirewallRulesExpectedBlock)
2547
+ WSL2_TEST_METHOD(NatFirewallRulesExpectedBlock)
2548
{
2549
HYPERV_FIREWALL_TEST_ONLY();
2550
WslConfigChange config(LxssGenerateTestConfig({.firewall = true}));
2553
FirewallRuleBlockedTests(FirewallTestConnectivity::Blocked);
2554
}
2555
2611
- TEST_METHOD(NatFirewallRulesExpectedBlockFirewallDisabled)
2556
+ WSL2_TEST_METHOD(NatFirewallRulesExpectedBlockFirewallDisabled)
2557
{
2558
HYPERV_FIREWALL_TEST_ONLY();
2559
SKIP_TEST_UNSTABLE();
2564
FirewallRuleBlockedTests(FirewallTestConnectivity::Allowed);
2565
}
2566
2622
- TEST_METHOD(NatFirewallRulesExpectedBlockFirewallDisabledByPolicy)
2567
+ WSL2_TEST_METHOD(NatFirewallRulesExpectedBlockFirewallDisabledByPolicy)
2568
{
2569
HYPERV_FIREWALL_TEST_ONLY();
2570
2604
AddFirewallRuleAndValidateTraffic(allowHyperVRule, expectedConnectivity);
2605
}
2606
2662
- TEST_METHOD(NatFirewallRulesExpectedAllow)
2607
+ WSL2_TEST_METHOD(NatFirewallRulesExpectedAllow)
2608
{
2609
HYPERV_FIREWALL_TEST_ONLY();
2610
WslConfigChange config(LxssGenerateTestConfig({.firewall = true}));
2613
FirewallRuleAllowedTests(FirewallTestConnectivity::Allowed);
2614
}
2615
2671
- TEST_METHOD(NatFirewallRulesExpectedAllowFirewallDisabled)
2616
+ WSL2_TEST_METHOD(NatFirewallRulesExpectedAllowFirewallDisabled)
2617
{
2618
HYPERV_FIREWALL_TEST_ONLY();
2619
SKIP_TEST_UNSTABLE();
2691
blockRule, isHyperVFirewallEnabled ? FirewallTestConnectivity::Blocked : FirewallTestConnectivity::Allowed);
2692
}
2693
2749
- TEST_METHOD(NatFirewallRulesEnabledSetting)
2694
+ WSL2_TEST_METHOD(NatFirewallRulesEnabledSetting)
2695
{
2696
HYPERV_FIREWALL_TEST_ONLY();
2697
WslConfigChange config(LxssGenerateTestConfig({.firewall = true}));
2700
FirewallSettingEnabledTests(true);
2701
}
2702
2758
- TEST_METHOD(NatFirewallRulesEnabledSettingFirewallDisabled)
2703
+ WSL2_TEST_METHOD(NatFirewallRulesEnabledSettingFirewallDisabled)
2704
{
2705
HYPERV_FIREWALL_TEST_ONLY();
2706
SKIP_TEST_UNSTABLE();
2995
2996
void TestCase(const std::vector<InterfaceState>& interfaceStates)
2997
{
3053
- WSL2_TEST_ONLY();
3054
-
2998
for (const auto& state : interfaceStates)
2999
{
3000
if (state.Rename)
3476
VERIFY_IS_FALSE(Watchdog.IsExpired());
3477
}
3478
3536
- TEST_METHOD(ConnectivityCheckTestNATDefaultSuccess)
3479
+ WSL2_TEST_METHOD(ConnectivityCheckTestNATDefaultSuccess)
3480
{
3538
- WSL2_TEST_ONLY();
3539
-
3481
WslConfigChange config(LxssGenerateTestConfig());
3482
WaitForNATStateInLinux();
3483
3527
RunGns("www.msftconnecttest.com", AdapterId, LxGnsMessageConnectTestRequest, testErrorCode);
3528
}
3529
3589
- TEST_METHOD(ConnectivityCheckTestNATNameResolutionFailure)
3530
+ WSL2_TEST_METHOD(ConnectivityCheckTestNATNameResolutionFailure)
3531
{
3591
- WSL2_TEST_ONLY();
3592
-
3532
WslConfigChange config(LxssGenerateTestConfig());
3533
WaitForNATStateInLinux();
3534
3552
RunGns("asdlkfadsf.bbcxzncvb", AdapterId, LxGnsMessageConnectTestRequest, testErrorCode);
3553
}
3554
3616
- TEST_METHOD(ConnectivityCheckTestNATNameResolvesButConnectivityFails)
3555
+ WSL2_TEST_METHOD(ConnectivityCheckTestNATNameResolvesButConnectivityFails)
3556
{
3618
- WSL2_TEST_ONLY();
3619
-
3557
WslConfigChange config(LxssGenerateTestConfig());
3558
WaitForNATStateInLinux();
3559
3616
return true;
3617
}
3618
3682
- TEST_METHOD(DnsTunneling)
3619
+ WSL2_TEST_METHOD(DnsTunneling)
3620
{
3621
DNS_TUNNELING_TEST_ONLY();
3622
MIRRORED_NETWORKING_TEST_ONLY();
3627
NetworkTests::VerifyDnsTunneling(c_dnsTunnelingDefaultIp);
3628
}
3629
3693
- TEST_METHOD(DnsTunnelingWithSpecificIp)
3630
+ WSL2_TEST_METHOD(DnsTunnelingWithSpecificIp)
3631
{
3632
DNS_TUNNELING_TEST_ONLY();
3633
MIRRORED_NETWORKING_TEST_ONLY();
3639
NetworkTests::VerifyDnsTunneling(L"10.255.255.1");
3640
}
3641
3705
- TEST_METHOD(DnsTunnelingVerifySuffixes)
3642
+ WSL2_TEST_METHOD(DnsTunnelingVerifySuffixes)
3643
{
3644
DNS_TUNNELING_TEST_ONLY();
3645
MIRRORED_NETWORKING_TEST_ONLY();
3650
NetworkTests::VerifyDnsSuffixes();
3651
}
3652
3716
- TEST_METHOD(WithoutTunnelingVerifySuffixes)
3653
+ WSL2_TEST_METHOD(WithoutTunnelingVerifySuffixes)
3654
{
3655
MIRRORED_NETWORKING_TEST_ONLY();
3656
3660
NetworkTests::VerifyDnsSuffixes();
3661
}
3662
3726
- TEST_METHOD(HttpProxyVerifyConfigDisabled)
3663
+ WSL2_TEST_METHOD(HttpProxyVerifyConfigDisabled)
3664
{
3665
MIRRORED_NETWORKING_TEST_ONLY();
3666
WINHTTP_PROXY_TEST_ONLY();
3672
NetworkTests::VerifyHttpProxyEnvVariables(L"", L"", L"");
3673
}
3674
3738
- TEST_METHOD(HttpProxySimple)
3675
+ WSL2_TEST_METHOD(HttpProxySimple)
3676
{
3677
MIRRORED_NETWORKING_TEST_ONLY();
3678
WINHTTP_PROXY_TEST_ONLY();
3682
NetworkTests::VerifyHttpProxySimple();
3683
}
3684
3748
- TEST_METHOD(HttpProxySimpleMachineScope)
3685
+ WSL2_TEST_METHOD(HttpProxySimpleMachineScope)
3686
{
3687
MIRRORED_NETWORKING_TEST_ONLY();
3688
WINHTTP_PROXY_TEST_ONLY();
3694
NetworkTests::VerifyHttpProxySimple(false);
3695
}
3696
3760
- TEST_METHOD(NoHttpProxyConfigured)
3697
+ WSL2_TEST_METHOD(NoHttpProxyConfigured)
3698
{
3699
MIRRORED_NETWORKING_TEST_ONLY();
3700
WINHTTP_PROXY_TEST_ONLY();
3704
NetworkTests::VerifyNoHttpProxyConfigured();
3705
}
3706
3770
- TEST_METHOD(HttpProxyWithBypassesConfigured)
3707
+ WSL2_TEST_METHOD(HttpProxyWithBypassesConfigured)
3708
{
3709
MIRRORED_NETWORKING_TEST_ONLY();
3710
WINHTTP_PROXY_TEST_ONLY();
3714
NetworkTests::VerifyHttpProxyWithBypassesConfigured();
3715
}
3716
3780
- TEST_METHOD(HttpProxyChange)
3717
+ WSL2_TEST_METHOD(HttpProxyChange)
3718
{
3719
MIRRORED_NETWORKING_TEST_ONLY();
3720
WINHTTP_PROXY_TEST_ONLY();
3724
NetworkTests::VerifyHttpProxyChange();
3725
}
3726
3790
- TEST_METHOD(HttpProxyAndWslEnv)
3727
+ WSL2_TEST_METHOD(HttpProxyAndWslEnv)
3728
{
3729
MIRRORED_NETWORKING_TEST_ONLY();
3730
WINHTTP_PROXY_TEST_ONLY();
3733
NetworkTests::VerifyHttpProxyAndWslEnv();
3734
}
3735
3799
- TEST_METHOD(HttpProxyFilterByNetworkConfiguration)
3736
+ WSL2_TEST_METHOD(HttpProxyFilterByNetworkConfiguration)
3737
{
3738
MIRRORED_NETWORKING_TEST_ONLY();
3739
WINHTTP_PROXY_TEST_ONLY();
3742
NetworkTests::VerifyHttpProxyFilterByNetworkConfigurationMirrored();
3743
}
3744
3808
- TEST_METHOD(SmokeTest)
3745
+ WSL2_TEST_METHOD(SmokeTest)
3746
{
3747
MIRRORED_NETWORKING_TEST_ONLY();
3748
3753
NetworkTests::GuestClient(L"tcp-connect:bing.com:80");
3754
}
3755
3819
- TEST_METHOD(InternetConnectivityV4)
3756
+ WSL2_TEST_METHOD(InternetConnectivityV4)
3757
{
3758
MIRRORED_NETWORKING_TEST_ONLY();
3759
3769
NetworkTests::GuestClient(L"tcp4-connect:bing.com:80");
3770
}
3771
3835
- TEST_METHOD(InternetConnectivityV6)
3772
+ WSL2_TEST_METHOD(InternetConnectivityV6)
3773
{
3774
MIRRORED_NETWORKING_TEST_ONLY();
3775
3785
NetworkTests::GuestClient(L"tcp6-connect:bing.com:80");
3786
}
3787
3851
- TEST_METHOD(LoopbackLocal)
3788
+ WSL2_TEST_METHOD(LoopbackLocal)
3789
{
3790
MIRRORED_NETWORKING_TEST_ONLY();
3791
3829
// VerifyLoopbackConnectivity(L"::1");
3830
}
3831
3895
- TEST_METHOD(LoopbackSystemd)
3832
+ WSL2_TEST_METHOD(LoopbackSystemd)
3833
{
3834
MIRRORED_NETWORKING_TEST_ONLY();
3835
3855
NetworkTests::VerifyLoopbackGuestToHost(L"127.0.0.1", IPPROTO_TCP);
3856
}
3857
3921
- TEST_METHOD(GuestPortCantBeBoundByHost)
3858
+ WSL2_TEST_METHOD(GuestPortCantBeBoundByHost)
3859
{
3860
MIRRORED_NETWORKING_TEST_ONLY();
3861
3873
}
3874
}
3875
3939
- TEST_METHOD(GuestPortIsReleased)
3876
+ WSL2_TEST_METHOD(GuestPortIsReleased)
3877
{
3878
MIRRORED_NETWORKING_TEST_ONLY();
3879
3907
VERIFY_IS_TRUE(bound);
3908
}
3909
3973
- TEST_METHOD(HostPortCantBeBoundByGuest)
3910
+ WSL2_TEST_METHOD(HostPortCantBeBoundByGuest)
3911
{
3912
MIRRORED_NETWORKING_TEST_ONLY();
3913
3925
}
3926
}
3927
3991
- TEST_METHOD(UdpBindDoesNotPreventTcpBind)
3928
+ WSL2_TEST_METHOD(UdpBindDoesNotPreventTcpBind)
3929
{
3930
MIRRORED_NETWORKING_TEST_ONLY();
3931
3936
auto udpPort = NetworkTests::BindGuestPort(L"UDP4-LISTEN:1234", true);
3937
}
3938
4002
- TEST_METHOD(HostUdpBindDoesNotPreventGuestTcpBind)
3939
+ WSL2_TEST_METHOD(HostUdpBindDoesNotPreventGuestTcpBind)
3940
{
3941
MIRRORED_NETWORKING_TEST_ONLY();
3942
3947
auto tcpPort = NetworkTests::BindGuestPort(L"TCP4-LISTEN:2345", true);
3948
}
3949
4013
- TEST_METHOD(MultipleGuestBindOnSameTuple)
3950
+ WSL2_TEST_METHOD(MultipleGuestBindOnSameTuple)
3951
{
3952
MIRRORED_NETWORKING_TEST_ONLY();
3953
3977
}
3978
}
3979
4043
- TEST_METHOD(EphemeralBind)
3980
+ WSL2_TEST_METHOD(EphemeralBind)
3981
{
3982
MIRRORED_NETWORKING_TEST_ONLY();
3983
3988
auto udpPort = NetworkTests::BindGuestPort(L"UDP4-LISTEN:0", true);
3989
}
3990
4054
- TEST_METHOD(PortZeroBindIsTracked)
3991
+ WSL2_TEST_METHOD(PortZeroBindIsTracked)
3992
{
3993
MIRRORED_NETWORKING_TEST_ONLY();
3994
4003
NetworkTests::VerifyPortZeroBindIsTracked(false);
4004
}
4005
4069
- TEST_METHOD(ExplicitEphemeralBind)
4006
+ WSL2_TEST_METHOD(ExplicitEphemeralBind)
4007
{
4008
MIRRORED_NETWORKING_TEST_ONLY();
4009
4048
VERIFY_IS_TRUE(canBindUdp);
4049
}
4050
4114
- TEST_METHOD(NonRootNamespaceEphemeralBind)
4051
+ WSL2_TEST_METHOD(NonRootNamespaceEphemeralBind)
4052
{
4053
MIRRORED_NETWORKING_TEST_ONLY();
4054
4064
4065
// Verifies that in mirrored mode, Windows can connect to a listener running in a Linux network namespace different from
4066
// the Linux root network namespace.
4130
- TEST_METHOD(PortForwardingToNonRootNamespace)
4067
+ WSL2_TEST_METHOD(PortForwardingToNonRootNamespace)
4068
{
4069
MIRRORED_NETWORKING_TEST_ONLY();
4070
4144
VERIFY_ARE_EQUAL(connect(clientSocket.get(), reinterpret_cast<SOCKADDR*>(&serverAddr), sizeof(serverAddr)), 0);
4145
}
4146
4210
- TEST_METHOD(LinuxNonRootNamespaceConnectToWindowsHost)
4147
+ WSL2_TEST_METHOD(LinuxNonRootNamespaceConnectToWindowsHost)
4148
{
4149
MIRRORED_NETWORKING_TEST_ONLY();
4150
4217
VERIFY_ARE_NOT_EQUAL(warnings.find(L"starting data transfer loop"), std::string::npos);
4218
}
4219
4283
- TEST_METHOD(ResolvConf)
4220
+ WSL2_TEST_METHOD(ResolvConf)
4221
{
4222
MIRRORED_NETWORKING_TEST_ONLY();
4223
4230
VERIFY_IS_TRUE(std::regex_match(out, pattern));
4231
}
4232
4296
- TEST_METHOD(NetworkSettings)
4233
+ WSL2_TEST_METHOD(NetworkSettings)
4234
{
4235
MIRRORED_NETWORKING_TEST_ONLY();
4236
4268
}
4269
}
4270
4334
- TEST_METHOD(FirewallRulesExpectedBlock)
4271
+ WSL2_TEST_METHOD(FirewallRulesExpectedBlock)
4272
{
4273
HYPERV_FIREWALL_TEST_ONLY();
4274
MIRRORED_NETWORKING_TEST_ONLY();
4282
NetworkTests::FirewallRuleBlockedTests(NetworkTests::FirewallTestConnectivity::Blocked);
4283
}
4284
4348
- TEST_METHOD(FirewallRulesExpectedAllow)
4285
+ WSL2_TEST_METHOD(FirewallRulesExpectedAllow)
4286
{
4287
HYPERV_FIREWALL_TEST_ONLY();
4288
MIRRORED_NETWORKING_TEST_ONLY();
4296
NetworkTests::FirewallRuleAllowedTests(NetworkTests::FirewallTestConnectivity::Allowed);
4297
}
4298
4362
- TEST_METHOD(FirewallRulesEnabledSetting)
4299
+ WSL2_TEST_METHOD(FirewallRulesEnabledSetting)
4300
{
4301
HYPERV_FIREWALL_TEST_ONLY();
4302
MIRRORED_NETWORKING_TEST_ONLY();
4310
NetworkTests::FirewallSettingEnabledTests(true);
4311
}
4312
4376
- TEST_METHOD(ConnectivityCheckTestDefaultSuccess)
4313
+ WSL2_TEST_METHOD(ConnectivityCheckTestDefaultSuccess)
4314
{
4378
- WSL2_TEST_ONLY();
4315
MIRRORED_NETWORKING_TEST_ONLY();
4316
4317
SKIP_TEST_UNSTABLE();
4364
NetworkTests::RunGns("www.msftconnecttest.com", AdapterId, LxGnsMessageConnectTestRequest, testErrorCode);
4365
}
4366
4431
- TEST_METHOD(ConnectivityCheckTestNameResolutionFailure)
4367
+ WSL2_TEST_METHOD(ConnectivityCheckTestNameResolutionFailure)
4368
{
4433
- WSL2_TEST_ONLY();
4369
MIRRORED_NETWORKING_TEST_ONLY();
4370
4371
m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::Mirrored}));
4391
NetworkTests::RunGns("asdlkfadsf.bbcxzncvb", AdapterId, LxGnsMessageConnectTestRequest, testErrorCode);
4392
}
4393
4459
- TEST_METHOD(ConnectivityCheckTestNameResolvesButConnectivityFails)
4394
+ WSL2_TEST_METHOD(ConnectivityCheckTestNameResolvesButConnectivityFails)
4395
{
4461
- WSL2_TEST_ONLY();
4396
MIRRORED_NETWORKING_TEST_ONLY();
4397
4398
SKIP_TEST_UNSTABLE();
4488
VERIFY_IS_FALSE(Watchdog.IsExpired());
4489
}
4490
4557
- TEST_METHOD(DnsResolutionBasic)
4491
+ WSL2_TEST_METHOD(DnsResolutionBasic)
4492
{
4493
MIRRORED_NETWORKING_TEST_ONLY();
4494
4498
NetworkTests::VerifyDnsResolutionBasic();
4499
}
4500
4567
- TEST_METHOD(DnsResolutionDig)
4501
+ WSL2_TEST_METHOD(DnsResolutionDig)
4502
{
4503
MIRRORED_NETWORKING_TEST_ONLY();
4504
4508
NetworkTests::VerifyDnsResolutionDig();
4509
}
4510
4577
- TEST_METHOD(DnsResolutionRecordTypes)
4511
+ WSL2_TEST_METHOD(DnsResolutionRecordTypes)
4512
{
4513
MIRRORED_NETWORKING_TEST_ONLY();
4514
4546
return true;
4547
}
4548
4615
- TEST_METHOD(Basic)
4549
+ WSL2_TEST_METHOD(Basic)
4550
{
4617
- WSL2_TEST_ONLY();
4551
WINDOWS_11_TEST_ONLY();
4552
4553
// There's no way to guarantee that an external switch will work in the test environment
4559
VERIFY_ARE_EQUAL(L"1\n", out);
4560
}
4561
4629
- TEST_METHOD(CustomMac)
4562
+ WSL2_TEST_METHOD(CustomMac)
4563
{
4631
- WSL2_TEST_ONLY();
4564
WINDOWS_11_TEST_ONLY();
4565
4566
constexpr auto mac = L"aa:bb:cc:dd:ee:ff";
4570
VERIFY_ARE_EQUAL(mac, GetMacAddress());
4571
}
4572
4641
- TEST_METHOD(CustomMacDashes)
4573
+ WSL2_TEST_METHOD(CustomMacDashes)
4574
{
4643
- WSL2_TEST_ONLY();
4575
WINDOWS_11_TEST_ONLY();
4576
4577
// Note: The SynthNic fails to start if the first byte of the mac address is 0xff.
4584
VERIFY_ARE_EQUAL(mac, GetMacAddress());
4585
}
4586
4656
- TEST_METHOD(Ipv6)
4587
+ WSL2_TEST_METHOD(Ipv6)
4588
{
4658
- WSL2_TEST_ONLY();
4589
WINDOWS_11_TEST_ONLY();
4590
4591
m_config->Update(LxssGenerateTestConfig(
4595
VERIFY_ARE_EQUAL(L"0\n", out);
4596
}
4597
4668
- TEST_METHOD(SmokeTest)
4598
+ WSL2_TEST_METHOD(SmokeTest)
4599
{
4670
- WSL2_TEST_ONLY();
4600
WINDOWS_11_TEST_ONLY();
4601
4602
if (!NetworkTests::HostHasInternetConnectivity(AF_INET) && !NetworkTests::HostHasInternetConnectivity(AF_INET6))
4611
NetworkTests::GuestClient(L"tcp-connect:bing.com:80");
4612
}
4613
4685
- TEST_METHOD(InternetConnectivityV4)
4614
+ WSL2_TEST_METHOD(InternetConnectivityV4)
4615
{
4687
- WSL2_TEST_ONLY();
4616
WINDOWS_11_TEST_ONLY();
4617
4618
if (!NetworkTests::HostHasInternetConnectivity(AF_INET))
4626
NetworkTests::GuestClient(L"tcp4-connect:bing.com:80");
4627
}
4628
4701
- TEST_METHOD(InternetConnectivityV6)
4629
+ WSL2_TEST_METHOD(InternetConnectivityV6)
4630
{
4703
- WSL2_TEST_ONLY();
4631
WINDOWS_11_TEST_ONLY();
4632
4633
if (!NetworkTests::HostHasInternetConnectivity(AF_INET6))
4669
return true;
4670
}
4671
4745
- TEST_METHOD(SmokeTest)
4672
+ WSL2_TEST_METHOD(SmokeTest)
4673
{
4674
VIRTIOPROXY_TEST_ONLY();
4675
4679
NetworkTests::GuestClient(L"tcp-connect:bing.com:80");
4680
}
4681
4755
- TEST_METHOD(InternetConnectivityV4)
4682
+ WSL2_TEST_METHOD(InternetConnectivityV4)
4683
{
4684
VIRTIOPROXY_TEST_ONLY();
4685
4694
NetworkTests::GuestClient(L"tcp4-connect:bing.com:80");
4695
}
4696
4770
- TEST_METHOD(InternetConnectivityV6)
4697
+ WSL2_TEST_METHOD(InternetConnectivityV6)
4698
{
4699
VIRTIOPROXY_TEST_ONLY();
4700
4711
NetworkTests::GuestClient(L"tcp6-connect:bing.com:80");
4712
}
4713
4787
- TEST_METHOD(Configuration)
4714
+ WSL2_TEST_METHOD(Configuration)
4715
{
4716
VIRTIOPROXY_TEST_ONLY();
4717
4736
}
4737
}
4738
4812
- TEST_METHOD(GuestPortIsReleased)
4739
+ WSL2_TEST_METHOD(GuestPortIsReleased)
4740
{
4741
VIRTIOPROXY_TEST_ONLY();
4742
4764
std::chrono::minutes(2));
4765
}
4766
4840
- TEST_METHOD(LoopbackGuestToHost)
4767
+ WSL2_TEST_METHOD(LoopbackGuestToHost)
4768
{
4769
VIRTIOPROXY_TEST_ONLY();
4770
4778
// NetworkTests::VerifyLoopbackGuestToHost(L"::", IPPROTO_TCP);
4779
}
4780
4854
- TEST_METHOD(UdpBindDoesNotPreventTcpBind)
4781
+ WSL2_TEST_METHOD(UdpBindDoesNotPreventTcpBind)
4782
{
4783
VIRTIOPROXY_TEST_ONLY();
4784
4788
auto udpPort = NetworkTests::BindGuestPort(L"UDP4-LISTEN:1234", true);
4789
}
4790
4864
- TEST_METHOD(HostUdpBindDoesNotPreventGuestTcpBind)
4791
+ WSL2_TEST_METHOD(HostUdpBindDoesNotPreventGuestTcpBind)
4792
{
4793
VIRTIOPROXY_TEST_ONLY();
4794
4798
auto tcpPort = NetworkTests::BindGuestPort(L"TCP4-LISTEN:2345", true);
4799
}
4800
4874
- TEST_METHOD(PortZeroBindIsTracked)
4801
+ WSL2_TEST_METHOD(PortZeroBindIsTracked)
4802
{
4803
VIRTIOPROXY_TEST_ONLY();
4804
4807
NetworkTests::VerifyPortZeroBindIsTracked();
4808
}
4809
4883
- TEST_METHOD(HttpProxySimple)
4810
+ WSL2_TEST_METHOD(HttpProxySimple)
4811
{
4812
VIRTIOPROXY_TEST_ONLY();
4813
WINHTTP_PROXY_TEST_ONLY();
4816
NetworkTests::VerifyHttpProxySimple();
4817
}
4818
4892
- TEST_METHOD(ConfigurationV6)
4819
+ WSL2_TEST_METHOD(ConfigurationV6)
4820
{
4821
VIRTIOPROXY_TEST_ONLY();
4822
4891
}
4892
}
4893
4967
- TEST_METHOD(GuestPortIsReleasedV6)
4894
+ WSL2_TEST_METHOD(GuestPortIsReleasedV6)
4895
{
4896
VIRTIOPROXY_TEST_ONLY();
4897
WINDOWS_11_TEST_ONLY();
4920
std::chrono::minutes(2));
4921
}
4922
4996
- TEST_METHOD(ConfigurationV6DnsServers)
4923
+ WSL2_TEST_METHOD(ConfigurationV6DnsServers)
4924
{
4925
VIRTIOPROXY_TEST_ONLY();
4926
4945
VERIFY_IS_TRUE(std::regex_match(out, v6Pattern));
4946
}
4947
5021
- TEST_METHOD(DnsResolutionBasic)
4948
+ WSL2_TEST_METHOD(DnsResolutionBasic)
4949
{
4950
VIRTIOPROXY_TEST_ONLY();
4951
4953
NetworkTests::VerifyDnsResolutionBasic();
4954
}
4955
5029
- TEST_METHOD(DnsResolutionDig)
4956
+ WSL2_TEST_METHOD(DnsResolutionDig)
4957
{
4958
VIRTIOPROXY_TEST_ONLY();
4959
4961
NetworkTests::VerifyDnsResolutionDig();
4962
}
4963
5037
- TEST_METHOD(DnsResolutionRecordTypes)
4964
+ WSL2_TEST_METHOD(DnsResolutionRecordTypes)
4965
{
4966
VIRTIOPROXY_TEST_ONLY();
4967
4968
m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = false}));
4969
NetworkTests::VerifyDnsResolutionRecordTypes();
4970
}
4971
+
4972
+ WSL2_TEST_METHOD(DnsResolutionBasicDnsTunneling)
4973
+ {
4974
+ VIRTIOPROXY_TEST_ONLY();
4975
+ DNS_TUNNELING_TEST_ONLY();
4976
+
4977
+ m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
4978
+ NetworkTests::VerifyDnsResolutionBasic();
4979
+ }
4980
+
4981
+ WSL2_TEST_METHOD(DnsResolutionDigDnsTunneling)
4982
+ {
4983
+ VIRTIOPROXY_TEST_ONLY();
4984
+ DNS_TUNNELING_TEST_ONLY();
4985
+
4986
+ m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
4987
+ NetworkTests::VerifyDnsResolutionDig();
4988
+ }
4989
+
4990
+ WSL2_TEST_METHOD(DnsResolutionRecordTypesDnsTunneling)
4991
+ {
4992
+ VIRTIOPROXY_TEST_ONLY();
4993
+ DNS_TUNNELING_TEST_ONLY();
4994
+
4995
+ m_config->Update(LxssGenerateTestConfig({.networkingMode = wsl::core::NetworkingMode::VirtioProxy, .dnsTunneling = true}));
4996
+ NetworkTests::VerifyDnsResolutionRecordTypes();
4997
+ }
4998
};
4999
} // namespace NetworkTests