APID-based virtual switch for SpaceOS inter-guest routing
at main 55 lines 2.0 kB view raw
1let test_apid_range () = 2 let r = Space_net.Config.apid_range 0x010 0x01F in 3 Alcotest.(check bool) "lo in range" true (Space_net.Config.in_range r 0x010); 4 Alcotest.(check bool) "hi in range" true (Space_net.Config.in_range r 0x01F); 5 Alcotest.(check bool) "mid in range" true (Space_net.Config.in_range r 0x015); 6 Alcotest.(check bool) "below range" false (Space_net.Config.in_range r 0x00F); 7 Alcotest.(check bool) "above range" false (Space_net.Config.in_range r 0x020) 8 9let test_system_range () = 10 Alcotest.(check bool) 11 "0x001 is system" true 12 (Space_net.Config.in_range Space_net.Config.system_range 0x001); 13 Alcotest.(check bool) 14 "0x00F is system" true 15 (Space_net.Config.in_range Space_net.Config.system_range 0x00F); 16 Alcotest.(check bool) 17 "0x010 not system" false 18 (Space_net.Config.in_range Space_net.Config.system_range 0x010) 19 20let test_idle_apid () = 21 Alcotest.(check int) "idle" 0x7FF Space_net.Config.idle_apid 22 23let test_socket_path () = 24 let config : Space_net.Config.t = 25 { 26 tenants = 27 [ 28 { 29 name = "cam"; 30 apids = Space_net.Config.apid_range 0x010 0x01F; 31 can_send_to = []; 32 }; 33 ]; 34 socket_dir = "/tmp/test"; 35 } 36 in 37 let tenant = List.hd config.tenants in 38 Alcotest.(check string) 39 "socket path" "/tmp/test/cam.sock" 40 (Space_net.Config.socket_path config tenant) 41 42let test_pp () = 43 let config : Space_net.Config.t = { tenants = []; socket_dir = "/tmp/x" } in 44 let s = Fmt.to_to_string Space_net.Config.pp config in 45 Alcotest.(check bool) "contains tenants" true (String.length s > 0) 46 47let suite = 48 ( "config", 49 [ 50 Alcotest.test_case "apid range" `Quick test_apid_range; 51 Alcotest.test_case "system range" `Quick test_system_range; 52 Alcotest.test_case "idle apid" `Quick test_idle_apid; 53 Alcotest.test_case "socket path" `Quick test_socket_path; 54 Alcotest.test_case "pp" `Quick test_pp; 55 ] )