8
9 frame_size = HSIFrame.sizeof()
10 if frame_size <= 0:
11 print("HSIFrame sizeof test failed")
12 return 1
13 else:
14 print("HSIFrame sizeof test passed")
15
16 frame = HSIFrame()
17 print("HSIFrame default constructor test passed")
18
19
20 default_timestamp = frame.get_timestamp()
21 expected_default_timestamp = 0xFFFFFFFFFFFFFFFF
22 if default_timestamp != expected_default_timestamp:
23 print(f"HSIFrame default get_timestamp() test failed: got {hex(default_timestamp)}, expected {hex(expected_default_timestamp)}")
24 return 1
25 else:
26 print("HSIFrame default get_timestamp() test passed")
27
28 frame_from_bytes = HSIFrame(bytes(frame_size))
29 print("HSIFrame created from raw bytes")
30
31 if frame_from_bytes.version != 0:
32 print("HSIFrame version read from raw bytes test failed")
33 return 1
34
35 if frame_from_bytes.detector_id != 0:
36 print("HSIFrame detector_id read from raw bytes test failed")
37 return 1
38
39 if frame_from_bytes.crate != 0:
40 print("HSIFrame crate read from raw bytes test failed")
41 return 1
42
43 if frame_from_bytes.slot != 0:
44 print("HSIFrame slot read from raw bytes test failed")
45 return 1
46
47 if frame_from_bytes.link != 0:
48 print("HSIFrame link read from raw bytes test failed")
49 return 1
50
51 if frame_from_bytes.input_low != 0:
52 print("HSIFrame input_low read from raw bytes test failed")
53 return 1
54
55 if frame_from_bytes.input_high != 0:
56 print("HSIFrame input_high read from raw bytes test failed")
57 return 1
58
59 if frame_from_bytes.trigger != 0:
60 print("HSIFrame trigger read from raw bytes test failed")
61 return 1
62
63 if frame_from_bytes.sequence != 0:
64 print("HSIFrame sequence read from raw bytes test failed")
65 return 1
66
67 print("HSIFrame read-only property tests passed")
68
69 try:
70 frame_from_bytes.version = 1
71 print("HSIFrame version write should have raised an exception")
72 return 1
73 except Exception:
74 print("HSIFrame version attempted write correctly raised an exception")
75
76 timestamp = frame_from_bytes.get_timestamp()
77 expected_timestamp = 0x0
78 if timestamp != expected_timestamp:
79 print(f"HSIFrame get_timestamp() test failed: got {timestamp}, expected {expected_timestamp}")
80 return 1
81 else:
82 print("HSIFrame zeroed-bytes get_timestamp() test passed")
83
84 print("\nAll HSIFrame Python binding tests passed")
85 return 0
86
87
int main(int argc, const char *argv[])