wiliot-certificate 1.5.2a1__py3-none-any.whl → 4.4.0__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.
Files changed (120) hide show
  1. brg_certificate/ag/energous_v0_defines.py +105 -114
  2. brg_certificate/ag/energous_v1_defines.py +105 -114
  3. brg_certificate/ag/energous_v2_defines.py +105 -114
  4. brg_certificate/ag/energous_v3_defines.py +105 -114
  5. brg_certificate/ag/energous_v4_defines.py +105 -114
  6. brg_certificate/ag/fanstel_lan_v0_defines.py +105 -114
  7. brg_certificate/ag/fanstel_lte_v0_defines.py +105 -114
  8. brg_certificate/ag/fanstel_wifi_v0_defines.py +105 -114
  9. brg_certificate/ag/minew_lte_v0_defines.py +105 -114
  10. brg_certificate/ag/wlt_types.html +983 -150
  11. brg_certificate/ag/wlt_types_ag.py +1326 -248
  12. brg_certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +69 -0
  13. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +101 -0
  14. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +45 -0
  15. brg_certificate/ag/wlt_types_ag_jsons/calibration.json +75 -0
  16. brg_certificate/ag/wlt_types_ag_jsons/custom.json +99 -0
  17. brg_certificate/ag/wlt_types_ag_jsons/datapath.json +133 -8
  18. brg_certificate/ag/wlt_types_ag_jsons/energy2400.json +99 -0
  19. brg_certificate/ag/wlt_types_ag_jsons/energySub1g.json +96 -0
  20. brg_certificate/ag/wlt_types_ag_jsons/externalSensor.json +113 -0
  21. brg_certificate/ag/wlt_types_ag_jsons/interface.json +157 -0
  22. brg_certificate/ag/wlt_types_ag_jsons/powerManagement.json +205 -0
  23. brg_certificate/cert_common.py +61 -11
  24. brg_certificate/cert_config.py +12 -7
  25. brg_certificate/cert_utils.py +3 -1
  26. brg_certificate/certificate_bcc_test_list.txt +0 -2
  27. brg_certificate/certificate_test_list.txt +4 -4
  28. brg_certificate/tests/calibration/interval_test/interval_test.json +1 -1
  29. brg_certificate/tests/calibration/interval_test/interval_test.py +5 -5
  30. brg_certificate/tests/calibration/output_power_test/output_power_test.json +1 -1
  31. brg_certificate/tests/calibration/output_power_test/output_power_test.py +5 -5
  32. brg_certificate/tests/calibration/pattern_test/pattern_test.json +1 -1
  33. brg_certificate/tests/calibration/pattern_test/pattern_test.py +16 -10
  34. brg_certificate/tests/datapath/aging_test/aging_test.py +10 -9
  35. brg_certificate/tests/datapath/num_of_tags_test/num_of_tags_test.py +8 -13
  36. brg_certificate/tests/datapath/output_power_test/output_power_test.json +1 -1
  37. brg_certificate/tests/datapath/output_power_test/output_power_test.py +5 -5
  38. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +1 -1
  39. brg_certificate/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +11 -7
  40. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +11 -4
  41. brg_certificate/tests/datapath/pacer_interval_test/pacer_interval_test.py +10 -10
  42. brg_certificate/tests/datapath/pattern_test/pattern_test.json +1 -1
  43. brg_certificate/tests/datapath/pattern_test/pattern_test.py +5 -6
  44. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +1 -1
  45. brg_certificate/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +10 -9
  46. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -1
  47. brg_certificate/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +11 -10
  48. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.json +1 -1
  49. brg_certificate/tests/datapath/pkt_filter_test/pkt_filter_test.py +11 -10
  50. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +1 -1
  51. brg_certificate/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +11 -10
  52. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.json +1 -1
  53. brg_certificate/tests/datapath/rx_channel_test/rx_channel_test.py +5 -6
  54. brg_certificate/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +39 -37
  55. brg_certificate/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +46 -46
  56. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.json +2 -3
  57. brg_certificate/tests/datapath/stress_gen3_test/stress_gen3_test.py +21 -17
  58. brg_certificate/tests/datapath/stress_test/stress_test.json +2 -3
  59. brg_certificate/tests/datapath/stress_test/stress_test.py +20 -17
  60. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +1 -1
  61. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.json +1 -1
  62. brg_certificate/tests/datapath/tx_repetition_test/tx_repetition_test.py +12 -10
  63. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +1 -1
  64. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +13 -13
  65. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +1 -1
  66. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +2 -2
  67. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.json +1 -1
  68. brg_certificate/tests/energy2400/duty_cycle_test/duty_cycle_test.py +5 -5
  69. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +1 -1
  70. brg_certificate/tests/energy2400/output_power_test/output_power_test.py +5 -5
  71. brg_certificate/tests/energy2400/pattern_test/pattern_test.json +1 -1
  72. brg_certificate/tests/energy2400/pattern_test/pattern_test.py +5 -5
  73. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +2 -2
  74. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +256 -278
  75. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +2 -2
  76. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +256 -278
  77. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +3 -3
  78. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +30 -91
  79. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +1 -1
  80. brg_certificate/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +5 -5
  81. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.json +1 -1
  82. brg_certificate/tests/energy_sub1g/pattern_test/pattern_test.py +5 -5
  83. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +2 -2
  84. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +1 -1
  85. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +5 -5
  86. brg_certificate/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +2 -2
  87. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.json +1 -1
  88. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +6 -7
  89. brg_certificate/wltPb_pb2.py +4 -4
  90. brg_certificate/wltPb_pb2.pyi +2 -1
  91. gw_certificate/api_if/gw_capabilities.py +37 -1
  92. gw_certificate/common/serialization_formatter.py +93 -0
  93. gw_certificate/common/wltPb_pb2.py +50 -38
  94. gw_certificate/common/wltPb_pb2.pyi +42 -35
  95. gw_certificate/gw_certificate.py +4 -2
  96. gw_certificate/gw_certificate_cli.py +5 -4
  97. gw_certificate/interface/4.4.91_app.zip +0 -0
  98. gw_certificate/interface/{4.4.52_sd_bl_app.zip → 4.4.91_sd_bl_app.zip} +0 -0
  99. gw_certificate/interface/ble_simulator.py +5 -3
  100. gw_certificate/interface/flash_fw.py +90 -0
  101. gw_certificate/interface/mqtt.py +39 -23
  102. gw_certificate/interface/pkt_generator.py +0 -44
  103. gw_certificate/interface/uart_if.py +25 -12
  104. gw_certificate/tests/actions.py +33 -5
  105. gw_certificate/tests/connection.py +3 -1
  106. gw_certificate/tests/downlink.py +2 -2
  107. gw_certificate/tests/generic.py +5 -4
  108. gw_certificate/tests/registration.py +4 -4
  109. gw_certificate/tests/static/generated_packet_table.py +47 -25
  110. gw_certificate/tests/static/packet_table.csv +10067 -10051
  111. gw_certificate/tests/static/uplink_defines.py +2 -1
  112. gw_certificate/tests/throughput.py +3 -2
  113. gw_certificate/tests/uplink.py +171 -32
  114. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/METADATA +71 -30
  115. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/RECORD +119 -117
  116. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/WHEEL +1 -1
  117. gw_certificate/interface/4.4.52_app.zip +0 -0
  118. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/entry_points.txt +0 -0
  119. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/licenses/LICENSE +0 -0
  120. {wiliot_certificate-1.5.2a1.dist-info → wiliot_certificate-4.4.0.dist-info}/top_level.txt +0 -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
