Automated tests cover archive logic, API clients, logging, and view-model rules. This checklist covers UI and platform smoke tests that need a real desktop session.
| Platform | Architecture | Automated tests | UI smoke | Release archive |
|---|---|---|---|---|
| Windows | x64 | CI | Required | ZIP |
| Windows | arm64 | CI build | When hardware available | ZIP |
| Linux | x64 | CI + WSL | Required | TAR.GZ |
| Linux | arm64 | CI build | When hardware available | TAR.GZ |
| macOS | x64 | CI | When hardware available | TAR.GZ |
| macOS | arm64 | CI | When hardware available | TAR.GZ |
dotnet test CSharp_BatchConvertToCompressedFile.sln -c ReleaseExpected: 126 tests passed, 0 failed (count grows as tests are added).
- Confirm each of the six bundles exists in the release output.
- Confirm every bundle contains the application executable,
LICENSE,ReadMe.md, andWhatsNew.md. - Confirm the executable is a framework-dependent single-file build and the .NET runtime is not embedded.
- Extract and launch Windows x64 and Linux x64 with the .NET 10 runtime installed.
- Confirm the About window reports version
2.0.0. - Confirm the GitHub release assets match
BatchConvertToCompressedFile_<version>_<rid>.zip|tar.gz. - Confirm the GitHub Pages site and Wiki both show the current documentation and a side menu.
- Launch
BatchConvertToCompressedFile.exe. - Confirm the black/indigo theme, donation banner, left tabs, right live log, statistics row.
- Hover a sample of controls and confirm every element shows a tooltip.
- Compress two small files to
.zip; confirm stats, progress, and log entries. - Compress one file to
.7z; verify the archive. - Verify a corrupt archive; confirm it is counted as failed.
- Open Help -> About; confirm version, platform, runtime, and links.
- Open Help -> Check for Updates; confirm the result dialog.
- Resize the window and drag the log splitter; confirm layout remains usable.
- Close the app; confirm the log file is flushed.
The Hyper-V VM used for validation is D:\Hyper-V\VMs\LinuxMint. Machine-specific SSH details are
kept outside this repository (see the local agent notes for the launcher project).
- Start the VM from an elevated PowerShell session:
Start-VM -Name LinuxMint
- Find the current address:
Get-NetNeighbor -InterfaceAlias 'vEthernet (Default Switch)'
- Copy the published Linux build to the guest:
scp BatchConvertToCompressedFile_*_linux-x64.tar.gz vm@<vm-ip>:~/ ssh vm@<vm-ip> tar -xzf BatchConvertToCompressedFile_*_linux-x64.tar.gz -C ~/bcctf chmod +x ~/bcctf/BatchConvertToCompressedFile
- Launch it inside the guest desktop session. If testing over SSH, use the X server or the
repository smoke scripts:
./scripts/test-linux-ui.sh ~/bcctf/BatchConvertToCompressedFile linux-ui.png ./scripts/test-linux-about.sh ~/bcctf/BatchConvertToCompressedFile linux-about.png
- Verify the window appears at 1080x780, with the log on the right and statistics at the bottom.
- Repeat the compression/verification checks from the Windows list.
- Confirm the Open Log Folder action opens the file manager.
- Confirm the About window opens and displays the Linux distribution and architecture.
- Extract the
.tar.gzand run./BatchConvertToCompressedFile. - If Gatekeeper blocks the unsigned development build, approve it in System Settings -> Privacy & Security.
- Repeat the compression, verification, About, and update checks.
Requires a deployed website catalog entry with slug batch-convert-to-compressed-file.
- Click Donate and confirm the donation page opens with the application preselected.
- Enter the donation email in the banner and click Verify donation.
- A completed donation hides the banner and writes
donation.json. - A non-donated email keeps the banner visible and shows a friendly message.
- Restart the app; the banner stays hidden after a verified donation.
- Launch the app and check the log for
Startup statistics recorded(or an expected rate-limit message). - Trigger a real Warning/Error condition (for example, temporarily point the output folder at an unwritable location and cause an unexpected failure) and confirm a report is submitted.
- Expected user errors (locked files, offline network, corrupt archives) must not generate reports.