Block device abstraction for OCaml 5 with Eio direct-style I/O and Bytesrw integration
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor(crowbar): Alcotest-style API with suite exports and grouped run

- Change `run` signature to `string -> (string * test_case list) list -> unit`
matching Alcotest's grouping convention
- Fix `_name` bug: pass the name through to Alcotest.run_with_args
- Each fuzz module now exports `let suite = ("name", [test_case ...])`
- Entry points (fuzz.ml) collect suites: `Crowbar.run "pkg" [Fuzz_X.suite]`
- Remove stale `add_test`/`suite` API, keep only `test_case`/`run`
- Remove `let run () = ()` from fuzz_common.ml files
- Update merlint E725 rule to match new `let suite = ("name", ...)` pattern
- Update E725 test fixtures and expected output

+14 -9
+14 -9
fuzz/fuzz_block.ml
··· 102 102 check_eq ~pp:(fun ppf c -> Fmt.pf ppf "%C" c) expected actual 103 103 done 104 104 105 - let () = 106 - add_test ~name:"block: roundtrip" [ bytes; range 200 ] test_roundtrip; 107 - add_test ~name:"block: sub mapping" 108 - [ bytes; range 100; range 50; range 30; range 30 ] 109 - test_sub_mapping; 110 - add_test ~name:"block: crc corruption" 111 - [ bytes; range 512; range 256 ] 112 - test_crc_detects_corruption; 113 - add_test ~name:"block: read_many" [ range 20 ] test_read_many_concat 105 + let suite = 106 + ( "block", 107 + [ 108 + test_case "roundtrip" [ bytes; range 200 ] test_roundtrip; 109 + test_case "sub mapping" 110 + [ bytes; range 100; range 50; range 30; range 30 ] 111 + test_sub_mapping; 112 + test_case "crc corruption" 113 + [ bytes; range 512; range 256 ] 114 + test_crc_detects_corruption; 115 + test_case "read_many" [ range 20 ] test_read_many_concat; 116 + ] ) 117 + 118 + let () = run "block" [ suite ]