CCSDS Command Link Control Word (CLCW) for spacecraft command
0
fork

Configure Feed

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

Migrate from vendored crowbar to opam-pinned alcobar

- Remove vendored crowbar/ directory
- Replace all Crowbar references with Alcobar across 176 .ml files
- Update all fuzz dune files: crowbar → alcobar in libraries
- Remove 77 gen_corpus.ml files (alcobar handles corpus internally)
- Update dune-project files: crowbar → alcobar in dependencies
- Update merlint rules (e705, e726): Crowbar → Alcobar in checks,
docs, and examples
- Update merlint generated docs (index.html)

428 files changed, ~1200 lines removed net.

+5 -42
+2 -8
fuzz/dune
··· 1 1 (executable 2 2 (name fuzz) 3 3 (modules fuzz fuzz_clcw) 4 - (libraries clcw crowbar)) 5 - 6 - (executable 7 - (name gen_corpus) 8 - (modules gen_corpus) 9 - (libraries unix)) 4 + (libraries clcw alcobar)) 10 5 11 6 (rule 12 7 (alias runtest) ··· 22 17 (= %{profile} afl)) 23 18 (deps 24 19 (source_tree corpus) 25 - fuzz.exe 26 - gen_corpus.exe) 20 + fuzz.exe) 27 21 (action 28 22 (echo "AFL fuzzer built: %{exe:fuzz.exe}\n")))
+1 -1
fuzz/fuzz.ml
··· 1 - let () = Crowbar.run "clcw" [ Fuzz_clcw.suite ] 1 + let () = Alcobar.run "clcw" [ Fuzz_clcw.suite ]
+1 -1
fuzz/fuzz_clcw.ml
··· 3 3 SPDX-License-Identifier: MIT 4 4 ---------------------------------------------------------------------------*) 5 5 6 - open Crowbar 6 + open Alcobar 7 7 8 8 let test_roundtrip word = 9 9 let word = Int32.to_int word land 0xFFFFFFFF in
+1 -1
fuzz/fuzz_clcw.mli
··· 1 1 (** Fuzz tests for {\!Clcw}. *) 2 2 3 - val suite : string * Crowbar.test_case list 3 + val suite : string * Alcobar.test_case list 4 4 (** Test suite. *)
-31
fuzz/gen_corpus.ml
··· 1 - (** Generate seed corpus for CLCW 32-bit control word fuzz testing. *) 2 - 3 - let () = 4 - (try Unix.mkdir "corpus" 0o755 5 - with Unix.Unix_error (Unix.EEXIST, _, _) -> ()); 6 - let write name data = 7 - let oc = open_out_bin (Filename.concat "corpus" name) in 8 - output_string oc data; 9 - close_out oc 10 - in 11 - (* All zeros - standard 4-byte CLCW *) 12 - write "seed_000" "\x00\x00\x00\x00"; 13 - (* All ones *) 14 - write "seed_001" "\xff\xff\xff\xff"; 15 - (* Control word type = 0, version = 00, status = 0, COP = 01 *) 16 - write "seed_002" "\x00\x00\x00\x01"; 17 - (* Typical CLCW: type=0, version=0, status field=011, COP in effect=1 *) 18 - write "seed_003" "\x01\x80\x00\x01"; 19 - (* Lockout bit set *) 20 - write "seed_004" "\x00\x00\x80\x00"; 21 - (* Wait and retransmit bits set *) 22 - write "seed_005" "\x00\x00\x60\x00"; 23 - (* Report value = 0x7F *) 24 - write "seed_006" "\x00\x00\x00\x7f"; 25 - (* Mixed flags with VCID *) 26 - write "seed_007" "\x00\x3f\xe0\xff"; 27 - (* Empty input *) 28 - write "seed_008" ""; 29 - (* Short input - less than 4 bytes *) 30 - write "seed_009" "\xab\xcd"; 31 - print_endline "Generated 10 seed files in corpus/"