SpaceOS wire protocol codecs for host-guest communication
at main 29 lines 1.0 kB view raw
1open Space_wire 2 3let encode codec v = 4 let ws = Wire.Codec.wire_size codec in 5 let buf = Bytes.create ws in 6 Wire.Codec.encode codec v buf 0; 7 Bytes.unsafe_to_string buf 8 9let decode codec s = Wire.Codec.decode codec (Bytes.of_string s) 0 10 11let test_dp_roundtrip () = 12 let dp = 13 Dp_payload.v ~block_offset:100 ~block_count:10 ~dp_class:1 ~priority:2 14 ~name:"science.dat" ~crc32:0xDEADBEEF 15 in 16 let encoded = encode Dp_payload.codec dp in 17 Alcotest.(check int) "dp size" 80 (String.length encoded); 18 let decoded = decode Dp_payload.codec encoded in 19 Alcotest.(check int) "block_offset" 100 decoded.block_offset; 20 Alcotest.(check int) "block_count" 10 decoded.block_count; 21 Alcotest.(check int) "dp_class" 1 decoded.dp_class; 22 Alcotest.(check int) "priority" 2 decoded.priority; 23 Alcotest.(check string) 24 "name_string" "science.dat" 25 (Dp_payload.name_string decoded); 26 Alcotest.(check int) "crc32" 0xDEADBEEF decoded.crc32 27 28let suite = 29 ("dp_payload", [ Alcotest.test_case "roundtrip" `Quick test_dp_roundtrip ])