test: classify prerequisite lanes and own Avalonia sessions
This commit is contained in:
parent
c1a905004a
commit
3684e7b5e7
113 changed files with 273 additions and 22 deletions
|
|
@ -9,6 +9,7 @@ namespace AcDream.Launcher.Core.Tests.Launching;
|
|||
public sealed class LauncherProcessSupervisorTests
|
||||
{
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public void WindowsFactoryUsesNativeProcessGroupsOnlyForConsoleChildren()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows())
|
||||
|
|
@ -148,6 +149,7 @@ public sealed class LauncherProcessSupervisorTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public void GracefulStopSignalSendsSigintToARealChildOnLinux()
|
||||
{
|
||||
// Review finding F3, proven end to end against the real
|
||||
|
|
@ -221,6 +223,7 @@ public sealed class LauncherProcessSupervisorTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public async Task WindowsCtrlBreakStopsOnlyTheTargetProcessGroupWithoutKill()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows())
|
||||
|
|
@ -316,6 +319,7 @@ public sealed class LauncherProcessSupervisorTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public async Task WindowsConsolelessParentStillTargetsDistinctChildProcessGroups()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows())
|
||||
|
|
@ -655,6 +659,7 @@ public sealed class LauncherProcessSupervisorTests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public async Task RealChildStderrIsCapturedForTheWindowsNativeConsolePath()
|
||||
{
|
||||
// Fix #406 sibling gap: on Windows, console-capable children
|
||||
|
|
|
|||
|
|
@ -78,6 +78,7 @@ public sealed class LauncherExecutableSetTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public void LinuxRequiresExecutePermissionForBothCoDeployedHosts()
|
||||
{
|
||||
if (!OperatingSystem.IsLinux())
|
||||
|
|
@ -118,6 +119,7 @@ public sealed class LauncherExecutableSetTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public void WindowsPreservesExistenceOnlyAvailability()
|
||||
{
|
||||
if (!OperatingSystem.IsWindows())
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ public sealed class LauncherProfileHardeningTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public void LinuxLoadNormalizesAnExistingCredentialFileTo0600BeforeReading()
|
||||
{
|
||||
if (!OperatingSystem.IsLinux())
|
||||
|
|
|
|||
|
|
@ -317,6 +317,7 @@ public sealed class LauncherProfileStoreTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public void SaveSetsOwnerOnlyPermissionsOnLinux()
|
||||
{
|
||||
// Linux-conditional: 0600 is a Linux-only hygiene step (spec §5,
|
||||
|
|
@ -361,6 +362,7 @@ public sealed class LauncherProfileStoreTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public void TempCredentialFileIsOwnerOnlyFromItsFirstObservableLinuxState()
|
||||
{
|
||||
// Deterministic proof of the exact production create path: inspect
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ public sealed class StatusFileTailerTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Windows")]
|
||||
public void ReadNewEventsReturnsEmptyRatherThanThrowingOnASharingViolation()
|
||||
{
|
||||
// A deterministic proxy for the File.Exists -> new FileStream
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ public sealed class ClientVersionStoreTests : IDisposable
|
|||
}
|
||||
|
||||
[Fact]
|
||||
[Trait("Lane", "Linux")]
|
||||
public async Task LinuxTreatsNonCanonicalInstallJsonCasingAsUnrecordedContent()
|
||||
{
|
||||
if (!OperatingSystem.IsLinux())
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue