You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 72fe1cd
Browse filesBrowse the repository at this point in the historyBrowse files
Fix timeout races and other issues from the v2 review (#198)
* Fix races between timeouts and report/log writing
- validate: guard the log stream with a mutex so the timeout thread can't
reset it while a test is writing to it, and stop the timeout thread once
the tests finish so it can't write its report over the real one.
- test: the worker and the watchdog now claim the report with an atomic
flag and only the first to claim it writes. The placeholder report is
written before the watchdog starts.
* Fix issues from the v2 review
- Crash log: back in the per-user temp directory (path computed up front for
the signal handler) instead of a shared /tmp file, opened with O_NOFOLLOW.
- Crash handler: don't pass null image/symbol names to %s; cast the offset
for %ld; include <string.h> and <algorithm>.
- --output-filename without --output-dir is resolved against the working
directory rather than building a juce::File from a relative path.
- pluginval test accepts --name=value options, as validate does.
- GitHub Actions: delete each report before running so a stale one from an
earlier run is never read.
- TestConfig::getPluginPathOrID uses settings_parser::resolvePluginPath.
- vst3validator: delete the extracted binary if writing or chmod fails.
- Typos, spacing, closing-namespace comments, an em dash, and the JUCE
version in CLAUDE.md.
* Fix remaining issues from the v2 review
- pluginval test: --record-missing=<value> is an error rather than the value
being taken as the config path.
- Message-thread helpers share one callOnMessageThreadAndWait() that rethrows
an exception on the calling thread, so a throw can't leave the caller
waiting forever. Used by the VST3 helpers, the editor helpers, the plugin
scan, message-thread tests and the acceptance plugin teardown, which now
can't throw out of its destructor.
- Child process output is decoded with ChildProcessOutputDecoder, so a UTF-8
character split across two reads is no longer garbled.
- operator delete no longer throws (it's noexcept, so that terminated the
process); operator new throws std::bad_alloc rather than returning null.
Removed the unused violationError().
- Replaced the em/en dashes in CLAUDE.md and the acceptance design doc.
0 commit comments