Add build-and-test suite (in-app self-test + publish gate); fix release-zip missing sounds
The test suite, modelled on Andre's Sensor Readout (an in-app self-test + a build script), runnable as one step before every publish. Part 1 - in-app multi-step self-test (SelfTest.cs), run by --selftest: audio round-trip (PCM + Opus over localhost, dedicated test port so it never clashes with a running instance), encryption right/wrong-password + fingerprint, packet framing + malformed rejection, client<->server wire-format compatibility, settings save/reload, profile save/reload (temp folder), diagnostics-report privacy (never leaks a password), and bundled-resources present. Each step is timed and reported PASS/FAIL/SKIP; exit 0 only if nothing failed. Replaces the old single-shot --selftest. RunDiagnostics refactored to expose BuildDiagnosticsReport(AppConfig) for the privacy step. Part 2 - run-tests.ps1: builds, then checks the package (sounds, readme, native opus, framework-dependent, dll version == csproj), the About-box changelog, the client/server wire contract (relay magic/version/port still match RemPacket), the CLI surface, and runs --selftest. build-release.ps1 now runs this gate first and aborts the release if it fails. Bug caught + fixed: the published release zip carried ZERO cue sounds (startup sound + connect/disconnect/etc.) - MSBuild's incremental Content-copy marker skipped sounds\ on a fresh publish. Added an AfterTargets=Publish copy in the csproj that lands every cue WAV in the published sounds\ folder regardless of the marker. Verified: a staging publish now contains all 9 cue WAVs. Manual/help: --selftest description updated (readme.html + MANUAL.md). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
05b218825d
commit
141c5e8ce1
@@ -119,4 +119,21 @@
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Guarantee the cue WAVs land in a PUBLISHED build. The sounds\ Content items above use
|
||||
CopyToOutputDirectory=PreserveNewest, but MSBuild's incremental "copy already done" marker
|
||||
(obj\...\.csproj.CopyComplete) can skip that copy when publishing into a fresh output folder
|
||||
whose marker is up to date — which silently shipped the v3.9 zip with NO cue sounds at all
|
||||
(startup sound + connect/disconnect/record/etc.). This explicit post-publish copy is marker-
|
||||
independent: it always copies every WAV from the source sounds\ folder into the published
|
||||
sounds\ folder. Build-release.ps1 zips the publish output, so this is what makes the release
|
||||
reliably contain the sounds. (The self-test "Bundled resources present" step verifies it.) -->
|
||||
<Target Name="EnsureCueSoundsPublished" AfterTargets="Publish">
|
||||
<ItemGroup>
|
||||
<_CueWavs Include="..\..\sounds\*.wav" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="@(_CueWavs)"
|
||||
DestinationFolder="$(PublishDir)sounds"
|
||||
SkipUnchangedFiles="false" />
|
||||
</Target>
|
||||
</Project>
|
||||
|
||||
Reference in New Issue
Block a user