test(watcher): a marker link planted during the run is refused and not retried (#158)
Review round 2 on PR #195: the marker writes had no test, so reverting them to by-path writes, or the refusal to log-only, stayed green. The link is planted from inside the fake model call, between the walk's Lstat and the marker write, for both markers and both an outside and an in-brain relative target; red on all four flips. The marker-entry skip is now checked for .failed too. Also pins cleanRel's acceptance of a backslash as a filename byte in brainfs itself, and stops the buildAndWrite control claiming writes it does not count. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -529,3 +529,20 @@ func TestCreateRegularCreatesOnlyNewFilesThroughRealDirectories(t *testing.T) {
|
||||
got, _ = os.ReadFile(filepath.Join(dir, "wiki", "new", "facts", "n.md"))
|
||||
assert.Equal(t, "one", string(got))
|
||||
}
|
||||
|
||||
// On Linux a backslash is an ordinary filename byte, not a separator, so a
|
||||
// name containing one stays a single in-root component (hyperguild#158: the
|
||||
// watcher retried such a note forever while cleanRel refused it).
|
||||
func TestReadAndPutRegularTreatABackslashAsAFilenameByte(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
b, err := Open(dir)
|
||||
require.NoError(t, err)
|
||||
defer func() { _ = b.Close() }()
|
||||
require.NoError(t, b.PutRegular(`a\..\b.md`, []byte("x")))
|
||||
got, err := os.ReadFile(filepath.Join(dir, `a\..\b.md`))
|
||||
require.NoError(t, err, "the name was not kept as one component")
|
||||
assert.Equal(t, "x", string(got))
|
||||
got, err = b.ReadRegular(`a\..\b.md`)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "x", string(got))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user