benchmarksPublic
benchmarksPublic
Commit c85a464b
M
config/conformance_expected_failures.json
@@ -1,28 +1,117 @@
11
{2-
"schema_version": 1,3-
"subject": "oak",4-
"measured_with": "oak 0.105.0 (macOS APFS, case-insensitive, normalization-insensitive)",5-
"policy": "Strict: a listed behaviour that passes is FIXED (remove it); one failing at different legs is a regression. Tickets: fb-N when filed, proposed:<slug> until filed (see docs/vcs-conformance.md).",6-
"entries": [7-
{"behaviour": "path_roundtrip_v1", "ticket": "fb-531", "failed_legs": ["behaviour"],8-
"reason": "legacy v1 scenario: oak commit rejects the tab-containing fixture name"},9-
{"behaviour": "path_tab_v1", "ticket": "fb-531", "failed_legs": ["commit_push"],10-
"reason": "oak commit: cannot track \"tab\\tname\": tab in filename"},11-
{"behaviour": "path_newline_v1", "ticket": "proposed:oak-control-char-filenames", "failed_legs": ["commit_push"],12-
"reason": "oak commit rejects newline/CR in file names (same validate_entry_name rule as fb-531)"},13-
{"behaviour": "path_control_chars_v1", "ticket": "proposed:oak-control-char-filenames", "failed_legs": ["commit_push"],14-
"reason": "oak commit rejects C0/DEL control characters in file names"},15-
{"behaviour": "path_backslash_v1", "ticket": "proposed:oak-backslash-filename-split", "failed_legs": ["commit_push"],16-
"reason": "a literal backslash is committed as a directory separator (back\\slash -> back/slash, source status clean); with a trailing backslash (trailing\\) oak push then rejects the commit oak just created ('new-side path \"trailing/\" is absent')"},17-
{"behaviour": "path_long_component_v1", "ticket": "proposed:oak-clone-name-max", "failed_legs": ["clone_fs"],18-
"reason": "oak clone fails 'File name too long (os error 63)' on a 255-byte component Oak committed and pushed"},19-
{"behaviour": "path_case_only_rename_v1", "ticket": "proposed:oak-pull-case-only-rename-deletes", "failed_legs": ["pull_fs", "pull_status_clean"],20-
"reason": "case-insensitive FS: pulling a committed File.txt -> file.txt rename deletes the file from the worktree"},21-
{"behaviour": "symlink_to_dir_real_v1", "ticket": "proposed:oak-pull-writes-through-symlink", "failed_legs": ["pull_fs", "pull_status_clean"],22-
"reason": "pull replacing symlink p with directory p/ writes p/inner.txt through the old link (outside the checkout for absolute targets) and drops p"},23-
{"behaviour": "file_to_dir_v1", "ticket": "proposed:oak-pull-file-dir-transition", "failed_legs": ["pull_fs"],24-
"reason": "oak pull: IO error: File exists (os error 17) on a committed file -> directory transition"},25-
{"behaviour": "file_to_deep_dir_v1", "ticket": "proposed:oak-pull-file-dir-transition", "failed_legs": ["pull_fs"],26-
"reason": "oak pull: IO error: Not a directory (os error 20) on a committed file -> deeper directory transition"}27-
]2+
"schema_version": 2,3+
"subject": "oak",4+
"measured_with": "oak 0.105.0 on darwin-ci-ni (macOS APFS: case-insensitive, normalization-insensitive)",5+
"policy": "Strict xfail: a listed behaviour must fail at exactly these legs with details fully matching these patterns (re.fullmatch); anything else is a regression. A listed behaviour that passes where the entry applies is FIXED (remove it). outcome=refused marks typed policy refusals (product decision) vs bugs. fs_profiles scopes an entry to filesystem classes (default: all). coverage.<profile>.expected_skips: any other skip on that profile is a coverage loss (UNMEASURED).",6+
"entries": [7+
{8+
"behaviour": "path_roundtrip_v1",9+
"ticket": "fb-531",10+
"outcome": "refused",11+
"failed_legs": {12+
"behaviour": "command\\ \\('commit',\\ '\\-\\-no\\-verify'\\)\\ failed\\ \\(2\\):\\ b'error:\\ cannot\\ track\\ \"tab\\\\\\\\tname\":\\ tab\\ in\\ filename\\\\n'"13+
},14+
"reason": "legacy v1 scenario: oak commit refuses the tab-containing fixture name (policy; fb-531)"15+
},16+
{17+
"behaviour": "path_tab_v1",18+
"ticket": "fb-531",19+
"outcome": "refused",20+
"failed_legs": {21+
"commit_push": "oak commit --no-verify exited 2: error: cannot track \"tab\\\\tname\": tab in filename"22+
},23+
"reason": "oak commit refuses a tab in a file name (policy, needs product decision)"24+
},25+
{26+
"behaviour": "path_newline_v1",27+
"ticket": "fb-531",28+
"outcome": "refused",29+
"failed_legs": {30+
"commit_push": "oak commit --no-verify exited 2: error: cannot track \"(line\\\\nbreak|carriage\\\\rreturn)\": (newline|control character) in filename"31+
},32+
"reason": "oak commit refuses newline/CR in file names (same validate_entry_name policy as fb-531)"33+
},34+
{35+
"behaviour": "path_control_chars_v1",36+
"ticket": "fb-531",37+
"outcome": "refused",38+
"failed_legs": {39+
"commit_push": "oak commit --no-verify exited 2: error: cannot track \"(bell\\\\u\\{7\\}name|escape\\\\u\\{1b\\}\\[0m|delete\\\\u\\{7f\\}name|unit\\\\u\\{1f\\}sep)\": control character in filename"40+
},41+
"reason": "oak commit refuses C0/DEL control characters in file names (policy)"42+
},43+
{44+
"behaviour": "path_backslash_v1",45+
"ticket": "fb-543",46+
"outcome": "bug",47+
"failed_legs": {48+
"commit_push": "oak push --repo exited 2: error: push admission phase rejected outgoing commit [0-9a-f]{64}: file-change closure new-side path \"trailing/\" is absent from current; no remote state was mutated"49+
},50+
"reason": "a literal backslash is committed as a directory separator (back\\slash -> back/slash, source status clean); with a trailing backslash oak push rejects the commit oak just created"51+
},52+
{53+
"behaviour": "path_long_component_v1",54+
"ticket": "fb-544",55+
"outcome": "bug",56+
"failed_legs": {57+
"clone_fs": "oak clone conformance/r\\d+-\\d+ exited 1: error: IO error: File name too long \\(os error 63\\)"58+
},59+
"reason": "oak clone fails ENAMETOOLONG on a 255-byte component Oak committed and pushed",60+
"fs_profiles": [61+
"darwin-ci-ni"62+
]63+
},64+
{65+
"behaviour": "path_case_only_rename_v1",66+
"ticket": "fb-545",67+
"outcome": "bug",68+
"failed_legs": {69+
"pull_fs": "missing=\\['file\\.txt'\\]",70+
"pull_status_clean": "oak status reports changes: \\[\\{\"path\": \"file\\.txt\", \"status\": \"deleted\"\\}(, \\{\"path\": \"file\\.txt\", \"status\": \"deleted\"\\})*\\]"71+
},72+
"reason": "case-insensitive FS: pulling a committed File.txt -> file.txt rename deletes the file from the worktree",73+
"fs_profiles": [74+
"darwin-ci-ni"75+
]76+
},77+
{78+
"behaviour": "symlink_to_dir_real_v1",79+
"ticket": "fb-542",80+
"outcome": "bug",81+
"failed_legs": {82+
"pull_fs": "missing=\\['p/inner\\.txt'\\]; extra=\\['elsewhere/inner\\.txt'\\]",83+
"pull_status_clean": "oak status reports changes: \\[\\{\"path\": \"elsewhere/inner\\.txt\", \"status\": \"renamed\", \"old_path\": \"p/inner\\.txt\"\\}(, \\{\"path\": \"elsewhere/inner\\.txt\", \"status\": \"renamed\", \"old_path\": \"p/inner\\.txt\"\\})*\\]"84+
},85+
"reason": "SECURITY: pull replacing symlink p with directory p/ writes p/inner.txt through the old link (outside the checkout for absolute targets) and drops p"86+
},87+
{88+
"behaviour": "file_to_dir_v1",89+
"ticket": "fb-546",90+
"outcome": "bug",91+
"failed_legs": {92+
"pull_fs": "oak pull exited 1: error: IO error: File exists \\(os error 17\\)"93+
},94+
"reason": "oak pull fails EEXIST on a committed file -> directory transition"95+
},96+
{97+
"behaviour": "file_to_deep_dir_v1",98+
"ticket": "fb-546",99+
"outcome": "bug",100+
"failed_legs": {101+
"pull_fs": "oak pull exited 1: error: IO error: Not a directory \\(os error 20\\)"102+
},103+
"reason": "oak pull fails ENOTDIR on a committed file -> deeper directory transition"104+
}105+
],106+
"coverage": {107+
"darwin-ci-ni": {108+
"expected_skips": [109+
"path_unicode_nfc_nfd_pair_v1",110+
"path_non_utf8_v1",111+
"path_case_distinct_v1",112+
"huge_file_sparse_v1"113+
],114+
"note": "APFS default: case-insensitive and normalization-insensitive, no non-UTF-8 names; huge_file_sparse_v1 is gated (and a gated skip even when run: reader legs over bound)"115+
}116+
}28117
}
M
docs/independent-workflow-readers.md
Loading diff…
M
docs/prior-art.md
Loading diff…
M
docs/vcs-conformance.md
Loading diff…
M
scripts/bench.py
Loading diff…
M
scripts/oakbench/agent_campaign.py
Loading diff…
M
scripts/oakbench/conformance_gate.py
Loading diff…
M
scripts/oakbench/conformance_matrix.py
Loading diff…
M
scripts/oakbench/integrity.py
Loading diff…
M
scripts/oakbench/oak_sqlite_reader.py
Loading diff…
M
scripts/oakbench/purezstd.py
Loading diff…
M
scripts/oakbench/workflow_oracles.py
Loading diff…
M
scripts/parallel_contention.py
Loading diff…
M
scripts/publish_gate.py
Loading diff…
M
scripts/task_loop.py
Loading diff…
M
scripts/vcs_conformance.py
Loading diff…
M
scripts/workflow_ab.py
Loading diff…
A
tests/data/conformance_oak_0105_failures.json
Loading diff…
M
tests/test_conformance_gate.py
Loading diff…
M
tests/test_conformance_matrix.py
Loading diff…
M
tests/test_independent_oracle_wiring.py
Loading diff…
M
tests/test_oak_sqlite_reader.py
Loading diff…
M
tests/test_public_readiness.py
Loading diff…
M
tests/test_publish_gate.py
Loading diff…
M
tests/test_pure_codecs.py
Loading diff…
M
tests/test_workflow_oracles.py
Loading diff…