open Space_wire let encode codec v = let ws = Wire.Codec.wire_size codec in let buf = Bytes.create ws in Wire.Codec.encode codec v buf 0; Bytes.unsafe_to_string buf let decode codec s = Wire.Codec.decode codec (Bytes.of_string s) 0 let test_dp_roundtrip () = let dp = Dp_payload.v ~block_offset:100 ~block_count:10 ~dp_class:1 ~priority:2 ~name:"science.dat" ~crc32:0xDEADBEEF in let encoded = encode Dp_payload.codec dp in Alcotest.(check int) "dp size" 80 (String.length encoded); let decoded = decode Dp_payload.codec encoded in Alcotest.(check int) "block_offset" 100 decoded.block_offset; Alcotest.(check int) "block_count" 10 decoded.block_count; Alcotest.(check int) "dp_class" 1 decoded.dp_class; Alcotest.(check int) "priority" 2 decoded.priority; Alcotest.(check string) "name_string" "science.dat" (Dp_payload.name_string decoded); Alcotest.(check int) "crc32" 0xDEADBEEF decoded.crc32 let suite = ("dp_payload", [ Alcotest.test_case "roundtrip" `Quick test_dp_roundtrip ])