- test.add_reason("\nDidn't find HB pkt, therefore skip all checks\n")
15
- print("Didn't find HB pkt, therefore will not check tx_queue and pacer increment")
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:
@@ -96,7 +100,7 @@ def combination_func(test, param, datapath_module, pacer_interval, num_of_sim_ta
96
100
  test = metric_checking_HB(test, check, hbs, tx_queue_expected, pacer_increment_expected)
97
101
  return test
98
102
  else:
99
- # in case it failed because the repetition value.
103
+ # in case it failed because the repetition value. the reason has been added in the metric_checking_df function
100
104
  return test
101
105
 
102
106
  time.sleep(30)
@@ -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, 2], brg_latency_expected=[200, 300])
156
+ pacer_increment_expected=[0, 25], brg_latency_expected=[200, 300])
151
157
  time.sleep(5)
152
158
  return test
153
159
 
@@ -165,17 +171,14 @@ def rep1_adaptive_pacer(test, param, datapath_module, num_of_sim_tags):
165
171
 
166
172
  def run(test):
167
173
  # Test prolog
168
- datapath_module = eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}')
174
+ datapath_module = test.active_brg.datapath
169
175
  test = cert_common.test_prolog(test)
170
176
  if test.rc == TEST_FAILED:
171
177
  return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
