wiliot-certificate 4.4.0a1__py3-none-any.whl → 4.4.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- brg_certificate/cert_results.py +2 -2
- brg_certificate/certificate_bcc_test_list.txt +0 -2
- brg_certificate/tests/calibration/interval_test/interval_test.json +1 -1
- brg_certificate/tests/calibration/interval_test/interval_test.py +2 -3
- brg_certificate/tests/calibration/output_power_test/output_power_test.json +1 -1
- brg_certificate/tests/calibration/output_power_test/output_power_test.py +2 -3
- brg_certificate/tests/calibration/pattern_test/pattern_test.json +1 -1
- brg_certificate/tests/calibration/pattern_test/pattern_test.py +4 -8
- brg_certificate/tests/datapath/aging_test/aging_test.py +3 -4
- brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +4 -7
- brg_certificate/tests/datapath/output_power_test/output_power_test.json +1 -1
- brg_certificate/tests/datapath/output_power_test/output_power_test.py +1 -3
- brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +1 -1
- brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +2 -3
- brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +1 -3
- brg_certificate/tests/datapath/pattern_test/pattern_test.json +1 -1
- brg_certificate/tests/datapath/pattern_test/pattern_test.py +1 -3
- brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +1 -1
- brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +1 -3
- brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -1
- brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +1 -3
- brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +1 -1
- brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +2 -3
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +1 -1
- brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +2 -3
- brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +1 -1
- brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +2 -3
- brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +9 -6
- brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +9 -6
- brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +1 -1
- brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +17 -11
- brg_certificate/tests/datapath/stress_test/stress_test.json +1 -1
- brg_certificate/tests/datapath/stress_test/stress_test.py +15 -10
- brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +1 -1
- brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +2 -3
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +1 -1
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +1 -3
- brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +1 -1
- brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +1 -3
- brg_certificate/tests/energy2400/output_power_test/output_power_test.json +1 -1
- brg_certificate/tests/energy2400/output_power_test/output_power_test.py +1 -3
- brg_certificate/tests/energy2400/pattern_test/pattern_test.json +1 -1
- brg_certificate/tests/energy2400/pattern_test/pattern_test.py +1 -3
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +1 -1
- brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +2 -3
- brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +1 -1
- brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +1 -3
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +1 -1
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +2 -3
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +1 -1
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +1 -3
- brg_certificate/wltPb_pb2.py +4 -4
- brg_certificate/wltPb_pb2.pyi +2 -1
- gw_certificate/common/serialization_formatter.py +14 -1
- gw_certificate/gw_certificate.py +2 -2
- gw_certificate/interface/4.4.91_app.zip +0 -0
- gw_certificate/interface/{4.4.88_sd_bl_app.zip → 4.4.91_sd_bl_app.zip} +0 -0
- gw_certificate/interface/flash_fw.py +90 -0
- gw_certificate/interface/uart_if.py +1 -1
- gw_certificate/tests/actions.py +1 -1
- gw_certificate/tests/downlink.py +2 -2
- gw_certificate/tests/generic.py +4 -3
- gw_certificate/tests/static/generated_packet_table.py +16 -16
- gw_certificate/tests/static/packet_table.csv +10052 -10052
- gw_certificate/tests/static/uplink_defines.py +1 -1
- gw_certificate/tests/throughput.py +1 -1
- gw_certificate/tests/uplink.py +38 -19
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/METADATA +73 -32
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/RECORD +73 -72
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/WHEEL +1 -1
- gw_certificate/interface/4.4.88_app.zip +0 -0
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/entry_points.txt +0 -0
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/licenses/LICENSE +0 -0
- {wiliot_certificate-4.4.0a1.dist-info → wiliot_certificate-4.4.2.dist-info}/top_level.txt +0 -0
brg_certificate/cert_results.py
CHANGED
|
@@ -117,7 +117,7 @@ def generate_results_files(html=True, pdf=True, failures=0, skipped=0, start_tim
|
|
|
117
117
|
f.write("<p><a href='https://bitbucket.org/wiliot/wiliot-nordic-firmware/commits/{}'>Commit page on bitbucket</a><hr>".format(os.environ['BITBUCKET_COMMIT']))
|
|
118
118
|
f.write(update_status + "<br><br>")
|
|
119
119
|
f.write(error + "<br><br>")
|
|
120
|
-
f.write(f"{RUN_DUR}: {str(duration).split(
|
|
120
|
+
f.write(f"{RUN_DUR}: {str(duration).split('.')[0]} <br><br>")
|
|
121
121
|
if brg:
|
|
122
122
|
f.write(f"{BRG} {BLE_VER}: {brg.version} <br><br>")
|
|
123
123
|
elif tests:
|
|
@@ -130,7 +130,7 @@ def generate_results_files(html=True, pdf=True, failures=0, skipped=0, start_tim
|
|
|
130
130
|
f.write("<p><a href='https://bitbucket.org/wiliot/wiliot-nordic-firmware/commits/{}'>Commit page on bitbucket</a><hr>".format(os.environ['BITBUCKET_COMMIT']))
|
|
131
131
|
f.write(update_status + "<br><br>")
|
|
132
132
|
f.write(f"{RUN_DATETIME}: {start_time.strftime('%d/%m/%Y, %H:%M:%S')} <br><br>")
|
|
133
|
-
f.write(f"{RUN_DUR}: {str(duration).split(
|
|
133
|
+
f.write(f"{RUN_DUR}: {str(duration).split('.')[0]} <br><br>")
|
|
134
134
|
f.write(f"{CERT_VER}: {CERT_VERSION} <br><br>")
|
|
135
135
|
if internal_brg:
|
|
136
136
|
f.write(f"{SIM} {BLE_MAC_ADDRESS}: {internal_brg.id_str} <br><br>")
|
|
@@ -14,8 +14,6 @@ energy2400/pattern_test ENERGY_PATTERN_2_4_NO_ENERGIZING ENERGY_PATTERN_2_4_CHAN
|
|
|
14
14
|
energy2400/output_power_test -12 -8 -4 0 2 3
|
|
15
15
|
energy2400/duty_cycle_test 1 25 50 75
|
|
16
16
|
energy2400/signal_indicator_test internal_brg rssi_threshold brg0_rx_brg1_tx brg0_none_brg1_rx brg0_rxtx_brg1_rxtx brg0_tx_brg1_none
|
|
17
|
-
energy2400/signal_indicator_ble5_10_500k_test internal_brg rssi_threshold brg0_tx_brg1_rx brg0_none_brg1_rx brg0_rxtx_brg1_rxtx brg0_tx_brg1_none
|
|
18
|
-
energy2400/signal_indicator_ble5_10_250k_test internal_brg rssi_threshold brg0_tx_brg1_rx brg0_none_brg1_rx brg0_rxtx_brg1_rxtx brg0_tx_brg1_none
|
|
19
17
|
|
|
20
18
|
# ------------- energy_sub1g -------------
|
|
21
19
|
energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_SINGLE_TONE_915000 SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"initialCondition": "Bridge configured to defaults",
|
|
7
7
|
"procedure": ["Test prolog", "Configurations", "Test epilog and revert to defaults"],
|
|
8
8
|
"expectedOutcome": "All values configured successfully",
|
|
9
|
-
"mandatory":
|
|
9
|
+
"mandatory": 0,
|
|
10
10
|
"multiBridgeTest": 0,
|
|
11
11
|
"gwOnlyTest": 0,
|
|
12
12
|
"internalBridge": 1,
|
|
@@ -23,7 +23,6 @@ def run(test):
|
|
|
23
23
|
if test.rc == TEST_FAILED:
|
|
24
24
|
if test.exit_on_param_failure:
|
|
25
25
|
break # break the whole for loop and keep the test as failed
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
continue
|
|
26
|
+
test.reset_result() # reset result and continue to next param
|
|
27
|
+
|
|
29
28
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[calib_module])
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -23,7 +23,6 @@ def run(test):
|
|
|
23
23
|
if test.rc == TEST_FAILED:
|
|
24
24
|
if test.exit_on_param_failure:
|
|
25
25
|
break # break the whole for loop and keep the test as failed
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
continue
|
|
26
|
+
test.reset_result() # reset result and continue to next param
|
|
27
|
+
|
|
29
28
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[calib_module])
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - Configure the BRG and verify packet reception functionality (for specific patterns)",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully and packets received only on included channels. When configuring the brg to CALIBRATION_PATTERN_38_38_39 we configure the GW to rx channel 37 and make sure GW doesn't get any pixels",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -29,8 +29,8 @@ def run(test):
|
|
|
29
29
|
if test.exit_on_param_failure:
|
|
30
30
|
break # break the whole for loop and keep the test as failed
|
|
31
31
|
else:
|
|
32
|
-
test.reset_result() # reset result
|
|
33
|
-
continue
|
|
32
|
+
test.reset_result() # reset result
|
|
33
|
+
continue # skip the current phase and continue to next param
|
|
34
34
|
cert_common.wait_time_n_print(CLEAR_DATA_PATH_TIMEOUT)
|
|
35
35
|
# MQTT scan
|
|
36
36
|
if test.data == DATA_SIMULATION:
|
|
@@ -60,9 +60,7 @@ def run(test):
|
|
|
60
60
|
if test.rc == TEST_FAILED:
|
|
61
61
|
if test.exit_on_param_failure:
|
|
62
62
|
break # break the whole for loop and keep the test as failed
|
|
63
|
-
|
|
64
|
-
test.reset_result() # reset result and continue to next param
|
|
65
|
-
continue
|
|
63
|
+
test.reset_result() # reset result and continue to next param
|
|
66
64
|
else:
|
|
67
65
|
test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=calib_module)[0]
|
|
68
66
|
generate_log_file(test, param.name)
|
|
@@ -72,8 +70,6 @@ def run(test):
|
|
|
72
70
|
if test.rc == TEST_FAILED:
|
|
73
71
|
if test.exit_on_param_failure:
|
|
74
72
|
break # break the whole for loop and keep the test as failed
|
|
75
|
-
|
|
76
|
-
test.reset_result() # reset result and continue to next param
|
|
77
|
-
continue
|
|
73
|
+
test.reset_result() # reset result and continue to next param
|
|
78
74
|
|
|
79
75
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[calib_module, datapath_module])
|
|
@@ -135,10 +135,9 @@ def run(test):
|
|
|
135
135
|
test.add_phase_reason(param.name, test.reason)
|
|
136
136
|
if test.rc == TEST_FAILED:
|
|
137
137
|
if test.exit_on_param_failure:
|
|
138
|
-
break
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
continue
|
|
138
|
+
break # break the whole for loop and keep the test as failed
|
|
139
|
+
test.reset_result() # reset result and continue to next param
|
|
140
|
+
|
|
142
141
|
time.sleep(5)
|
|
143
142
|
|
|
144
143
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
|
|
@@ -60,13 +60,11 @@ def run(test):
|
|
|
60
60
|
|
|
61
61
|
# compare the numbers of tags that come from the brg, success in 95% from number of tags (value) or more.
|
|
62
62
|
if num_of_tags < (param.value * 0.95):
|
|
63
|
-
test.add_reason(f"
|
|
64
|
-
test.add_reason(f"HB: {num_of_tags_HB}, Df: {num_of_tags}")
|
|
63
|
+
test.add_reason(f"Received {num_of_tags} pixels, expected: {param.name} pixels!")
|
|
65
64
|
|
|
66
65
|
# compare the counter tags in the HB packet
|
|
67
66
|
if num_of_tags_HB < 0.95 * param.value or num_of_tags_HB > (param.value + 100):
|
|
68
|
-
test.add_reason(f"
|
|
69
|
-
test.add_reason(f"HB: {num_of_tags_HB}, Df: {num_of_tags}")
|
|
67
|
+
test.add_reason(f"HB counter: {num_of_tags_HB}, expected: {param.name}!")
|
|
70
68
|
# param epilog
|
|
71
69
|
time.sleep(10)
|
|
72
70
|
generate_log_file(test, param.name)
|
|
@@ -75,8 +73,7 @@ def run(test):
|
|
|
75
73
|
test.add_phase_reason(param.name, test.reason)
|
|
76
74
|
if test.rc == TEST_FAILED:
|
|
77
75
|
if test.exit_on_param_failure:
|
|
78
|
-
break
|
|
79
|
-
|
|
80
|
-
test.reset_result()
|
|
76
|
+
break # break the whole for loop and keep the test as failed
|
|
77
|
+
test.reset_result() # reset result and continue to next param
|
|
81
78
|
|
|
82
79
|
return cert_common.test_epilog(test)
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -23,8 +23,6 @@ def run(test):
|
|
|
23
23
|
if test.rc == TEST_FAILED:
|
|
24
24
|
if test.exit_on_param_failure:
|
|
25
25
|
break # break the whole for loop and keep the test as failed
|
|
26
|
-
|
|
27
|
-
test.reset_result() # reset result and continue to next param
|
|
28
|
-
continue
|
|
26
|
+
test.reset_result() # reset result and continue to next param
|
|
29
27
|
|
|
30
28
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - Configure the pacer interval, Generate GEN3 pixels packets & scan for packets in the bridge, Compare pacer interval mean per pixel to the configured value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -45,7 +45,6 @@ def run(test):
|
|
|
45
45
|
if test.rc == TEST_FAILED:
|
|
46
46
|
if test.exit_on_param_failure:
|
|
47
47
|
break # break the whole for loop and keep the test as failed
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
continue
|
|
48
|
+
test.reset_result() # reset result and continue to next param
|
|
49
|
+
|
|
51
50
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
|
|
@@ -47,8 +47,6 @@ def run(test):
|
|
|
47
47
|
if test.rc == TEST_FAILED:
|
|
48
48
|
if test.exit_on_param_failure:
|
|
49
49
|
break # break the whole for loop and keep the test as failed
|
|
50
|
-
|
|
51
|
-
test.reset_result() # reset result and continue to next param
|
|
52
|
-
continue
|
|
50
|
+
test.reset_result() # reset result and continue to next param
|
|
53
51
|
|
|
54
52
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module])
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -24,7 +24,5 @@ def run(test):
|
|
|
24
24
|
if test.rc == TEST_FAILED:
|
|
25
25
|
if test.exit_on_param_failure:
|
|
26
26
|
break # break the whole for loop and keep the test as failed
|
|
27
|
-
|
|
28
|
-
test.reset_result() # reset result and continue to next param
|
|
29
|
-
continue
|
|
27
|
+
test.reset_result() # reset result and continue to next param
|
|
30
28
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Repeat for all given packet filter values",
|
|
12
12
|
"Test epilog and revert to defaults"],
|
|
13
13
|
"expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
|
|
14
|
-
"mandatory":
|
|
14
|
+
"mandatory": 0,
|
|
15
15
|
"multiBridgeTest": 0,
|
|
16
16
|
"gwOnlyTest": 0,
|
|
17
17
|
"internalBridge": 1,
|
|
@@ -54,8 +54,6 @@ def run(test):
|
|
|
54
54
|
if test.rc == TEST_FAILED:
|
|
55
55
|
if test.exit_on_param_failure:
|
|
56
56
|
break # break the whole for loop and keep the test as failed
|
|
57
|
-
|
|
58
|
-
test.reset_result() # reset result and continue to next param
|
|
59
|
-
continue
|
|
57
|
+
test.reset_result() # reset result and continue to next param
|
|
60
58
|
|
|
61
59
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Repeat for all given packet filter values",
|
|
12
12
|
"Test epilog and revert to defaults"],
|
|
13
13
|
"expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
|
|
14
|
-
"mandatory":
|
|
14
|
+
"mandatory": 0,
|
|
15
15
|
"multiBridgeTest": 0,
|
|
16
16
|
"gwOnlyTest": 0,
|
|
17
17
|
"internalBridge": 1,
|
|
@@ -55,8 +55,6 @@ def run(test):
|
|
|
55
55
|
if test.rc == TEST_FAILED:
|
|
56
56
|
if test.exit_on_param_failure:
|
|
57
57
|
break # break the whole for loop and keep the test as failed
|
|
58
|
-
|
|
59
|
-
test.reset_result() # reset result and continue to next param
|
|
60
|
-
continue
|
|
58
|
+
test.reset_result() # reset result and continue to next param
|
|
61
59
|
|
|
62
60
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module])
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"Repeat for all given packet filter values",
|
|
12
12
|
"Test epilog and revert to defaults"],
|
|
13
13
|
"expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
|
|
14
|
-
"mandatory":
|
|
14
|
+
"mandatory": 0,
|
|
15
15
|
"multiBridgeTest": 0,
|
|
16
16
|
"gwOnlyTest": 0,
|
|
17
17
|
"internalBridge": 1,
|
|
@@ -55,7 +55,6 @@ def run(test):
|
|
|
55
55
|
if test.rc == TEST_FAILED:
|
|
56
56
|
if test.exit_on_param_failure:
|
|
57
57
|
break # break the whole for loop and keep the test as failed
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
continue
|
|
58
|
+
test.reset_result() # reset result and continue to next param
|
|
59
|
+
|
|
61
60
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module])
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"Checking for packets violating RSSI threshold",
|
|
10
10
|
"Test epilog and revert to defaults"],
|
|
11
11
|
"expectedOutcome": "RSSI Threshold configured successfully and no pixel packets with RSSI weaker than the threshold have been echoed.",
|
|
12
|
-
"mandatory":
|
|
12
|
+
"mandatory": 0,
|
|
13
13
|
"multiBridgeTest": 0,
|
|
14
14
|
"gwOnlyTest": 0,
|
|
15
15
|
"internalBridge": 1,
|
|
@@ -71,7 +71,6 @@ def run(test):
|
|
|
71
71
|
if test.rc == TEST_FAILED:
|
|
72
72
|
if test.exit_on_param_failure:
|
|
73
73
|
break # break the whole for loop and keep the test as failed
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
continue
|
|
74
|
+
test.reset_result() # reset result and continue to next param
|
|
75
|
+
|
|
77
76
|
return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module])
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|
|
@@ -39,7 +39,6 @@ def run(test):
|
|
|
39
39
|
if test.rc == TEST_FAILED:
|
|
40
40
|
if test.exit_on_param_failure:
|
|
41
41
|
break # break the whole for loop and keep the test as failed
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
continue
|
|
42
|
+
test.reset_result() # reset result and continue to next param
|
|
43
|
+
|
|
45
44
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module], ble5=ble5_state)
|
|
@@ -187,16 +187,20 @@ def diff_rate(test, datapath_module):
|
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
def run(test):
|
|
190
|
+
|
|
190
191
|
# "Test prolog"
|
|
191
192
|
datapath_module = test.active_brg.datapath
|
|
192
|
-
test = cert_common.test_prolog(test)
|
|
193
|
-
if test.rc == TEST_FAILED:
|
|
194
|
-
return cert_common.test_epilog(test)
|
|
195
193
|
|
|
194
|
+
test = cert_common.test_prolog(test)
|
|
196
195
|
pacer_interval = 1
|
|
197
196
|
test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
|
|
198
197
|
if test.rc == TEST_FAILED:
|
|
199
198
|
test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
|
|
199
|
+
name = test.phases[0].name
|
|
200
|
+
test.set_phase_rc(name, test.rc)
|
|
201
|
+
test.add_phase_reason(name, test.reason)
|
|
202
|
+
|
|
203
|
+
if test.rc == TEST_FAILED:
|
|
200
204
|
return cert_common.test_epilog(test)
|
|
201
205
|
|
|
202
206
|
RX_RATE_TEST_MAP = {"mid_values": mid_values, "diff_pacer": diff_pacer, "min_value": min_value,
|
|
@@ -211,7 +215,6 @@ def run(test):
|
|
|
211
215
|
if test.rc == TEST_FAILED:
|
|
212
216
|
if test.exit_on_param_failure:
|
|
213
217
|
break # break the whole for loop and keep the test as failed
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
continue
|
|
218
|
+
test.reset_result() # reset result and continue to next param
|
|
219
|
+
|
|
217
220
|
return cert_common.test_epilog(test)
|
|
@@ -187,16 +187,20 @@ def diff_rate(test, datapath_module):
|
|
|
187
187
|
|
|
188
188
|
|
|
189
189
|
def run(test):
|
|
190
|
+
|
|
190
191
|
# "Test prolog"
|
|
191
192
|
datapath_module = test.active_brg.datapath
|
|
192
|
-
test = cert_common.test_prolog(test)
|
|
193
|
-
if test.rc == TEST_FAILED:
|
|
194
|
-
return cert_common.test_epilog(test)
|
|
195
193
|
|
|
194
|
+
test = cert_common.test_prolog(test)
|
|
196
195
|
pacer_interval = 1
|
|
197
196
|
test = cert_config.brg_configure(test, fields=[BRG_PACER_INTERVAL], values=[pacer_interval], module=datapath_module)[0]
|
|
198
197
|
if test.rc == TEST_FAILED:
|
|
199
198
|
test.add_reason(f"Didn't succeed to config pacer interval {pacer_interval}")
|
|
199
|
+
name = test.phases[0].name
|
|
200
|
+
test.set_phase_rc(name, test.rc)
|
|
201
|
+
test.add_phase_reason(name, test.reason)
|
|
202
|
+
|
|
203
|
+
if test.rc == TEST_FAILED:
|
|
200
204
|
return cert_common.test_epilog(test)
|
|
201
205
|
|
|
202
206
|
RX_RATE_TEST_MAP = {"mid_values": mid_values, "diff_pacer": diff_pacer, "min_value": min_value,
|
|
@@ -211,7 +215,6 @@ def run(test):
|
|
|
211
215
|
if test.rc == TEST_FAILED:
|
|
212
216
|
if test.exit_on_param_failure:
|
|
213
217
|
break # break the whole for loop and keep the test as failed
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
continue
|
|
218
|
+
test.reset_result() # reset result and continue to next param
|
|
219
|
+
|
|
217
220
|
return cert_common.test_epilog(test)
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"rep 1 - config pacer interval 7, then check repetition value = 1, pacer increment = 0, num of tags = all tags",
|
|
14
14
|
"Test epilog"],
|
|
15
15
|
"expectedOutcome": "all metrics values will be as expected then the bridge is working correctly and the algorithms are working correctly",
|
|
16
|
-
"mandatory":
|
|
16
|
+
"mandatory": 0,
|
|
17
17
|
"multiBridgeTest": 0,
|
|
18
18
|
"gwOnlyTest": 0,
|
|
19
19
|
"internalBridge": 0,
|
|
@@ -11,8 +11,13 @@ import time
|
|
|
11
11
|
|
|
12
12
|
def metric_checking_HB(test, check, mgmt_type_list, tx_queue_expected, pacer_increment_expected):
|
|
13
13
|
if not mgmt_type_list:
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if check:
|
|
15
|
+
test.add_reason("\nDidn't find HB pkt, therefore skip all checks\n")
|
|
16
|
+
print("Didn't find HB pkt, therefore will not check tx_queue and pacer increment")
|
|
17
|
+
else:
|
|
18
|
+
test.rc = TEST_PASSED # skip the rc result if we didn't find HB pkt
|
|
19
|
+
print("Didn't find HB pkt, therefore will not check tx_queue and pacer increment")
|
|
20
|
+
|
|
16
21
|
else:
|
|
17
22
|
# check tx queue
|
|
18
23
|
watermarks = [pkt.tx_queue_watermark for pkt in mgmt_type_list]
|
|
@@ -30,7 +35,7 @@ def metric_checking_HB(test, check, mgmt_type_list, tx_queue_expected, pacer_inc
|
|
|
30
35
|
print(f"\npacer_increment value is wrong\nexpected: {pacer_increment_expected}\ngot: {average_pacer_increment_HB}")
|
|
31
36
|
if check:
|
|
32
37
|
test.rc = TEST_FAILED
|
|
33
|
-
test.add_reason(f"pacer_increment:{average_pacer_increment_HB}")
|
|
38
|
+
test.add_reason(f"pacer_increment: {average_pacer_increment_HB} expected: {pacer_increment_expected}")
|
|
34
39
|
else:
|
|
35
40
|
print(f"\naverage pacer_increment from HB: {average_pacer_increment_HB}\n")
|
|
36
41
|
if check:
|
|
@@ -96,7 +101,7 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
|
|
|
96
101
|
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
97
102
|
return test
|
|
98
103
|
else:
|
|
99
|
-
# in case it failed because the repetition value.
|
|
104
|
+
# in case it failed because the repetition value. the reason has been added in the metric_checking_df function
|
|
100
105
|
return test
|
|
101
106
|
|
|
102
107
|
time.sleep(30)
|
|
@@ -107,8 +112,8 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
|
|
|
107
112
|
hbs = [p[MGMT_PKT].pkt for p in hbs]
|
|
108
113
|
print("result of first df\n")
|
|
109
114
|
check = False
|
|
110
|
-
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
111
115
|
test = metric_checking_df(test, check, pacer_interval, df, repetition_value_expected, brg_latency_expected, num_of_sim_tags)
|
|
116
|
+
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
112
117
|
time.sleep(30)
|
|
113
118
|
# second df
|
|
114
119
|
df = cert_common.data_scan(test, scan_time=60, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
@@ -117,8 +122,10 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
|
|
|
117
122
|
hbs = [p[MGMT_PKT].pkt for p in hbs]
|
|
118
123
|
print("result of second df\n")
|
|
119
124
|
check = True
|
|
120
|
-
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
121
125
|
test = metric_checking_df(test, check, pacer_interval, df, repetition_value_expected, brg_latency_expected, num_of_sim_tags)
|
|
126
|
+
if param.name != "rep1":
|
|
127
|
+
check = False
|
|
128
|
+
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
122
129
|
return test
|
|
123
130
|
|
|
124
131
|
|
|
@@ -147,7 +154,7 @@ def rep1(test, param, datapath_module, num_of_sim_tags):
|
|
|
147
154
|
pacer_interval = 7
|
|
148
155
|
test = combination_func(test, param, datapath_module, pacer_interval=pacer_interval, num_of_sim_tags=num_of_sim_tags,
|
|
149
156
|
repetition_value_expected=[1, 2], tx_queue_expected=[20, 40],
|
|
150
|
-
pacer_increment_expected=[0,
|
|
157
|
+
pacer_increment_expected=[0, 25], brg_latency_expected=[200, 300])
|
|
151
158
|
time.sleep(5)
|
|
152
159
|
return test
|
|
153
160
|
|
|
@@ -191,10 +198,9 @@ def run(test):
|
|
|
191
198
|
test.add_phase_reason(param.name, test.reason)
|
|
192
199
|
if test.rc == TEST_FAILED:
|
|
193
200
|
if test.exit_on_param_failure:
|
|
194
|
-
break
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
time.sleep(5)
|
|
201
|
+
break # break the whole for loop and keep the test as failed
|
|
202
|
+
test.reset_result() # reset result and continue to next param
|
|
203
|
+
|
|
198
204
|
pixel_sim_thread.stop()
|
|
199
205
|
# Re-enable unified packets deduplication
|
|
200
206
|
cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 1")
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"rep 1 - config pacer interval 7, then check repetition value = 1, pacer increment = 0, num of tags = all tags",
|
|
14
14
|
"Test epilog"],
|
|
15
15
|
"expectedOutcome": "all metrics values will be as expected then the bridge is working correctly and the algorithms are working correctly",
|
|
16
|
-
"mandatory":
|
|
16
|
+
"mandatory": 0,
|
|
17
17
|
"multiBridgeTest": 0,
|
|
18
18
|
"gwOnlyTest": 0,
|
|
19
19
|
"internalBridge": 0,
|
|
@@ -11,8 +11,12 @@ import time
|
|
|
11
11
|
|
|
12
12
|
def metric_checking_HB(test, check, mgmt_type_list, tx_queue_expected, pacer_increment_expected):
|
|
13
13
|
if not mgmt_type_list:
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
if check:
|
|
15
|
+
test.add_reason("\nDidn't find HB pkt, therefore skip all checks\n")
|
|
16
|
+
print("Didn't find HB pkt, therefore will not check tx_queue and pacer increment")
|
|
17
|
+
else:
|
|
18
|
+
test.rc = TEST_PASSED # skip the rc result if we didn't find HB pkt
|
|
19
|
+
print("Didn't find HB pkt, therefore will not check tx_queue and pacer increment")
|
|
16
20
|
else:
|
|
17
21
|
# check tx queue
|
|
18
22
|
watermarks = [pkt.tx_queue_watermark for pkt in mgmt_type_list]
|
|
@@ -30,7 +34,7 @@ def metric_checking_HB(test, check, mgmt_type_list, tx_queue_expected, pacer_inc
|
|
|
30
34
|
print(f"\npacer_increment value is wrong\nexpected: {pacer_increment_expected}\ngot: {average_pacer_increment_HB}")
|
|
31
35
|
if check:
|
|
32
36
|
test.rc = TEST_FAILED
|
|
33
|
-
test.add_reason(f"pacer_increment:{average_pacer_increment_HB}")
|
|
37
|
+
test.add_reason(f"pacer_increment: {average_pacer_increment_HB} expected: {pacer_increment_expected}")
|
|
34
38
|
else:
|
|
35
39
|
print(f"\naverage pacer_increment from HB: {average_pacer_increment_HB}\n")
|
|
36
40
|
if check:
|
|
@@ -107,8 +111,8 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
|
|
|
107
111
|
hbs = [p[MGMT_PKT].pkt for p in hbs]
|
|
108
112
|
print("result of first df\n")
|
|
109
113
|
check = False
|
|
110
|
-
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
111
114
|
test = metric_checking_df(test, check, pacer_interval, df, repetition_value_expected, brg_latency_expected, num_of_sim_tags)
|
|
115
|
+
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
112
116
|
time.sleep(30)
|
|
113
117
|
# second df
|
|
114
118
|
df = cert_common.data_scan(test, scan_time=60, brg_data=(not test.internal_brg), gw_data=test.internal_brg)
|
|
@@ -117,8 +121,10 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
|
|
|
117
121
|
hbs = [p[MGMT_PKT].pkt for p in hbs]
|
|
118
122
|
print("result of second df\n")
|
|
119
123
|
check = True
|
|
120
|
-
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
121
124
|
test = metric_checking_df(test, check, pacer_interval, df, repetition_value_expected, brg_latency_expected, num_of_sim_tags)
|
|
125
|
+
if param.name != "rep1":
|
|
126
|
+
check = False
|
|
127
|
+
test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
|
|
122
128
|
return test
|
|
123
129
|
|
|
124
130
|
|
|
@@ -147,7 +153,7 @@ def rep1(test, param, datapath_module, num_of_sim_tags):
|
|
|
147
153
|
pacer_interval = 7
|
|
148
154
|
test = combination_func(test, param, datapath_module, pacer_interval=pacer_interval, num_of_sim_tags=num_of_sim_tags,
|
|
149
155
|
repetition_value_expected=[1, 2], tx_queue_expected=[20, 40],
|
|
150
|
-
pacer_increment_expected=[0,
|
|
156
|
+
pacer_increment_expected=[0, 25], brg_latency_expected=[200, 300])
|
|
151
157
|
time.sleep(5)
|
|
152
158
|
return test
|
|
153
159
|
|
|
@@ -191,10 +197,9 @@ def run(test):
|
|
|
191
197
|
test.add_phase_reason(param.name, test.reason)
|
|
192
198
|
if test.rc == TEST_FAILED:
|
|
193
199
|
if test.exit_on_param_failure:
|
|
194
|
-
break
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
time.sleep(5)
|
|
200
|
+
break # break the whole for loop and keep the test as failed
|
|
201
|
+
test.reset_result() # reset result and continue to next param
|
|
202
|
+
|
|
198
203
|
pixel_sim_thread.stop()
|
|
199
204
|
# Re-enable unified packets deduplication
|
|
200
205
|
cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 1")
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"For each supported value - Configure TX repetitions, Generate pixels packets & scan for packets in the bridge, Compare repetitions mean per packet to the configured value",
|
|
10
10
|
"Test epilog and revert to defaults"],
|
|
11
11
|
"expectedOutcome": "All values configured successfully and actual repetitions found matching to the configured values",
|
|
12
|
-
"mandatory":
|
|
12
|
+
"mandatory": 0,
|
|
13
13
|
"multiBridgeTest": 0,
|
|
14
14
|
"gwOnlyTest": 0,
|
|
15
15
|
"internalBridge": 0,
|
|
@@ -76,9 +76,8 @@ def run(test):
|
|
|
76
76
|
if test.rc == TEST_FAILED:
|
|
77
77
|
if test.exit_on_param_failure:
|
|
78
78
|
break # break the whole for loop and keep the test as failed
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
continue
|
|
79
|
+
test.reset_result() # reset result and continue to next param
|
|
80
|
+
|
|
82
81
|
# Re-enable unified packets deduplication
|
|
83
82
|
cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 1")
|
|
84
83
|
return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"initialCondition": "Bridge configured to defaults",
|
|
7
7
|
"procedure": ["Test prolog", "Run all actions and test bridge's response accordingly", "Test epilog"],
|
|
8
8
|
"expectedOutcome": "Bridge responded as expected to all sent actions",
|
|
9
|
-
"mandatory":
|
|
9
|
+
"mandatory": 0,
|
|
10
10
|
"multiBridgeTest": 0,
|
|
11
11
|
"gwOnlyTest": 0,
|
|
12
12
|
"internalBridge": 1,
|
|
@@ -391,8 +391,6 @@ def run(test):
|
|
|
391
391
|
if test.rc == TEST_FAILED:
|
|
392
392
|
if test.exit_on_param_failure:
|
|
393
393
|
break # break the whole for loop and keep the test as failed
|
|
394
|
-
|
|
395
|
-
test.reset_result() # reset result and continue to next param
|
|
396
|
-
continue
|
|
394
|
+
test.reset_result() # reset result and continue to next param
|
|
397
395
|
|
|
398
396
|
return cert_common.test_epilog(test)
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"For each supported value - configure the BRG and verify the value",
|
|
9
9
|
"Test epilog and revert to defaults"],
|
|
10
10
|
"expectedOutcome": "All values configured successfully",
|
|
11
|
-
"mandatory":
|
|
11
|
+
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
14
|
"internalBridge": 1,
|