Test suite: add --config-dir isolation, --smoke-test alias, and a cold-start/close gate step
Adopted from Andre's RemSound-smoke-test-agent-brief.md - the gaps our pack didn't already cover: - --config-dir <folder>: redirect ALL user state (config, profiles, logs, cue sounds) to an explicit folder for this process only, applied at the very start of Program.Main before the layout migration runs. Lets a test exercise a real build without touching the user's live settings (the brief's safety rule 1). Works with every command. AppConfig gains SetUserDataDirectoryOverride / an override on UserDataDirectory; CommandLine.TryGetConfigDir parses it early. - --smoke-test / --smoketest: alias for --selftest, matching the brief's vocabulary. - run-tests.ps1: a cold-start + clean-close smoke (brief baseline steps 3-4) - launches the GUI minimized against an isolated --config-dir, confirms it stays up, that it used the isolated folder (real settings untouched), and that --close shuts it down with no orphan process. SKIPs cleanly if a RemSound instance is already running (machine-wide single-instance lock). Manual + --help updated for both switches. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
141c5e8ce1
commit
832ed40bf7
@@ -25,6 +25,16 @@ internal static class Program
|
||||
return;
|
||||
}
|
||||
|
||||
// --config-dir <folder> (test / portable isolation): redirect ALL user state - config,
|
||||
// profiles, logs, cue sounds - to an explicit folder for THIS process only. Applied first,
|
||||
// before the layout migration and sound consolidation below read or write the default
|
||||
// location, so a smoke test can run a real build without touching the user's settings
|
||||
// (smoke-test brief, safety rule 1).
|
||||
if (CommandLine.TryGetConfigDir(args, out var configDir))
|
||||
{
|
||||
AppConfig.SetUserDataDirectoryOverride(configDir);
|
||||
}
|
||||
|
||||
// SustainedLowLatency tells the GC to avoid full (gen 2) collections while audio is streaming.
|
||||
// Gen 0/1 collections still happen but are sub-millisecond; the long pauses that were causing
|
||||
// the receiver to fall behind in clusters of 4-5 underruns at a time were almost certainly
|
||||
|
||||
Reference in New Issue
Block a user