172
178
  # config GW deduplication pkts = 0
173
179
  print("Configuring GW with !deduplication_pkts 0")
174
180
  cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 0")
175
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
176
- return cert_common.test_epilog(test, revert_gws=True)
177
-
178
- STRESS_TEST_MAP = {"rep3": rep3, "rep2": rep2, "rep1": rep1, "rep1_adaptive_pacer": rep1_adaptive_pacer}
181
+ STRESS_TEST_MAP = {"rep3": rep3, "rep2": rep2, "rep1": rep1}
179
182
  num_of_pixels = 300
180
183
  pixel_sim_thread = cert_data_sim.DataSimThread(test=test,
181
184
  num_of_pixels=num_of_pixels,
@@ -192,11 +195,11 @@ def run(test):
192
195
  field_functionality_pass_fail_print(test, param.name)
193
196
  test.set_phase_rc(param.name, test.rc)
194
197
  test.add_phase_reason(param.name, test.reason)
195
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
196
- break
197
- else:
198
- test.reset_result()
199
- time.sleep(5)
198
+ if test.rc == TEST_FAILED:
199
+ if test.exit_on_param_failure:
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
+
200
203
  pixel_sim_thread.stop()
201
204
  # Re-enable unified packets deduplication
202
205
  cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 1")
@@ -100,7 +100,7 @@ def run(test):
100
100
  if test.rc == TEST_FAILED:
101
101
  return cert_common.test_epilog(test)
102
102
 
103
- datapath_module = eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}')
103
+ datapath_module = test.active_brg.datapath
104
104
 
105
105
  print("Configuring GW")
106
106
  # Set packets deduplication off to count the number of pkts from the BRG
@@ -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": 1,
12
+ "mandatory": 0,
13
13
  "multiBridgeTest": 0,
14
14
  "gwOnlyTest": 0,
15
15
  "internalBridge": 0,
@@ -50,7 +50,7 @@ def tx_repetitions_analysis(test, repetitions):
50
50
  def run(test):
51
51
 
52
52
  fields = [BRG_TX_REPETITION, BRG_PKT_FILTER, BRG_RX_CHANNEL]
53
- datapath_module = eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}')
53
+ datapath_module = test.active_brg.datapath
54
54
 
55
55
  test = cert_common.test_prolog(test)
56
56
  if test.rc == TEST_FAILED:
@@ -58,24 +58,26 @@ def run(test):
58
58
 
59
59
  print("Configuring GW with !deduplication_pkts 0")
60
60
  cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 0")
61
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
62
- return cert_common.test_epilog(test, revert_gws=True)
63
61
 
64
62
  for param in test.params:
65
63
  test = cert_config.brg_configure(test, fields=fields,
66
64
  values=[param.value, ag.PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT, ag.RX_CHANNEL_37],
67
65
  module=datapath_module)[0]
68
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
69
- break
66
+ if test.rc == TEST_FAILED:
67
+ if test.exit_on_param_failure:
68
+ break # break the whole for loop and keep the test as failed
69
+ else:
70
+ test.reset_result() # reset result and continue to next param
71
+ continue
70
72
  tx_repetitions_analysis(test, param.name)
71
73
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
72
74
  test.set_phase_rc(param.name, test.rc)
73
75
  test.add_phase_reason(param.name, test.reason)
74
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
75
- break
76
- else:
77
- test.reset_result()
76
+ if test.rc == TEST_FAILED:
77
+ if test.exit_on_param_failure:
78
+ break # break the whole for loop and keep the test as failed
79
+ test.reset_result() # reset result and continue to next param
78
80
 
79
81
  # Re-enable unified packets deduplication
80
82
  cert_config.gw_action(test, f"{DEDUPLICATION_PKTS} 1")
81
- return cert_common.test_epilog(test, revert_brgs=True, revert_gws=True, modules=[datapath_module])
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": 1,
9
+ "mandatory": 0,
10
10
  "multiBridgeTest": 0,
