R-578: settings-callback deadlock gate over every controller package
TestR578NothingTakesTheSettingsLockInsideASettingsCallback (internal/settings) derives from source the *Settings methods that take s.mu, the callback runners among them, and per package every helper that transitively reaches one; a call to any of those inside a func literal passed to a runner (or a non-literal callback) fails with file:line. Decoy: TestR578GateConvictsAHelperChain. REUSE.md lookalike row added. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
This commit is contained in:
@@ -203,6 +203,9 @@ func TestR570SentenceStaysHungarian(t *testing.T) {
|
||||
//
|
||||
// RED-PROOF (REPORT): put `m.note(...)` back inside the final UpdateOffboxStatus callback → this test
|
||||
// names the file and the line, in a second, instead of the suite hanging for 25 minutes.
|
||||
//
|
||||
// R-578: the controller-wide successor is TestR578NothingTakesTheSettingsLockInsideASettingsCallback
|
||||
// (internal/settings) — it derives the lockers and helpers from source in every package.
|
||||
func TestNoteHelpersAreNotCalledUnderTheSettingsLock(t *testing.T) {
|
||||
callback := regexp.MustCompile(`\.Update\w*\(func\(`)
|
||||
note := regexp.MustCompile(`\b(m|s)\.(note|noteErr|boxLang)\(`)
|
||||
|
||||
Reference in New Issue
Block a user