wiliot-certificate 4.4.2__py3-none-any.whl → 4.5.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 (297) hide show
  1. {brg_certificate → certificate}/ag/wlt_cmd_if.html +10 -4
  2. {brg_certificate → certificate}/ag/wlt_types_ag.py +1878 -519
  3. certificate/cert_common.py +1488 -0
  4. certificate/cert_config.py +480 -0
  5. {brg_certificate → certificate}/cert_data_sim.py +134 -46
  6. {brg_certificate → certificate}/cert_defines.py +129 -128
  7. {brg_certificate → certificate}/cert_gw_sim.py +183 -53
  8. {brg_certificate → certificate}/cert_mqtt.py +179 -64
  9. {brg_certificate → certificate}/cert_prints.py +35 -33
  10. {brg_certificate → certificate}/cert_protobuf.py +15 -6
  11. {brg_certificate → certificate}/cert_results.py +240 -64
  12. certificate/cert_utils.py +634 -0
  13. certificate/certificate.py +205 -0
  14. certificate/certificate_cli.py +76 -0
  15. certificate/certificate_eth_test_list.txt +76 -0
  16. certificate/certificate_sanity_test_list.txt +66 -0
  17. certificate/certificate_test_list.txt +76 -0
  18. {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.json +3 -2
  19. {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.py +7 -6
  20. certificate/tests/calibration/output_power_test/output_power_test.json +23 -0
  21. certificate/tests/calibration/output_power_test/output_power_test.py +39 -0
  22. {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.json +2 -1
  23. {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.py +20 -15
  24. certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.json +15 -0
  25. certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.py +140 -0
  26. certificate/tests/cloud_connectivity/acl_test/acl_test.json +15 -0
  27. certificate/tests/cloud_connectivity/acl_test/acl_test.py +96 -0
  28. certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +19 -0
  29. certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +41 -0
  30. certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +19 -0
  31. certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.py +215 -0
  32. certificate/tests/cloud_connectivity/connection_test/connection_test.json +18 -0
  33. certificate/tests/cloud_connectivity/connection_test/connection_test.py +67 -0
  34. certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.json +15 -0
  35. certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.py +80 -0
  36. certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +21 -0
  37. certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +201 -0
  38. certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +17 -0
  39. certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +104 -0
  40. certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +18 -0
  41. certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +59 -0
  42. certificate/tests/cloud_connectivity/registration_test/registration_test.json +20 -0
  43. certificate/tests/cloud_connectivity/registration_test/registration_test.py +384 -0
  44. certificate/tests/cloud_connectivity/registration_test/registration_test_cli.py +90 -0
  45. certificate/tests/cloud_connectivity/stress_test/stress_test.json +17 -0
  46. certificate/tests/cloud_connectivity/stress_test/stress_test.py +101 -0
  47. certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +25 -0
  48. certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +92 -0
  49. certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +20 -0
  50. certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +169 -0
  51. {brg_certificate → certificate}/tests/datapath/aging_test/aging_test.json +2 -1
  52. certificate/tests/datapath/aging_test/aging_test.py +142 -0
  53. certificate/tests/datapath/event_ble5_test/event_ble5_test.json +17 -0
  54. certificate/tests/datapath/event_ble5_test/event_ble5_test.py +89 -0
  55. certificate/tests/datapath/event_test/event_test.json +17 -0
  56. certificate/tests/datapath/event_test/event_test.py +80 -0
  57. {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.json +4 -3
  58. {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.py +19 -13
  59. certificate/tests/datapath/output_power_test/output_power_test.json +23 -0
  60. {brg_certificate → certificate}/tests/datapath/output_power_test/output_power_test.py +17 -6
  61. {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +2 -1
  62. {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +13 -11
  63. {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.json +2 -1
  64. {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.py +9 -7
  65. {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.json +3 -2
  66. {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.py +18 -6
  67. certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.json +20 -0
  68. certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.py +61 -0
  69. {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +2 -1
  70. {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +15 -14
  71. certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +19 -0
  72. certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +85 -0
  73. {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +2 -1
  74. {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +10 -9
  75. {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.json +2 -1
  76. {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.py +10 -9
  77. {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +3 -2
  78. {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +9 -8
  79. brg_certificate/tests/datapath/output_power_test/output_power_test.json → certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.json +6 -4
  80. certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.py +77 -0
  81. {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.json +3 -2
  82. {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.py +7 -6
  83. {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +8 -7
  84. {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +113 -73
  85. {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +8 -7
  86. {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +112 -72
  87. {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.json +4 -3
  88. {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.py +15 -11
  89. {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.json +4 -3
  90. {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.py +15 -11
  91. {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.json +3 -1
  92. {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.py +14 -13
  93. certificate/tests/edge_mgmt/action_blink_test/action_blink_test.json +15 -0
  94. certificate/tests/edge_mgmt/action_blink_test/action_blink_test.py +24 -0
  95. certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.json +15 -0
  96. certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.py +43 -0
  97. certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.json +15 -0
  98. certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.py +42 -0
  99. certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.json +15 -0
  100. certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.py +44 -0
  101. certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.json +16 -0
  102. certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.py +42 -0
  103. certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.json +15 -0
  104. certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.py +49 -0
  105. certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.json +15 -0
  106. certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.py +102 -0
  107. certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.json +15 -0
  108. certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +45 -0
  109. {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +3 -2
  110. {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +22 -11
  111. {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.json +2 -1
  112. {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.py +7 -6
  113. certificate/tests/energy2400/output_power_test/output_power_test.json +23 -0
  114. {brg_certificate → certificate}/tests/energy2400/output_power_test/output_power_test.py +17 -6
  115. {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.json +2 -1
  116. {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.py +7 -6
  117. certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +26 -0
  118. certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +379 -0
  119. certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +20 -0
  120. certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +173 -0
  121. certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +24 -0
  122. certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +350 -0
  123. {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +2 -1
  124. {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +7 -6
  125. {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.json +2 -1
  126. {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.py +7 -6
  127. {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +2 -1
  128. {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +10 -10
  129. {brg_certificate → certificate}/tests/sensors/ext_sensor_test/ext_sensor_test.json +5 -4
  130. certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +450 -0
  131. certificate/wlt_types.py +122 -0
  132. {gw_certificate → common}/api_if/202/status.json +6 -0
  133. {gw_certificate → common}/api_if/203/status.json +6 -0
  134. {gw_certificate → common}/api_if/204/status.json +6 -0
  135. common/api_if/206/data.json +85 -0
  136. common/api_if/206/status.json +69 -0
  137. common/api_if/api_validation.py +91 -0
  138. common/web/templates/generator.html +210 -0
  139. common/web/templates/index.html +20 -0
  140. common/web/templates/menu.html +54 -0
  141. common/web/templates/parser.html +53 -0
  142. {brg_certificate/ag → common/web/templates}/wlt_types.html +1216 -191
  143. common/web/web_utils.py +399 -0
  144. {brg_certificate → common}/wltPb_pb2.py +14 -12
  145. {gw_certificate/common → common}/wltPb_pb2.pyi +16 -2
  146. gui_certificate/gui_certificate_cli.py +14 -0
  147. gui_certificate/server.py +1267 -0
  148. gui_certificate/templates/cert_run.html +1273 -0
  149. wiliot_certificate-4.5.0.dist-info/METADATA +99 -0
  150. wiliot_certificate-4.5.0.dist-info/RECORD +168 -0
  151. {wiliot_certificate-4.4.2.dist-info → wiliot_certificate-4.5.0.dist-info}/WHEEL +1 -1
  152. wiliot_certificate-4.5.0.dist-info/entry_points.txt +5 -0
  153. wiliot_certificate-4.5.0.dist-info/top_level.txt +3 -0
  154. brg_certificate/ag/energous_v0_defines.py +0 -925
  155. brg_certificate/ag/energous_v1_defines.py +0 -931
  156. brg_certificate/ag/energous_v2_defines.py +0 -925
  157. brg_certificate/ag/energous_v3_defines.py +0 -925
  158. brg_certificate/ag/energous_v4_defines.py +0 -925
  159. brg_certificate/ag/fanstel_lan_v0_defines.py +0 -925
  160. brg_certificate/ag/fanstel_lte_v0_defines.py +0 -925
  161. brg_certificate/ag/fanstel_wifi_v0_defines.py +0 -925
  162. brg_certificate/ag/minew_lte_v0_defines.py +0 -925
  163. brg_certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +0 -142
  164. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +0 -785
  165. brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +0 -139
  166. brg_certificate/ag/wlt_types_ag_jsons/calibration.json +0 -394
  167. brg_certificate/ag/wlt_types_ag_jsons/custom.json +0 -515
  168. brg_certificate/ag/wlt_types_ag_jsons/datapath.json +0 -672
  169. brg_certificate/ag/wlt_types_ag_jsons/energy2400.json +0 -550
  170. brg_certificate/ag/wlt_types_ag_jsons/energySub1g.json +0 -595
  171. brg_certificate/ag/wlt_types_ag_jsons/externalSensor.json +0 -598
  172. brg_certificate/ag/wlt_types_ag_jsons/interface.json +0 -938
  173. brg_certificate/ag/wlt_types_ag_jsons/powerManagement.json +0 -1234
  174. brg_certificate/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -105
  175. brg_certificate/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -77
  176. brg_certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -61
  177. brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +0 -110
  178. brg_certificate/brg_certificate.py +0 -225
  179. brg_certificate/brg_certificate_cli.py +0 -63
  180. brg_certificate/cert_common.py +0 -923
  181. brg_certificate/cert_config.py +0 -402
  182. brg_certificate/cert_utils.py +0 -362
  183. brg_certificate/certificate_bcc_sanity_test_list.txt +0 -40
  184. brg_certificate/certificate_bcc_test_list.txt +0 -48
  185. brg_certificate/certificate_sanity_test_list.txt +0 -43
  186. brg_certificate/certificate_test_list.txt +0 -53
  187. brg_certificate/config/eclipse.json +0 -10
  188. brg_certificate/config/hivemq.json +0 -10
  189. brg_certificate/config/mosquitto.json +0 -10
  190. brg_certificate/config/mosquitto.md +0 -95
  191. brg_certificate/config/wiliot-dev.json +0 -10
  192. brg_certificate/restore_brg.py +0 -61
  193. brg_certificate/tests/calibration/output_power_test/output_power_test.json +0 -16
  194. brg_certificate/tests/calibration/output_power_test/output_power_test.py +0 -28
  195. brg_certificate/tests/datapath/aging_test/aging_test.py +0 -143
  196. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +0 -16
  197. brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +0 -73
  198. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +0 -17
  199. brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +0 -118
  200. brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +0 -14
  201. brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +0 -396
  202. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +0 -20
  203. brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +0 -94
  204. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +0 -19
  205. brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +0 -87
  206. brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +0 -17
  207. brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +0 -223
  208. brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +0 -17
  209. brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +0 -128
  210. brg_certificate/tests/energy2400/output_power_test/output_power_test.json +0 -16
  211. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +0 -20
  212. brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +0 -321
  213. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +0 -20
  214. brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +0 -321
  215. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +0 -20
  216. brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +0 -141
  217. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -20
  218. brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -276
  219. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +0 -20
  220. brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +0 -390
  221. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +0 -16
  222. brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +0 -28
  223. brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +0 -305
  224. brg_certificate/wltPb_pb2.pyi +0 -234
  225. brg_certificate/wlt_types.py +0 -113
  226. gw_certificate/ag/ut_defines.py +0 -364
  227. gw_certificate/ag/wlt_types.py +0 -85
  228. gw_certificate/ag/wlt_types_ag.py +0 -5310
  229. gw_certificate/ag/wlt_types_data.py +0 -64
  230. gw_certificate/api/extended_api.py +0 -23
  231. gw_certificate/api_if/200/data.json +0 -106
  232. gw_certificate/api_if/200/status.json +0 -47
  233. gw_certificate/api_if/201/data.json +0 -98
  234. gw_certificate/api_if/201/status.json +0 -53
  235. gw_certificate/api_if/205/logs.json +0 -12
  236. gw_certificate/api_if/api_validation.py +0 -38
  237. gw_certificate/api_if/gw_capabilities.py +0 -54
  238. gw_certificate/cert_results.py +0 -145
  239. gw_certificate/common/analysis_data_bricks.py +0 -60
  240. gw_certificate/common/debug.py +0 -42
  241. gw_certificate/common/serialization_formatter.py +0 -93
  242. gw_certificate/common/utils.py +0 -8
  243. gw_certificate/common/utils_defines.py +0 -15
  244. gw_certificate/common/wltPb_pb2.py +0 -84
  245. gw_certificate/gw_certificate.py +0 -154
  246. gw_certificate/gw_certificate_cli.py +0 -87
  247. gw_certificate/interface/4.4.91_app.zip +0 -0
  248. gw_certificate/interface/4.4.91_sd_bl_app.zip +0 -0
  249. gw_certificate/interface/ble_simulator.py +0 -61
  250. gw_certificate/interface/ble_sniffer.py +0 -189
  251. gw_certificate/interface/flash_fw.py +0 -90
  252. gw_certificate/interface/if_defines.py +0 -36
  253. gw_certificate/interface/mqtt.py +0 -563
  254. gw_certificate/interface/nrfutil-linux +0 -0
  255. gw_certificate/interface/nrfutil-mac +0 -0
  256. gw_certificate/interface/nrfutil.exe +0 -0
  257. gw_certificate/interface/pkt_generator.py +0 -594
  258. gw_certificate/interface/uart_if.py +0 -236
  259. gw_certificate/interface/uart_ports.py +0 -20
  260. gw_certificate/templates/results.html +0 -241
  261. gw_certificate/templates/stage.html +0 -22
  262. gw_certificate/templates/table.html +0 -6
  263. gw_certificate/templates/test.html +0 -38
  264. gw_certificate/tests/__init__.py +0 -10
  265. gw_certificate/tests/actions.py +0 -289
  266. gw_certificate/tests/bad_crc_to_PER_quantization.csv +0 -51
  267. gw_certificate/tests/connection.py +0 -188
  268. gw_certificate/tests/downlink.py +0 -172
  269. gw_certificate/tests/generic.py +0 -238
  270. gw_certificate/tests/registration.py +0 -340
  271. gw_certificate/tests/static/__init__.py +0 -0
  272. gw_certificate/tests/static/connection_defines.py +0 -9
  273. gw_certificate/tests/static/downlink_defines.py +0 -9
  274. gw_certificate/tests/static/generated_packet_table.py +0 -195
  275. gw_certificate/tests/static/packet_table.csv +0 -10067
  276. gw_certificate/tests/static/references.py +0 -5
  277. gw_certificate/tests/static/uplink_defines.py +0 -14
  278. gw_certificate/tests/throughput.py +0 -240
  279. gw_certificate/tests/uplink.py +0 -853
  280. wiliot_certificate-4.4.2.dist-info/METADATA +0 -211
  281. wiliot_certificate-4.4.2.dist-info/RECORD +0 -210
  282. wiliot_certificate-4.4.2.dist-info/entry_points.txt +0 -3
  283. wiliot_certificate-4.4.2.dist-info/top_level.txt +0 -3
  284. {brg_certificate → certificate}/__init__.py +0 -0
  285. {gw_certificate → common}/api_if/202/data.json +0 -0
  286. {gw_certificate/api_if/200 → common/api_if/202}/logs.json +0 -0
  287. {gw_certificate → common}/api_if/203/data.json +0 -0
  288. {gw_certificate/api_if/201 → common/api_if/203}/logs.json +0 -0
  289. {gw_certificate → common}/api_if/204/data.json +0 -0
  290. {gw_certificate/api_if/202 → common/api_if/204}/logs.json +0 -0
  291. {gw_certificate → common}/api_if/205/data.json +0 -0
  292. {gw_certificate/api_if/203 → common/api_if/205}/logs.json +0 -0
  293. {gw_certificate → common}/api_if/205/status.json +0 -0
  294. {gw_certificate/api_if/204 → common/api_if/206}/logs.json +0 -0
  295. {gw_certificate → common/api_if}/__init__.py +0 -0
  296. {gw_certificate/api_if → gui_certificate}/__init__.py +0 -0
  297. {wiliot_certificate-4.4.2.dist-info → wiliot_certificate-4.5.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,9 +1,11 @@
1
1
 
2
- from brg_certificate.cert_prints import *
3
- from brg_certificate.cert_defines import *
4
- from brg_certificate.wlt_types import *
5
- import brg_certificate.cert_common as cert_common
6
- import brg_certificate.cert_config as cert_config
2
+ from certificate.cert_prints import *
3
+ from certificate.cert_defines import *
4
+ from certificate.wlt_types import *
5
+ import certificate.cert_mqtt as cert_mqtt
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
8
+ import certificate.cert_data_sim as cert_data_sim
7
9
 
8
10
  GW_CYCLE_TIME = 0.02 # GW sends BLE packet every 20 nsec
9
11
 
@@ -41,7 +43,7 @@ def run(test):
41
43
  pixel_sim_thread.stop()
42
44
  time.sleep(10)
43
45
 
44
- cert_common.display_data(df, nfpkt=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
46
+ cert_common.display_data(df, tbc=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
45
47
 
46
48
  num_of_tags = len(df[TAG_ID].unique())
47
49
  print(f"Tags from DF: {num_of_tags}")
@@ -49,25 +51,29 @@ def run(test):
49
51
  cert_config.send_brg_action(test, ag.ACTION_SEND_HB)
50
52
  test, mgmt_pkts = cert_common.scan_for_mgmt_pkts(test, [eval_pkt(f'Brg2GwHbV{test.active_brg.api_version}')])
51
53
  if not mgmt_pkts:
52
- test.rc = TEST_FAILED
53
- test.add_reason("Didn't find ACTION HB pkt")
54
- break
54
+ reason = "Didn't find ACTION HB pkt"
55
+ utPrint(reason, "RED")
56
+ test.set_phase_rc(param.name, TEST_FAILED)
57
+ test.add_phase_reason(param.name, "Didn't find ACTION HB pkt")
58
+ continue
55
59
 
56
60
  num_of_tags_HB = mgmt_pkts[0][MGMT_PKT].pkt.tags_ctr
57
61
  print(f"Tags from HB: {num_of_tags_HB}\n ")
58
62
 
59
- cert_common.display_data(df, nfpkt=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
63
+ cert_common.display_data(df, tbc=True, name_prefix=f"num_of_tags_{param.name}_", dir=test.dir)
60
64
 
61
65
  # compare the numbers of tags that come from the brg, success in 95% from number of tags (value) or more.
62
66
  if num_of_tags < (param.value * 0.95):
63
- test.add_reason(f"Received {num_of_tags} pixels, expected: {param.name} pixels!")
67
+ test.add_reason(f"Received {num_of_tags} different pixels, expected: {param.name} pixels!")
68
+ test.rc = TEST_FAILED
64
69
 
65
70
  # compare the counter tags in the HB packet
66
71
  if num_of_tags_HB < 0.95 * param.value or num_of_tags_HB > (param.value + 100):
67
- test.add_reason(f"HB counter: {num_of_tags_HB}, expected: {param.name}!")
72
+ test.add_reason(f"HB counter num_of_tags: {num_of_tags_HB}, expected: {param.name}!")
73
+ test.rc = TEST_FAILED
68
74
  # param epilog
69
75
  time.sleep(10)
70
- generate_log_file(test, param.name)
76
+ cert_mqtt.generate_log_file(test, param.name)
71
77
  field_functionality_pass_fail_print(test, "num_of_tags", value=param.name)
72
78
  test.set_phase_rc(param.name, test.rc)
73
79
  test.add_phase_reason(param.name, test.reason)
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "Output Power",
3
+ "module": "Datapath",
4
+ "purpose": "Test configuration for all supported datapath output power values",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Configuration",
6
+ "initialCondition": "Bridge configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "For each supported value - configure the BRG and verify the value",
9
+ "Test epilog and revert to defaults"],
10
+ "expectedOutcome": "All values configured successfully",
11
+ "mandatory": 0,
12
+ "multiBridgeTest": 0,
13
+ "gwOnlyTest": 0,
14
+ "dataSimOnlyTest": 0,
15
+ "SupportedFromApiVersion": 13,
16
+ "allSupportedValues": ["OUTPUT_POWER_2_4_MAX", "OUTPUT_POWER_2_4_MAX_MINUS_2", "OUTPUT_POWER_2_4_MAX_MINUS_3",
17
+ "OUTPUT_POWER_2_4_MAX_MINUS_4", "OUTPUT_POWER_2_4_MAX_MINUS_6", "OUTPUT_POWER_2_4_MAX_MINUS_7",
18
+ "OUTPUT_POWER_2_4_MAX_MINUS_8", "OUTPUT_POWER_2_4_MAX_MINUS_10", "OUTPUT_POWER_2_4_MAX_MINUS_11",
19
+ "OUTPUT_POWER_2_4_MAX_MINUS_12", "OUTPUT_POWER_2_4_MAX_MINUS_14", "OUTPUT_POWER_2_4_MAX_MINUS_15",
20
+ "OUTPUT_POWER_2_4_MAX_MINUS_16", "OUTPUT_POWER_2_4_MAX_MINUS_18", "OUTPUT_POWER_2_4_MAX_MINUS_19",
21
+ "OUTPUT_POWER_2_4_MAX_MINUS_20", "OUTPUT_POWER_2_4_MAX_MINUS_22", "OUTPUT_POWER_2_4_MAX_MINUS_23",
22
+ "OUTPUT_POWER_2_4_MAX_MINUS_26"]
23
+ }
@@ -1,8 +1,9 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
6
7
 
7
8
 
8
9
  def run(test):
@@ -15,8 +16,18 @@ def run(test):
15
16
  return cert_common.test_epilog(test)
16
17
 
17
18
  for param in test.params:
19
+ if not cert_common.output_power_supported(test.active_brg.board_type, param.value):
20
+ # Skip this parameter if its value isn't supported by the board
21
+ test.rc = TEST_SKIPPED
22
+ cert_mqtt.generate_log_file(test, param.name)
23
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
24
+ test.set_phase_rc(param.name, test.rc)
25
+ test.add_phase_reason(param.name, test.reason)
26
+ test.reset_result() # reset result and continue to next param
27
+ continue
28
+
18
29
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
19
- generate_log_file(test, param.name)
30
+ cert_mqtt.generate_log_file(test, param.name)
20
31
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
21
32
  test.set_phase_rc(param.name, test.rc)
22
33
  test.add_phase_reason(param.name, test.reason)
@@ -11,6 +11,7 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
14
+ "dataSimOnlyTest": 0,
15
+ "SupportedFromApiVersion": 12,
15
16
  "allSupportedValues": [5, 15, 30, 60]
16
17
  }
@@ -1,22 +1,24 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
7
+ import certificate.cert_data_sim as cert_data_sim
6
8
 
7
9
 
8
10
  def run(test):
9
11
 
10
12
  fields = [BRG_PACER_INTERVAL, BRG_RX_CHANNEL, BRG_PKT_FILTER]
11
- datapath_module = test.active_brg.datapath
13
+ dut = cert_config.get_brg_by_target(test, DUT)
12
14
 
13
15
  test = cert_common.test_prolog(test)
14
16
  if test.rc == TEST_FAILED:
15
17
  return cert_common.test_epilog(test)
16
18
 
17
19
  for param in test.params:
18
- test = cert_config.brg_configure_ble5(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_250K, ag.PKT_FILTER_TEMP_PKT],
19
- module=datapath_module)[0]
20
+ test = cert_config.brg_configure(test, fields=fields, values=[param.value, ag.RX_CHANNEL_10_500K, ag.PKT_FILTER_TEMP_PKT],
21
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
20
22
  if test.rc == TEST_FAILED:
21
23
  if test.exit_on_param_failure:
22
24
  break # break the whole for loop and keep the test as failed
@@ -36,9 +38,9 @@ def run(test):
36
38
  pixel_sim_thread.stop()
37
39
  time.sleep(5)
38
40
  cert_mqtt.dump_pkts(test, log=param.name)
39
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
41
+ cert_common.display_data(df, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
40
42
  test = cert_common.pacing_analysis(test, df=df, pacer_interval=param.value, num_of_pixels=num_of_pixels)
41
- generate_log_file(test, param.name)
43
+ cert_mqtt.generate_log_file(test, param.name)
42
44
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
43
45
  test.set_phase_rc(param.name, test.rc)
44
46
  test.add_phase_reason(param.name, test.reason)
@@ -47,4 +49,4 @@ def run(test):
47
49
  break # break the whole for loop and keep the test as failed
48
50
  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)
52
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -11,6 +11,7 @@
11
11
  "mandatory": 1,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
14
+ "dataSimOnlyTest": 0,
15
+ "SupportedFromApiVersion": 12,
15
16
  "allSupportedValues": [5, 10, 15, 30, 60]
16
17
  }
@@ -1,8 +1,10 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
7
+ import certificate.cert_data_sim as cert_data_sim
6
8
 
7
9
 
8
10
  def run(test):
@@ -38,9 +40,9 @@ def run(test):
38
40
  pixel_sim_thread.stop()
39
41
  time.sleep(5)
40
42
  cert_mqtt.dump_pkts(test, log=param.name)
41
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
43
+ cert_common.display_data(df, tbc=True, name_prefix=f"brg_pacer_{param.name}_", dir=test.dir)
42
44
  test = cert_common.pacing_analysis(test, df=df, pacer_interval=param.value, num_of_pixels=num_of_pixels)
43
- generate_log_file(test, param.name)
45
+ cert_mqtt.generate_log_file(test, param.name)
44
46
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
45
47
  test.set_phase_rc(param.name, test.rc)
46
48
  test.add_phase_reason(param.name, test.reason)
@@ -11,6 +11,7 @@
11
11
  "mandatory": 0,
12
12
  "multiBridgeTest": 0,
13
13
  "gwOnlyTest": 0,
14
- "internalBridge": 1,
15
- "allSupportedValues": ["DATAPATH_PATTERN_STANDARD", "DATAPATH_PATTERN_38_38_39", "DATAPATH_PATTERN_EU_PATTERN"]
14
+ "dataSimOnlyTest": 0,
15
+ "SupportedFromApiVersion": 12,
16
+ "allSupportedValues": ["DATAPATH_PATTERN_STANDARD", "DATAPATH_PATTERN_38_38_39", "DATAPATH_PATTERN_EU_PATTERN", "DATAPATH_PATTERN_EXTENDED_ADV", "DATAPATH_PATTERN_EXTENDED_ADV_38_39", "DATAPATH_PATTERN_EXTENDED_ADV_CH_10"]
16
17
  }
@@ -1,8 +1,9 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
6
7
 
7
8
 
8
9
  def run(test):
@@ -14,10 +15,17 @@ def run(test):
14
15
  if test.rc == TEST_FAILED:
15
16
  return cert_common.test_epilog(test)
16
17
 
18
+ # configure tester to listen to ch39 so we can receive 38-38-39 and euro pattern packets
19
+ test = cert_config.brg_configure(test, fields=[BRG_RX_CHANNEL], values=[ag.RX_CHANNEL_39],
20
+ module=test.tester.internal_brg.datapath,
21
+ target=TESTER)[0]
22
+ if test.rc == TEST_FAILED:
23
+ return cert_common.test_epilog(test)
24
+
17
25
  for param in test.params:
18
26
  # Set brg cfg
19
27
  test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=datapath_module)[0]
20
- generate_log_file(test, param.name)
28
+ cert_mqtt.generate_log_file(test, param.name)
21
29
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
22
30
  test.set_phase_rc(param.name, test.rc)
23
31
  test.add_phase_reason(param.name, test.reason)
@@ -25,4 +33,8 @@ def run(test):
25
33
  if test.exit_on_param_failure:
26
34
  break # break the whole for loop and keep the test as failed
27
35
  test.reset_result() # reset result and continue to next param
36
+
37
+ # configure tester to listen to default channel again
38
+ test = cert_config.brg_configure(test, module=test.tester.internal_brg.datapath, target=TESTER)[0]
39
+
28
40
  return cert_common.test_epilog(test, revert_brgs=True, modules=[datapath_module])
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Packet Filter BLE5 Channel 21",
3
+ "module": "Datapath",
4
+ "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE_5.0 channel 20",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
+ "initialCondition": "Bridge & data simulator configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "Packet filter & secondary BLE5 rx channel configuration",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Repeat for all given packet filter values",
12
+ "Test epilog and revert to defaults"],
13
+ "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
14
+ "mandatory": 0,
15
+ "multiBridgeTest": 0,
16
+ "gwOnlyTest": 0,
17
+ "dataSimOnlyTest": 0,
18
+ "SupportedFromApiVersion": 13,
19
+ "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
20
+ }
@@ -0,0 +1,61 @@
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.ag.wlt_types_ag import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_common as cert_common
6
+ import certificate.cert_config as cert_config
7
+ import certificate.cert_data_sim as cert_data_sim
8
+
9
+ PKT_FILTER_TEST_PACER_INTERVAL = 10
10
+
11
+
12
+ def run(test):
13
+
14
+ fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
+
17
+ test = cert_common.test_prolog(test)
18
+ if test.rc == TEST_FAILED:
19
+ return cert_common.test_epilog(test)
20
+
21
+ for param in test.params:
22
+ test = cert_config.brg_configure(test, fields=fields,
23
+ values=[param.value, RX_CHANNEL_21, PKT_FILTER_TEST_PACER_INTERVAL],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
25
+ test.set_phase_rc(param.name, test.rc)
26
+ test.add_phase_reason(param.name, test.reason)
27
+ if test.rc == TEST_FAILED:
28
+ if test.exit_on_param_failure:
29
+ break # break the whole for loop and keep the test as failed
30
+ else:
31
+ test.reset_result() # reset result and continue to next param
32
+ continue
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
34
+ num_of_pixels = 0
35
+ if test.data == DATA_SIMULATION:
36
+ # start generating pkts and send them using data simulator
37
+ num_of_pixels = 5
38
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2,
39
+ delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED,
40
+ channel=SECONDARY_RX_CHANNEL_21)
41
+ pixel_sim_thread.start()
42
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
43
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 6, per_pkt_type=True,
44
+ pkt_filter_cfg=param.value, flush_pkts=True)
45
+ if test.data == DATA_SIMULATION:
46
+ # stop generating pkts with data simulator and wait a few seconds for full flush
47
+ pixel_sim_thread.stop()
48
+ time.sleep(5)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
50
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
51
+ num_of_pixels=num_of_pixels, is_ble5_test=True)
52
+ cert_mqtt.generate_log_file(test, param.name)
53
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
54
+ test.set_phase_rc(param.name, test.rc)
55
+ test.add_phase_reason(param.name, test.reason)
56
+ if test.rc == TEST_FAILED:
57
+ if test.exit_on_param_failure:
58
+ break # break the whole for loop and keep the test as failed
59
+ test.reset_result() # reset result and continue to next param
60
+
61
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -14,6 +14,7 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
+ "SupportedFromApiVersion": 12,
18
19
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
19
20
  }
@@ -1,8 +1,10 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.ag.wlt_types_ag import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.ag.wlt_types_ag import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -10,16 +12,16 @@ PKT_FILTER_TEST_PACER_INTERVAL = 10
10
12
  def run(test):
11
13
 
12
14
  fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL]
13
- datapath_module = eval(f'ModuleDatapathV{test.active_brg.api_version}')
15
+ dut = cert_config.get_brg_by_target(test, DUT)
14
16
 
15
17
  test = cert_common.test_prolog(test)
16
18
  if test.rc == TEST_FAILED:
17
19
  return cert_common.test_epilog(test)
18
20
 
19
21
  for param in test.params:
20
- test = cert_config.brg_configure_ble5(test, fields=fields,
21
- values=[param.value, RX_CHANNEL_10_250K, PKT_FILTER_TEST_PACER_INTERVAL],
22
- module=datapath_module)[0]
22
+ test = cert_config.brg_configure(test, fields=fields,
23
+ values=[param.value, RX_CHANNEL_10_500K, PKT_FILTER_TEST_PACER_INTERVAL],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
23
25
  test.set_phase_rc(param.name, test.rc)
24
26
  test.add_phase_reason(param.name, test.reason)
25
27
  if test.rc == TEST_FAILED:
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
  num_of_pixels = 0
34
35
  if test.data == DATA_SIMULATION:
35
36
  # start generating pkts and send them using data simulator
@@ -44,10 +45,10 @@ def run(test):
44
45
  # stop generating pkts with data simulator and wait a few seconds for full flush
45
46
  pixel_sim_thread.stop()
46
47
  time.sleep(5)
47
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
48
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
48
49
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
49
50
  num_of_pixels=num_of_pixels, is_ble5_test=True)
50
- generate_log_file(test, param.name)
51
+ cert_mqtt.generate_log_file(test, param.name)
51
52
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
52
53
  test.set_phase_rc(param.name, test.rc)
53
54
  test.add_phase_reason(param.name, test.reason)
@@ -56,4 +57,4 @@ def run(test):
56
57
  break # break the whole for loop and keep the test as failed
57
58
  test.reset_result() # reset result and continue to next param
58
59
 
59
- return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[datapath_module], ble5=True)
60
+ return cert_common.test_epilog(test, revert_brgs=True, revert_gws=test.internal_brg, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "Packet Filter BLE5 Using Bridge to Gateway Extended Advertising",
3
+ "module": "Datapath",
4
+ "purpose": "Test packet filter feature configuration and functionality in the bridge for different packet filters using BLE_5.0, while the bridge is transmitting in extended advertising",
5
+ "documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Data-Path-Module-Pacing",
6
+ "initialCondition": "Bridge & data simulator configured to defaults",
7
+ "procedure": ["Test prolog",
8
+ "Packet filter & secondary BLE5 rx channel configuration & pattern configuration to bridge to gateway extended advertising",
9
+ "Generate pixels packets & scan for packets in the bridge",
10
+ "Compare pacer interval mean per pixel & packet type to the configured value",
11
+ "Test epilog and revert to defaults"],
12
+ "expectedOutcome": "All values configured successfully and actual pacing found matching to the configured values",
13
+ "mandatory": 0,
14
+ "multiBridgeTest": 0,
15
+ "gwOnlyTest": 0,
16
+ "dataSimOnlyTest": 0,
17
+ "SupportedFromApiVersion": 13,
18
+ "allSupportedValues": ["RX_CHANNEL_37", "RX_CHANNEL_38", "RX_CHANNEL_39", "RX_CHANNEL_10_500K"]
19
+ }
@@ -0,0 +1,85 @@
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.ag.wlt_types_ag import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
8
+
9
+ PKT_FILTER_TEST_PACER_INTERVAL = 4
10
+
11
+
12
+ def run(test):
13
+
14
+ fields = [BRG_PKT_FILTER, BRG_RX_CHANNEL, BRG_PACER_INTERVAL, BRG_PATTERN]
15
+ dut = cert_config.get_brg_by_target(test, DUT)
16
+
17
+ test = cert_common.test_prolog(test)
18
+ if test.rc == TEST_FAILED:
19
+ return cert_common.test_epilog(test)
20
+
21
+ test = cert_config.brg_configure(test, fields=fields,
22
+ values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS, RX_CHANNEL_10_500K,
23
+ PKT_FILTER_TEST_PACER_INTERVAL, DATAPATH_PATTERN_EXTENDED_ADV],
24
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
25
+ if test.rc == TEST_FAILED:
26
+ return cert_common.test_epilog(test)
27
+
28
+ for param in test.params:
29
+ # Configure tester's rx channel
30
+ test = cert_config.brg_configure(test, fields=[BRG_RX_CHANNEL],
31
+ values=[param.value],
32
+ module=test.tester.internal_brg.datapath,
33
+ target=TESTER)[0]
34
+ test.set_phase_rc(param.name, test.rc)
35
+ test.add_phase_reason(param.name, test.reason)
36
+ if test.rc == TEST_FAILED:
37
+ if test.exit_on_param_failure:
38
+ break # break the whole for loop and keep the test as failed
39
+ else:
40
+ test.reset_result() # reset result and continue to next param
41
+ continue
42
+
43
+ # Configure the BRG to DATAPATH_PATTERN_EXTENDED_ADV_CH_10 if the GW listens to channel 10
44
+ if param.value == RX_CHANNEL_10_500K:
45
+ test = cert_config.brg_configure(test, fields=fields,
46
+ values=[PKT_FILTER_TEMP_AND_ADVANCED_PKTS, RX_CHANNEL_10_500K,
47
+ PKT_FILTER_TEST_PACER_INTERVAL, DATAPATH_PATTERN_EXTENDED_ADV_CH_10],
48
+ module=dut.datapath, ble5=test.dut_is_bridge())[0]
49
+ if test.rc == TEST_FAILED:
50
+ if test.exit_on_param_failure:
51
+ break # break the whole for loop and keep the test as failed
52
+ test.reset_result() # reset result and continue to next param
53
+
54
+ wait_time_n_print(5, txt="Waiting datapath to clear")
55
+ num_of_pixels = 0
56
+ if test.data == DATA_SIMULATION:
57
+ # start generating pkts and send them using data simulator
58
+ num_of_pixels = 50
59
+ pixel_sim_thread = cert_data_sim.DataSimThread(test=test, num_of_pixels=num_of_pixels, duplicates=2,
60
+ delay=0, pkt_types=[2], pixels_type=GEN3_EXTENDED)
61
+ pixel_sim_thread.start()
62
+ df = cert_common.data_scan(test, brg_data=(not test.internal_brg), gw_data=test.internal_brg,
63
+ scan_time=PKT_FILTER_TEST_PACER_INTERVAL * 8, per_pkt_type=True,
64
+ pkt_filter_cfg=PKT_FILTER_TEMP_AND_ADVANCED_PKTS, flush_pkts=True)
65
+ if test.data == DATA_SIMULATION:
66
+ # stop generating pkts with data simulator and wait a few seconds for full flush
67
+ pixel_sim_thread.stop()
68
+ time.sleep(5)
69
+ cert_common.display_data(df, tbc=True, name_prefix=f"{param.name}_", dir=test.dir)
70
+ test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df,
71
+ pkt_filter_cfg=PKT_FILTER_TEMP_AND_ADVANCED_PKTS,
72
+ num_of_pixels=num_of_pixels, is_ble5_test=True, ext_adv_brg2gw=True)
73
+ cert_mqtt.generate_log_file(test, param.name)
74
+ field_functionality_pass_fail_print(test, fields[0], value=param.name)
75
+ test.set_phase_rc(param.name, test.rc)
76
+ test.add_phase_reason(param.name, test.reason)
77
+ if test.rc == TEST_FAILED:
78
+ if test.exit_on_param_failure:
79
+ break # break the whole for loop and keep the test as failed
80
+ test.reset_result() # reset result and continue to next param
81
+
82
+ # Revert tester's rx channel
83
+ test = cert_config.brg_configure(test, module=test.tester.internal_brg.datapath, target=TESTER)[0]
84
+
85
+ return cert_common.test_epilog(test, revert_brgs=True, modules=[dut.datapath], ble5=test.dut_is_bridge())
@@ -14,6 +14,7 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
+ "SupportedFromApiVersion": 12,
18
19
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS"]
19
20
  }
@@ -1,8 +1,10 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
 
34
35
  num_of_pixels = 0
35
36
  if test.data == DATA_SIMULATION:
@@ -45,10 +46,10 @@ def run(test):
45
46
  # stop generating pkts with data simulator and wait a few seconds for full flush
46
47
  pixel_sim_thread.stop()
47
48
  time.sleep(5)
48
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_gen3_{param.name}_", dir=test.dir)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"pkt_filter_gen3_{param.name}_", dir=test.dir)
49
50
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df, pkt_filter_cfg=param.value,
50
51
  num_of_pixels=num_of_pixels)
51
- generate_log_file(test, param.name)
52
+ cert_mqtt.generate_log_file(test, param.name)
52
53
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
53
54
  test.set_phase_rc(param.name, test.rc)
54
55
  test.add_phase_reason(param.name, test.reason)
@@ -14,6 +14,7 @@
14
14
  "mandatory": 0,
15
15
  "multiBridgeTest": 0,
16
16
  "gwOnlyTest": 0,
17
- "internalBridge": 1,
17
+ "dataSimOnlyTest": 0,
18
+ "SupportedFromApiVersion": 12,
18
19
  "allSupportedValues": ["PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT", "PKT_FILTER_DISABLE_FORWARDING", "PKT_FILTER_TEMP_PKT", "PKT_FILTER_TEMP_AND_ADVANCED_PKTS", "PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS"]
19
20
  }
@@ -1,8 +1,10 @@
1
- from brg_certificate.cert_prints import *
2
- from brg_certificate.cert_defines import *
3
- from brg_certificate.wlt_types import *
4
- import brg_certificate.cert_common as cert_common
5
- import brg_certificate.cert_config as cert_config
1
+ from certificate.cert_prints import *
2
+ from certificate.cert_defines import *
3
+ from certificate.wlt_types import *
4
+ import certificate.cert_mqtt as cert_mqtt
5
+ import certificate.cert_data_sim as cert_data_sim
6
+ import certificate.cert_common as cert_common
7
+ import certificate.cert_config as cert_config
6
8
 
7
9
  PKT_FILTER_TEST_PACER_INTERVAL = 10
8
10
 
@@ -28,8 +30,7 @@ def run(test):
28
30
  else:
29
31
  test.reset_result() # reset result and continue to next param
30
32
  continue
31
- print("waiting 5 seconds for datapath to clear")
32
- print_update_wait(5)
33
+ wait_time_n_print(5, txt="Waiting datapath to clear")
33
34
 
34
35
  num_of_pixels = 0
35
36
  if test.data == DATA_SIMULATION:
@@ -45,10 +46,10 @@ def run(test):
45
46
  # stop generating pkts with data simulator and wait a few seconds for full flush
46
47
  pixel_sim_thread.stop()
47
48
  time.sleep(5)
48
- cert_common.display_data(df, nfpkt=True, tbc=True, name_prefix=f"pkt_filter_{param.name}_", dir=test.dir)
49
+ cert_common.display_data(df, tbc=True, name_prefix=f"pkt_filter_{param.name}_", dir=test.dir)
49
50
  test = cert_common.pacing_analysis(test, pacer_interval=PKT_FILTER_TEST_PACER_INTERVAL, df=df,
50
51
  pkt_filter_cfg=param.value, num_of_pixels=num_of_pixels)
51
- generate_log_file(test, param.name)
52
+ cert_mqtt.generate_log_file(test, param.name)
52
53
  field_functionality_pass_fail_print(test, fields[0], value=param.name)
53
54
  test.set_phase_rc(param.name, test.rc)
54
55
  test.add_phase_reason(param.name, test.reason)