11
11
  "gwOnlyTest": 0,
12
12
  "internalBridge": 1,
@@ -34,26 +34,26 @@ LIS2DW12_NON_DEFAULT_SLEEP_DURATION = 35
34
34
 
35
35
  def get_brg_non_default_module_pkt(test, module):
36
36
  if 'Energy2400' in module.__name__:
37
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}'),
37
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.energy2400,
38
38
  duty_cycle=BRG_NON_DEFAULT_DUTY_CYCLE,
39
39
  output_power=BRG_NON_DEFAULT_OP_2_4, pattern=BRG_NON_DEFAULT_EP_2_4,
40
40
  signal_indicator_cycle=BRG_NON_DEFAULT_SIGNAL_INDICATOR_CYCLE_2_4,
41
41
  signal_indicator_rep=BRG_NON_DEFAULT_SIGNAL_INDICATOR_REP_2_4)
42
42
  elif 'EnergySub1G' in module.__name__:
43
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}'),
43
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.energy_sub1g,
44
44
  duty_cycle=BRG_NON_DEFAULT_DUTY_CYCLE,
45
45
  signal_indicator_cycle=BRG_NON_DEFAULT_SIGNAL_INDICATOR_CYCLE_SUB1G,
46
46
  signal_indicator_rep=BRG_NON_DEFAULT_SIGNAL_INDICATOR_REP_SUB1G)
47
47
  elif 'PwrMgmt' in module.__name__:
48
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModulePwrMgmtV{test.active_brg.api_version}'),
48
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.pwr_mgmt,
49
49
  dynamic_keep_alive_scan=BRG_NON_DEFAULT_PWR_MGMT_KEEP_ALIVE_SCAN)
50
50
  elif 'Custom' in module.__name__:
51
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleCustomV{test.active_brg.api_version}'),
51
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.custom,
52
52
  motion_sensitivity_threshold=LIS2DW12_NON_DEFAULT_STATE_THRESHOLD,
53
53
  s2d_transition_time=LIS2DW12_NON_DEFAULT_WAKE_UP_DURATION,
54
54
  d2s_transition_time=LIS2DW12_NON_DEFAULT_SLEEP_DURATION)
55
55
  elif 'Datapath' in module.__name__:
56
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}'),
56
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.datapath,
57
57
  tx_repetition=BRG_NON_DEFAULT_TX_REPETITION,
58
58
  pkt_filter=BRG_NON_DEFAULT_PKT_FILTER,
59
59
  output_power=BRG_NON_DEFAULT_OP_2_4,
@@ -61,12 +61,12 @@ def get_brg_non_default_module_pkt(test, module):
61
61
  pacer_interval=BRG_NON_DEFAULT_PACER_INTERVAL,
62
62
  rssi_threshold=BRG_NON_DEFAULT_RSSI_THRESHOLD)
63
63
  elif 'Calibration' in module.__name__:
64
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleCalibrationV{test.active_brg.api_version}'),
64
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.calibration,
65
65
  output_power=BRG_NON_DEFAULT_CALIB_OUTPUT_POWER,
66
66
  interval=BRG_NON_DEFAULT_CALIB_INTERVAL,
67
67
  pattern=BRG_NON_DEFAULT_CALIB_PATTERN)
68
68
  elif 'ExtSensors' in module.__name__:
