SpaceOS wire protocol codecs for host-guest communication
at main 43 lines 1.7 kB view raw
1open Space_wire 2 3let test_shared_mem_heartbeat () = 4 let buf = Bytes.make Shared_mem.page_size '\x00' in 5 Shared_mem.set_heartbeat buf 42L; 6 Alcotest.(check int64) "heartbeat" 42L (Shared_mem.heartbeat buf) 7 8let test_shared_mem_mission_time () = 9 let buf = Bytes.make Shared_mem.page_size '\x00' in 10 let t = Shared_mem.{ seconds = 1000L; nanos = 500_000_000 } in 11 Shared_mem.write_mission_time buf t; 12 let t' = Shared_mem.read_mission_time buf in 13 Alcotest.(check int64) "seconds" t.seconds t'.seconds; 14 Alcotest.(check int) "nanos" t.nanos t'.nanos; 15 (* time_version should be even after write *) 16 let v = Shared_mem.time_version buf in 17 Alcotest.(check bool) "version even" true (v land 1 = 0); 18 Alcotest.(check bool) "version > 0" true (v > 0) 19 20let test_shared_mem_health_string () = 21 let buf = Bytes.make Shared_mem.page_size '\x00' in 22 Shared_mem.set_health_string buf "nominal"; 23 Alcotest.(check string) "health" "nominal" (Shared_mem.health_string buf) 24 25let test_shared_mem_command_word () = 26 let buf = Bytes.make Shared_mem.page_size '\x00' in 27 Shared_mem.set_host_cmd buf Shared_mem.cmd_shutdown; 28 let cmd = Shared_mem.host_cmd buf in 29 Alcotest.(check bool) 30 "shutdown set" true 31 (cmd land Shared_mem.cmd_shutdown <> 0); 32 Alcotest.(check bool) 33 "param_reload clear" true 34 (cmd land Shared_mem.cmd_param_reload = 0) 35 36let suite = 37 ( "shared_mem", 38 [ 39 Alcotest.test_case "heartbeat" `Quick test_shared_mem_heartbeat; 40 Alcotest.test_case "mission time" `Quick test_shared_mem_mission_time; 41 Alcotest.test_case "health string" `Quick test_shared_mem_health_string; 42 Alcotest.test_case "command word" `Quick test_shared_mem_command_word; 43 ] )