DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TriggerCandidate_binding_test Namespace Reference

Functions

int test_trigger_candidate_data_defaults ()
int test_trigger_candidate_enum_and_conversion ()
int test_trigger_candidate_holder_from_bytes ()
int main ()

Function Documentation

◆ main()

int main ( )

Definition at line 124 of file TriggerCandidate_binding_test.py.

124def main() -> int:
125 failures = 0
126 failures += test_trigger_candidate_data_defaults()
127 failures += test_trigger_candidate_enum_and_conversion()
128 failures += test_trigger_candidate_holder_from_bytes()
129
130 if failures == 0:
131 print("TriggerCandidate binding tests passed")
132 else:
133 print(f"TriggerCandidate binding tests had {failures} failure(s)")
134
135 return failures
136
137
int main(int argc, char *argv[])

◆ test_trigger_candidate_data_defaults()

int test_trigger_candidate_data_defaults ( )

Definition at line 11 of file TriggerCandidate_binding_test.py.

11def test_trigger_candidate_data_defaults() -> int:
12 tc = TriggerCandidateData()
13
14 if tc is None:
15 print("FAIL: TriggerCandidateData default construction returned None")
16 return 1
17
18 size = TriggerCandidateData.sizeof()
19 if size != 48:
20 print(f"FAIL: TriggerCandidateData.sizeof() returned {size}, expected 48")
21 return 1
22
23 if TriggerCandidateData.s_trigger_candidate_version != 3:
24 print(
25 "FAIL: TriggerCandidateData.s_trigger_candidate_version expected 3, "
26 f"got {TriggerCandidateData.s_trigger_candidate_version}"
27 )
28 return 1
29
30 if tc.version != 3:
31 print(f"FAIL: TriggerCandidateData.version expected 3, got {tc.version}")
32 return 1
33
34 if tc.version != TriggerCandidateData.s_trigger_candidate_version:
35 print(
36 "FAIL: TriggerCandidateData.version should match s_trigger_candidate_version, "
37 f"got {tc.version} vs {TriggerCandidateData.s_trigger_candidate_version}"
38 )
39 return 1
40
41 if tc.time_start != (2**64 - 1):
42 print(f"FAIL: TriggerCandidateData.time_start expected 2**64-1, got {tc.time_start}")
43 return 1
44
45 if tc.time_end != (2**64 - 1):
46 print(f"FAIL: TriggerCandidateData.time_end expected 2**64-1, got {tc.time_end}")
47 return 1
48
49 if tc.time_candidate != (2**64 - 1):
50 print(
51 "FAIL: TriggerCandidateData.time_candidate expected 2**64-1, "
52 f"got {tc.time_candidate}"
53 )
54 return 1
55
56 if tc.detid != 2**8 - 1:
57 print(f"FAIL: TriggerCandidateData.detid expected 2**8 - 1, got {tc.detid}")
58 return 1
59
60 if tc.type != TriggerCandidateData.Type.kUnknown:
61 print(f"FAIL: TriggerCandidateData.type expected kUnknown, got {tc.type}")
62 return 1
63
64 if tc.algorithm != TriggerCandidateData.Algorithm.kUnknown:
65 print(f"FAIL: TriggerCandidateData.algorithm expected kUnknown, got {tc.algorithm}")
66 return 1
67
68 print("PASS: TriggerCandidateData default checks")
69 return 0
70
71

◆ test_trigger_candidate_enum_and_conversion()

int test_trigger_candidate_enum_and_conversion ( )

Definition at line 72 of file TriggerCandidate_binding_test.py.

72def test_trigger_candidate_enum_and_conversion() -> int:
73 if trigger_candidate_type_to_string(TriggerCandidateData.Type.kTiming) != "kTiming":
74 print("FAIL: trigger_candidate_type_to_string(kTiming) mismatch")
75 return 1
76
77 if string_to_trigger_candidate_type("kTiming") != TriggerCandidateData.Type.kTiming:
78 print("FAIL: string_to_trigger_candidate_type('kTiming') mismatch")
79 return 1
80
81 if string_to_trigger_candidate_type("notAType") != TriggerCandidateData.Type.kUnknown:
82 print("FAIL: string_to_trigger_candidate_type('notAType') should return kUnknown")
83 return 1
84
85 # Spot-check long-tail enum entries added recently.
86 for expected in [
87 TriggerCandidateData.Type.kCTBOffSpillSnapshot,
88 TriggerCandidateData.Type.kCTBCustomPulseTrain,
89 TriggerCandidateData.Type.kSSPLEDCalibration,
90 ]:
91 as_str = trigger_candidate_type_to_string(expected)
92 if string_to_trigger_candidate_type(as_str) != expected:
93 print(f"FAIL: conversion roundtrip mismatch for enum value '{as_str}'")
94 return 1
95
96 print("PASS: TriggerCandidateData enum conversion checks")
97 return 0
98
99

◆ test_trigger_candidate_holder_from_bytes()

int test_trigger_candidate_holder_from_bytes ( )

Definition at line 100 of file TriggerCandidate_binding_test.py.

100def test_trigger_candidate_holder_from_bytes() -> int:
101 payload = bytes(TriggerCandidateData.sizeof() + 8) # 8 for the uint64_t n_inputs in TriggerCandidate
102 tc = TriggerCandidate(payload)
103
104 if tc.sizeof() != len(payload):
105 print(f"FAIL: TriggerCandidate sizeof mismatch, got {tc.sizeof()}, expected {len(payload)}")
106 return 1
107
108 if len(tc) != 0:
109 print(f"FAIL: TriggerCandidate expected length 0 for zero payload, got {len(tc)}")
110 return 1
111
112 if tc.n_inputs() != 0:
113 print(f"FAIL: TriggerCandidate n_inputs expected 0 for zero payload, got {tc.n_inputs()}")
114 return 1
115
116 if len(tc.get_bytes()) != len(payload):
117 print("FAIL: TriggerCandidate get_bytes length mismatch")
118 return 1
119
120 print("PASS: TriggerCandidate holder bytes roundtrip with zero-input payload")
121 return 0
122
123