69
- return cert_config.get_default_brg_pkt(test, pkt_type=eval_pkt(f'ModuleExtSensorsV{test.active_brg.api_version}'),
69
+ return cert_config.get_default_brg_pkt(test, pkt_type=test.active_brg.sensors,
70
70
  sensor0=ag.EXTERNAL_SENSORS_MINEWS1,
71
71
  sensor1=ag.EXTERNAL_SENSORS_VOLTAIC_BATT_LEVEL_DONGLE,
72
72
  rssi_threshold=BRG_NON_DEFAULT_RSSI_THRESHOLD,
@@ -253,7 +253,7 @@ def test_action_get_module(test):
253
253
  cert_config.send_brg_action(test, ag.ACTION_GET_MODULE, datapath=1)
254
254
  # analysis
255
255
  test = search_action_ack(test, ag.ACTION_GET_MODULE, datapath=1)
256
- test = scan_for_modules(test, [eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}')])
256
+ test = scan_for_modules(test, [test.active_brg.datapath])
257
257
  if test.rc == TEST_FAILED:
258
258
  return test
259
259
 
@@ -349,7 +349,7 @@ def test_action_restore_defaults(test):
349
349
  if ag.MODULE_ENERGY_SUB1G in test.active_brg.sup_caps and cfg_once:
350
350
  cfg_once = False
351
351
  cfg_pkt = cert_config.get_default_brg_pkt(test,
352
- eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}'),
352
+ test.active_brg.energy_sub1g,
353
353
  **{BRG_PATTERN: ag.SUB1G_ENERGY_PATTERN_ISRAEL})
354
354
  test = cert_config.brg_configure(test, cfg_pkt=cfg_pkt)[0]
355
355
  if test.rc == TEST_FAILED:
@@ -388,9 +388,9 @@ def run(test):
388
388
  field_functionality_pass_fail_print(test, param.name)
389
389
  test.set_phase_rc(param.name, test.rc)
390
390
  test.add_phase_reason(param.name, test.reason)
391
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
392
- break
393
- else:
394
- test.reset_result()
391
+ if test.rc == TEST_FAILED:
392
+ if test.exit_on_param_failure:
393
+ break # break the whole for loop and keep the test as failed
394
+ test.reset_result() # reset result and continue to next param
395
395
 
396
396
  return cert_common.test_epilog(test)
@@ -65,7 +65,7 @@ def run(test):
65
65
  utPrint(f"Configuring destination BRG {dest_brg.id_str} to RX Channel 10!")
66
66
  test.active_brg = dest_brg
67
67
  test = cert_config.brg_configure_ble5(test, fields=[BRG_RX_CHANNEL], values=[ag.RX_CHANNEL_10_250K],
68
- module=eval_pkt(f'ModuleDatapathV{test.active_brg.api_version}'))[0]
68
+ module=test.active_brg.datapath)[0]
69
69
  test.active_brg = src_brg
70
70
  time.sleep(5)
71
71
 
@@ -114,7 +114,7 @@ def run(test):
114
114
  # Energizing is OFF
115
115
  # Default cfg for 2400 is 0 == no energizing so we only eliminating sub1g energizing
116
116
  utPrint("Configuring the BRG to no energizing in sub1g", "WARNING")
117
- sub1g_module = eval_pkt(f'ModuleEnergySub1GV{test.active_brg.api_version}')
117
+ sub1g_module = test.active_brg.energy_sub1g
118
118
  test = cert_config.brg_configure(test, fields=[BRG_PATTERN], values=[ag.SUB1G_ENERGY_PATTERN_NO_ENERGIZING], module=sub1g_module)[0]
119
119
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
120
120
  return cert_common.test_epilog(test, revert_brgs=True, modules=[sub1g_module])
@@ -190,7 +190,7 @@ def run(test):
190
190
  # ------------- Power management sleep & Keep Alive Mode ------------- #
191
191
  utPrint("Power management Sleep state & Keep Alive Mode check!", "HEADER")
192
192
  utPrint("Sending the BRG power management configuration in order to enter sleep state", "WARNING")
193
- pwr_mgmt_module = eval_pkt(f'ModulePwrMgmtV{test.active_brg.api_version}')
193
+ pwr_mgmt_module = test.active_brg.pwr_mgmt
194
194
  test, wltpkt = cert_common.brg_pwr_mgmt_turn_on(test)
195
195
  if test.rc == TEST_FAILED and test.exit_on_param_failure:
196
196
  # Preventing leaving brg in pwr mgmt, protection for on that worked yet no ack was received
@@ -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": 1,
11
+ "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
14
  "internalBridge": 1,
@@ -8,7 +8,7 @@ import brg_certificate.cert_config as cert_config
8
8
  def run(test):
9
9
 
10
10
  fields = [BRG_DUTY_CYCLE]
11
- energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
11
+ energy2400_module = test.active_brg.energy2400
12
12
 
13
13
  test = cert_common.test_prolog(test)
14
14
  if test.rc == TEST_FAILED:
@@ -19,9 +19,9 @@ def run(test):
19
19
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
20
20
  test.set_phase_rc(param.name, test.rc)
21
21
  test.add_phase_reason(param.name, test.reason)
22
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
23
- break
24
- else:
25
- test.reset_result()
22
+ if test.rc == TEST_FAILED:
23
+ if test.exit_on_param_failure:
24
+ break # break the whole for loop and keep the test as failed
25
+ test.reset_result() # reset result and continue to next param
26
26
 
27
27
  return cert_common.test_epilog(test, revert_brgs=True, modules=[energy2400_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": 1,
11
+ "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
14
  "internalBridge": 1,
@@ -8,7 +8,7 @@ import brg_certificate.cert_config as cert_config
8
8
  def run(test):
9
9
 
10
10
  fields = [BRG_OUTPUT_POWER]
11
- energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
11
+ energy2400_module = test.active_brg.energy2400
12
12
 
13
13
  test = cert_common.test_prolog(test)
14
14
  if test.rc == TEST_FAILED:
@@ -20,9 +20,9 @@ def run(test):
20
20
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
21
21
  test.set_phase_rc(param.name, test.rc)
22
22
  test.add_phase_reason(param.name, test.reason)
23
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
24
- break
25
- else:
26
- test.reset_result()
23
+ if test.rc == TEST_FAILED:
24
+ if test.exit_on_param_failure:
25
+ break # break the whole for loop and keep the test as failed
26
+ test.reset_result() # reset result and continue to next param
27
27
 
28
28
  return cert_common.test_epilog(test, revert_brgs=True, modules=[energy2400_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": 1,
11
+ "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
14
  "internalBridge": 1,
@@ -8,7 +8,7 @@ import brg_certificate.cert_config as cert_config
8
8
  def run(test):
9
9
 
10
10
  fields = [BRG_PATTERN]
11
- energy2400_module = eval_pkt(f'ModuleEnergy2400V{test.active_brg.api_version}')
11
+ energy2400_module = test.active_brg.energy2400
12
12
 
13
13
  test = cert_common.test_prolog(test)
14
14
  if test.rc == TEST_FAILED:
@@ -21,9 +21,9 @@ def run(test):
21
21
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
22
22
  test.set_phase_rc(param.name, test.rc)
23
23
  test.add_phase_reason(param.name, test.reason)
24
- if test.rc == TEST_FAILED and test.exit_on_param_failure:
25
- break
26
- else:
27
- test.reset_result()
24
+ if test.rc == TEST_FAILED:
25
+ if test.exit_on_param_failure:
26
+ break # break the whole for loop and keep the test as failed
27
+ test.reset_result() # reset result and continue to next param
28
28
 
29
29
  return cert_common.test_epilog(test, revert_brgs=True, modules=[energy2400_module])
@@ -6,7 +6,7 @@
6
6
  "initialCondition": "Bridge configured to defaults",
7
7
  "procedure": ["Test prolog",
8
8
  "rssi_threshold - check the if rssi value is between 0 to -25.",
9
- "brg0_rx_brg1_tx - one brg is transmitter and the second is receiver, we expect to get the same values from the receiver, according to the tx params",
9
+ "brg0_tx_brg1_rx - one brg is transmitter and the second is receiver, we expect to get the same values from the receiver, according to the tx params",
10
10
  "brg0_none_brg1_rx - One rx BRG without any tx BRG. We don't expect to see any signal indicator packets.",
11
11
  "brg0_rxtx_brg1_rxtx - Both BRG's will be configured to be transmitters and receivers, with different tx params for each one. we expect to see signal indicator packets from both BRG's, according to the tx params.",
12
12
  "brg0_tx_brg1_none - One BRG will be configured as signal indicator tx, but no rx, so we don't expect to receive signal indicator packets.",
@@ -16,5 +16,5 @@
16
16
  "multiBridgeTest": 1,
17
17
  "gwOnlyTest": 0,
18
18
  "internalBridge": 1,
19
- "allSupportedValues": ["rssi_threshold", "brg0_rx_brg1_tx", "brg0_none_brg1_rx", "brg0_rxtx_brg1_rxtx", "brg0_tx_brg1_none"]
19
+ "allSupportedValues": ["rssi_threshold", "brg0_tx_brg1_rx", "brg0_none_brg1_rx", "brg0_rxtx_brg1_rxtx", "brg0_tx_brg1_none"]
20
20
  }