Matter smart home protocol implementation for OCaml
0
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

+37 -35
+2 -4
fuzz/fuzz.ml
··· 1 - (** Fuzz runner for Matter TLV and CASE modules. *) 2 - 3 1 let () = 4 - Fuzz_tlv.run (); 5 - Fuzz_case.run () 2 + Fuzz_case.run (); 3 + Fuzz_tlv.run ()
+20 -20
fuzz/fuzz_case.ml
··· 207 207 208 208 check_eq ~pp:(fun ppf s -> Fmt.pf ppf "%S" s) dest1 dest2 209 209 210 - let run () = 211 - (* Sigma message roundtrip tests *) 212 - add_test ~name:"case: sigma1 roundtrip" [ sigma1_gen ] test_sigma1_roundtrip; 213 - add_test ~name:"case: sigma2 roundtrip" [ sigma2_gen ] test_sigma2_roundtrip; 214 - add_test ~name:"case: sigma3 roundtrip" [ sigma3_gen ] test_sigma3_roundtrip; 215 - 216 - (* No-crash tests for arbitrary input *) 217 - add_test ~name:"case: sigma1 decode no crash" [ bytes ] 218 - test_sigma1_decode_no_crash; 219 - add_test ~name:"case: sigma2 decode no crash" [ bytes ] 220 - test_sigma2_decode_no_crash; 221 - add_test ~name:"case: sigma3 decode no crash" [ bytes ] 222 - test_sigma3_decode_no_crash; 210 + let suite = 211 + ( "case", 212 + [ 213 + (* Sigma message roundtrip tests *) 214 + test_case "sigma1 roundtrip" [ sigma1_gen ] test_sigma1_roundtrip; 215 + test_case "sigma2 roundtrip" [ sigma2_gen ] test_sigma2_roundtrip; 216 + test_case "sigma3 roundtrip" [ sigma3_gen ] test_sigma3_roundtrip; 217 + (* No-crash tests for arbitrary input *) 218 + test_case "sigma1 decode no crash" [ bytes ] test_sigma1_decode_no_crash; 219 + test_case "sigma2 decode no crash" [ bytes ] test_sigma2_decode_no_crash; 220 + test_case "sigma3 decode no crash" [ bytes ] test_sigma3_decode_no_crash; 221 + (* Key derivation tests *) 222 + test_case "session keys deterministic" 223 + [ bytes; bytes; bytes; bytes; bytes ] 224 + test_session_keys_deterministic; 225 + test_case "destination id deterministic" 226 + [ bytes; bytes; bytes; bytes; bytes ] 227 + test_destination_id_deterministic; 228 + ] ) 223 229 224 - (* Key derivation tests *) 225 - add_test ~name:"case: session keys deterministic" 226 - [ bytes; bytes; bytes; bytes; bytes ] 227 - test_session_keys_deterministic; 228 - add_test ~name:"case: destination id deterministic" 229 - [ bytes; bytes; bytes; bytes; bytes ] 230 - test_destination_id_deterministic 230 + let run () = Crowbar.run "matter" [ suite ]
+15 -11
fuzz/fuzz_tlv.ml
··· 147 147 check_eq ~pp:(fun ppf s -> Fmt.pf ppf "%S" s) encoded re_encoded 148 148 | Error e -> fail ("Decode failed: " ^ e) 149 149 150 - let run () = 151 - add_test ~name:"tlv: encode-decode roundtrip" [ tlv_element_gen ] 152 - test_encode_decode_roundtrip; 153 - add_test ~name:"tlv: decode-encode roundtrip" [ bytes ] 154 - test_decode_encode_roundtrip; 155 - add_test ~name:"tlv: decode no crash" [ bytes ] test_decode_no_crash; 156 - add_test ~name:"tlv: encode no crash" [ tlv_element_gen ] test_encode_no_crash; 157 - add_test ~name:"tlv: pp no crash" [ tlv_element_gen ] test_pp_no_crash; 158 - add_test ~name:"tlv: multiple roundtrip" 159 - [ list tlv_element_gen ] 160 - test_multiple_roundtrip 150 + let suite = 151 + ( "tlv", 152 + [ 153 + test_case "encode-decode roundtrip" [ tlv_element_gen ] 154 + test_encode_decode_roundtrip; 155 + test_case "decode-encode roundtrip" [ bytes ] test_decode_encode_roundtrip; 156 + test_case "decode no crash" [ bytes ] test_decode_no_crash; 157 + test_case "encode no crash" [ tlv_element_gen ] test_encode_no_crash; 158 + test_case "pp no crash" [ tlv_element_gen ] test_pp_no_crash; 159 + test_case "multiple roundtrip" 160 + [ list tlv_element_gen ] 161 + test_multiple_roundtrip; 162 + ] ) 163 + 164 + let run () = Crowbar.run "matter" [ suite ]