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.
- {brg_certificate → certificate}/ag/wlt_cmd_if.html +10 -4
- {brg_certificate → certificate}/ag/wlt_types_ag.py +1878 -519
- certificate/cert_common.py +1488 -0
- certificate/cert_config.py +480 -0
- {brg_certificate → certificate}/cert_data_sim.py +134 -46
- {brg_certificate → certificate}/cert_defines.py +129 -128
- {brg_certificate → certificate}/cert_gw_sim.py +183 -53
- {brg_certificate → certificate}/cert_mqtt.py +179 -64
- {brg_certificate → certificate}/cert_prints.py +35 -33
- {brg_certificate → certificate}/cert_protobuf.py +15 -6
- {brg_certificate → certificate}/cert_results.py +240 -64
- certificate/cert_utils.py +634 -0
- certificate/certificate.py +205 -0
- certificate/certificate_cli.py +76 -0
- certificate/certificate_eth_test_list.txt +76 -0
- certificate/certificate_sanity_test_list.txt +66 -0
- certificate/certificate_test_list.txt +76 -0
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.json +3 -2
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.py +7 -6
- certificate/tests/calibration/output_power_test/output_power_test.json +23 -0
- certificate/tests/calibration/output_power_test/output_power_test.py +39 -0
- {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.json +2 -1
- {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.py +20 -15
- certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.json +15 -0
- certificate/tests/cloud_connectivity/acl_ext_adv_test/acl_ext_adv_test.py +140 -0
- certificate/tests/cloud_connectivity/acl_test/acl_test.json +15 -0
- certificate/tests/cloud_connectivity/acl_test/acl_test.py +96 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +19 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +41 -0
- certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +19 -0
- certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.py +215 -0
- certificate/tests/cloud_connectivity/connection_test/connection_test.json +18 -0
- certificate/tests/cloud_connectivity/connection_test/connection_test.py +67 -0
- certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.json +15 -0
- certificate/tests/cloud_connectivity/deduplication_test/deduplication_test.py +80 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +21 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +201 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +17 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +104 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +18 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +59 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test.json +20 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test.py +384 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test_cli.py +90 -0
- certificate/tests/cloud_connectivity/stress_test/stress_test.json +17 -0
- certificate/tests/cloud_connectivity/stress_test/stress_test.py +101 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +25 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +92 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +20 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +169 -0
- {brg_certificate → certificate}/tests/datapath/aging_test/aging_test.json +2 -1
- certificate/tests/datapath/aging_test/aging_test.py +142 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.json +17 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.py +89 -0
- certificate/tests/datapath/event_test/event_test.json +17 -0
- certificate/tests/datapath/event_test/event_test.py +80 -0
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.json +4 -3
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.py +19 -13
- certificate/tests/datapath/output_power_test/output_power_test.json +23 -0
- {brg_certificate → certificate}/tests/datapath/output_power_test/output_power_test.py +17 -6
- {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +13 -11
- {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.py +9 -7
- {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.json +3 -2
- {brg_certificate → certificate}/tests/datapath/pattern_test/pattern_test.py +18 -6
- certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.json +20 -0
- certificate/tests/datapath/pkt_filter_ble5_chl21_test/pkt_filter_ble5_chl21_test.py +61 -0
- {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +15 -14
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +19 -0
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +85 -0
- {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.py +10 -9
- {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.json +2 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_test/pkt_filter_test.py +10 -9
- {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.json +3 -2
- {brg_certificate → certificate}/tests/datapath/rssi_threshold_test/rssi_threshold_test.py +9 -8
- 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
- certificate/tests/datapath/rx_channel_hopping_test/rx_channel_hopping_test.py +77 -0
- {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.json +3 -2
- {brg_certificate → certificate}/tests/datapath/rx_channel_test/rx_channel_test.py +7 -6
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.json +8 -7
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +113 -73
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +8 -7
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.py +112 -72
- {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.json +4 -3
- {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.py +15 -11
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.json +4 -3
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.py +15 -11
- {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.json +3 -1
- {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.py +14 -13
- certificate/tests/edge_mgmt/action_blink_test/action_blink_test.json +15 -0
- certificate/tests/edge_mgmt/action_blink_test/action_blink_test.py +24 -0
- certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.json +15 -0
- certificate/tests/edge_mgmt/action_get_battery_sensor_test/action_get_battery_sensor_test.py +43 -0
- certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.json +15 -0
- certificate/tests/edge_mgmt/action_get_module_test/action_get_module_test.py +42 -0
- certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.json +15 -0
- certificate/tests/edge_mgmt/action_get_pof_data_test/action_get_pof_data_test.py +44 -0
- certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.json +16 -0
- certificate/tests/edge_mgmt/action_gw_hb_test/action_gw_hb_test.py +42 -0
- certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.json +15 -0
- certificate/tests/edge_mgmt/action_reboot_test/action_reboot_test.py +49 -0
- certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.json +15 -0
- certificate/tests/edge_mgmt/action_restore_defaults_test/action_restore_defaults_test.py +102 -0
- certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.json +15 -0
- certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +45 -0
- {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +3 -2
- {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.py +22 -11
- {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.json +2 -1
- {brg_certificate → certificate}/tests/energy2400/duty_cycle_test/duty_cycle_test.py +7 -6
- certificate/tests/energy2400/output_power_test/output_power_test.json +23 -0
- {brg_certificate → certificate}/tests/energy2400/output_power_test/output_power_test.py +17 -6
- {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.json +2 -1
- {brg_certificate → certificate}/tests/energy2400/pattern_test/pattern_test.py +7 -6
- certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.json +26 -0
- certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +379 -0
- certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +20 -0
- certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +173 -0
- certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +24 -0
- certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +350 -0
- {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.json +2 -1
- {brg_certificate → certificate}/tests/energy_sub1g/duty_cycle_test/duty_cycle_test.py +7 -6
- {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.json +2 -1
- {brg_certificate → certificate}/tests/energy_sub1g/pattern_test/pattern_test.py +7 -6
- {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.json +2 -1
- {brg_certificate → certificate}/tests/pwr_mgmt/pwr_mgmt_test/pwr_mgmt_test.py +10 -10
- {brg_certificate → certificate}/tests/sensors/ext_sensor_test/ext_sensor_test.json +5 -4
- certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +450 -0
- certificate/wlt_types.py +122 -0
- {gw_certificate → common}/api_if/202/status.json +6 -0
- {gw_certificate → common}/api_if/203/status.json +6 -0
- {gw_certificate → common}/api_if/204/status.json +6 -0
- common/api_if/206/data.json +85 -0
- common/api_if/206/status.json +69 -0
- common/api_if/api_validation.py +91 -0
- common/web/templates/generator.html +210 -0
- common/web/templates/index.html +20 -0
- common/web/templates/menu.html +54 -0
- common/web/templates/parser.html +53 -0
- {brg_certificate/ag → common/web/templates}/wlt_types.html +1216 -191
- common/web/web_utils.py +399 -0
- {brg_certificate → common}/wltPb_pb2.py +14 -12
- {gw_certificate/common → common}/wltPb_pb2.pyi +16 -2
- gui_certificate/gui_certificate_cli.py +14 -0
- gui_certificate/server.py +1267 -0
- gui_certificate/templates/cert_run.html +1273 -0
- wiliot_certificate-4.5.0.dist-info/METADATA +99 -0
- wiliot_certificate-4.5.0.dist-info/RECORD +168 -0
- {wiliot_certificate-4.4.2.dist-info → wiliot_certificate-4.5.0.dist-info}/WHEEL +1 -1
- wiliot_certificate-4.5.0.dist-info/entry_points.txt +5 -0
- wiliot_certificate-4.5.0.dist-info/top_level.txt +3 -0
- brg_certificate/ag/energous_v0_defines.py +0 -925
- brg_certificate/ag/energous_v1_defines.py +0 -931
- brg_certificate/ag/energous_v2_defines.py +0 -925
- brg_certificate/ag/energous_v3_defines.py +0 -925
- brg_certificate/ag/energous_v4_defines.py +0 -925
- brg_certificate/ag/fanstel_lan_v0_defines.py +0 -925
- brg_certificate/ag/fanstel_lte_v0_defines.py +0 -925
- brg_certificate/ag/fanstel_wifi_v0_defines.py +0 -925
- brg_certificate/ag/minew_lte_v0_defines.py +0 -925
- brg_certificate/ag/wlt_types_ag_jsons/brg2brg_ota.json +0 -142
- brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb.json +0 -785
- brg_certificate/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +0 -139
- brg_certificate/ag/wlt_types_ag_jsons/calibration.json +0 -394
- brg_certificate/ag/wlt_types_ag_jsons/custom.json +0 -515
- brg_certificate/ag/wlt_types_ag_jsons/datapath.json +0 -672
- brg_certificate/ag/wlt_types_ag_jsons/energy2400.json +0 -550
- brg_certificate/ag/wlt_types_ag_jsons/energySub1g.json +0 -595
- brg_certificate/ag/wlt_types_ag_jsons/externalSensor.json +0 -598
- brg_certificate/ag/wlt_types_ag_jsons/interface.json +0 -938
- brg_certificate/ag/wlt_types_ag_jsons/powerManagement.json +0 -1234
- brg_certificate/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -105
- brg_certificate/ag/wlt_types_ag_jsons/signal_indicator_data.json +0 -77
- brg_certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +0 -61
- brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +0 -110
- brg_certificate/brg_certificate.py +0 -225
- brg_certificate/brg_certificate_cli.py +0 -63
- brg_certificate/cert_common.py +0 -923
- brg_certificate/cert_config.py +0 -402
- brg_certificate/cert_utils.py +0 -362
- brg_certificate/certificate_bcc_sanity_test_list.txt +0 -40
- brg_certificate/certificate_bcc_test_list.txt +0 -48
- brg_certificate/certificate_sanity_test_list.txt +0 -43
- brg_certificate/certificate_test_list.txt +0 -53
- brg_certificate/config/eclipse.json +0 -10
- brg_certificate/config/hivemq.json +0 -10
- brg_certificate/config/mosquitto.json +0 -10
- brg_certificate/config/mosquitto.md +0 -95
- brg_certificate/config/wiliot-dev.json +0 -10
- brg_certificate/restore_brg.py +0 -61
- brg_certificate/tests/calibration/output_power_test/output_power_test.json +0 -16
- brg_certificate/tests/calibration/output_power_test/output_power_test.py +0 -28
- brg_certificate/tests/datapath/aging_test/aging_test.py +0 -143
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.json +0 -16
- brg_certificate/tests/datapath/pacer_interval_tags_count_test/pacer_interval_tags_count_test.py +0 -73
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.json +0 -17
- brg_certificate/tests/datapath/tx_repetition_algo_test/tx_repetition_algo_test.py +0 -118
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.json +0 -14
- brg_certificate/tests/edge_mgmt/actions_test/actions_test.py +0 -396
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.json +0 -20
- brg_certificate/tests/edge_mgmt/brg2brg_ota_ble5_test/brg2brg_ota_ble5_test.py +0 -94
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.json +0 -19
- brg_certificate/tests/edge_mgmt/brg2brg_ota_test/brg2brg_ota_test.py +0 -87
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.json +0 -17
- brg_certificate/tests/edge_mgmt/leds_test/leds_test.py +0 -223
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.json +0 -17
- brg_certificate/tests/edge_mgmt/ota_test/ota_test.py +0 -128
- brg_certificate/tests/energy2400/output_power_test/output_power_test.json +0 -16
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_250k_test/signal_indicator_ble5_10_250k_test.py +0 -321
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py +0 -321
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_sub1g_2_4_test/signal_indicator_sub1g_2_4_test.py +0 -141
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +0 -20
- brg_certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.py +0 -276
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.json +0 -20
- brg_certificate/tests/energy_sub1g/signal_indicator_functionality_test/signal_indicator_functionality_test.py +0 -390
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.json +0 -16
- brg_certificate/tests/energy_sub1g/signal_indicator_test/signal_indicator_test.py +0 -28
- brg_certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +0 -305
- brg_certificate/wltPb_pb2.pyi +0 -234
- brg_certificate/wlt_types.py +0 -113
- gw_certificate/ag/ut_defines.py +0 -364
- gw_certificate/ag/wlt_types.py +0 -85
- gw_certificate/ag/wlt_types_ag.py +0 -5310
- gw_certificate/ag/wlt_types_data.py +0 -64
- gw_certificate/api/extended_api.py +0 -23
- gw_certificate/api_if/200/data.json +0 -106
- gw_certificate/api_if/200/status.json +0 -47
- gw_certificate/api_if/201/data.json +0 -98
- gw_certificate/api_if/201/status.json +0 -53
- gw_certificate/api_if/205/logs.json +0 -12
- gw_certificate/api_if/api_validation.py +0 -38
- gw_certificate/api_if/gw_capabilities.py +0 -54
- gw_certificate/cert_results.py +0 -145
- gw_certificate/common/analysis_data_bricks.py +0 -60
- gw_certificate/common/debug.py +0 -42
- gw_certificate/common/serialization_formatter.py +0 -93
- gw_certificate/common/utils.py +0 -8
- gw_certificate/common/utils_defines.py +0 -15
- gw_certificate/common/wltPb_pb2.py +0 -84
- gw_certificate/gw_certificate.py +0 -154
- gw_certificate/gw_certificate_cli.py +0 -87
- gw_certificate/interface/4.4.91_app.zip +0 -0
- gw_certificate/interface/4.4.91_sd_bl_app.zip +0 -0
- gw_certificate/interface/ble_simulator.py +0 -61
- gw_certificate/interface/ble_sniffer.py +0 -189
- gw_certificate/interface/flash_fw.py +0 -90
- gw_certificate/interface/if_defines.py +0 -36
- gw_certificate/interface/mqtt.py +0 -563
- gw_certificate/interface/nrfutil-linux +0 -0
- gw_certificate/interface/nrfutil-mac +0 -0
- gw_certificate/interface/nrfutil.exe +0 -0
- gw_certificate/interface/pkt_generator.py +0 -594
- gw_certificate/interface/uart_if.py +0 -236
- gw_certificate/interface/uart_ports.py +0 -20
- gw_certificate/templates/results.html +0 -241
- gw_certificate/templates/stage.html +0 -22
- gw_certificate/templates/table.html +0 -6
- gw_certificate/templates/test.html +0 -38
- gw_certificate/tests/__init__.py +0 -10
- gw_certificate/tests/actions.py +0 -289
- gw_certificate/tests/bad_crc_to_PER_quantization.csv +0 -51
- gw_certificate/tests/connection.py +0 -188
- gw_certificate/tests/downlink.py +0 -172
- gw_certificate/tests/generic.py +0 -238
- gw_certificate/tests/registration.py +0 -340
- gw_certificate/tests/static/__init__.py +0 -0
- gw_certificate/tests/static/connection_defines.py +0 -9
- gw_certificate/tests/static/downlink_defines.py +0 -9
- gw_certificate/tests/static/generated_packet_table.py +0 -195
- gw_certificate/tests/static/packet_table.csv +0 -10067
- gw_certificate/tests/static/references.py +0 -5
- gw_certificate/tests/static/uplink_defines.py +0 -14
- gw_certificate/tests/throughput.py +0 -240
- gw_certificate/tests/uplink.py +0 -853
- wiliot_certificate-4.4.2.dist-info/METADATA +0 -211
- wiliot_certificate-4.4.2.dist-info/RECORD +0 -210
- wiliot_certificate-4.4.2.dist-info/entry_points.txt +0 -3
- wiliot_certificate-4.4.2.dist-info/top_level.txt +0 -3
- {brg_certificate → certificate}/__init__.py +0 -0
- {gw_certificate → common}/api_if/202/data.json +0 -0
- {gw_certificate/api_if/200 → common/api_if/202}/logs.json +0 -0
- {gw_certificate → common}/api_if/203/data.json +0 -0
- {gw_certificate/api_if/201 → common/api_if/203}/logs.json +0 -0
- {gw_certificate → common}/api_if/204/data.json +0 -0
- {gw_certificate/api_if/202 → common/api_if/204}/logs.json +0 -0
- {gw_certificate → common}/api_if/205/data.json +0 -0
- {gw_certificate/api_if/203 → common/api_if/205}/logs.json +0 -0
- {gw_certificate → common}/api_if/205/status.json +0 -0
- {gw_certificate/api_if/204 → common/api_if/206}/logs.json +0 -0
- {gw_certificate → common/api_if}/__init__.py +0 -0
- {gw_certificate/api_if → gui_certificate}/__init__.py +0 -0
- {wiliot_certificate-4.4.2.dist-info → wiliot_certificate-4.5.0.dist-info}/licenses/LICENSE +0 -0
brg_certificate/cert_utils.py
DELETED
|
@@ -1,362 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
import os
|
|
3
|
-
import random
|
|
4
|
-
import tabulate
|
|
5
|
-
import importlib # needed for importing all of the tests
|
|
6
|
-
from requests import codes as r_codes
|
|
7
|
-
|
|
8
|
-
# Local imports
|
|
9
|
-
import brg_certificate.cert_config as cert_config
|
|
10
|
-
import brg_certificate.cert_common as cert_common
|
|
11
|
-
import brg_certificate.cert_results as cert_results
|
|
12
|
-
from brg_certificate.wlt_types import *
|
|
13
|
-
from brg_certificate.cert_defines import *
|
|
14
|
-
from brg_certificate.cert_prints import *
|
|
15
|
-
|
|
16
|
-
MULTI_BRG_STR = "multi_brg" # used for multi brg tests
|
|
17
|
-
GW_ONLY_STR = "gw_only" # used for gw only tests
|
|
18
|
-
INTERNAL_BRG_STR = "internal_brg"
|
|
19
|
-
ORIGINAL_AG_FILE = "wlt_types_ag.py"
|
|
20
|
-
|
|
21
|
-
##################################
|
|
22
|
-
# Utils
|
|
23
|
-
##################################
|
|
24
|
-
|
|
25
|
-
TEST_MODULES_MAP = {"calibration": ag.MODULE_CALIBRATION, "datapath": ag.MODULE_DATAPATH, "energy2400": ag.MODULE_ENERGY_2400, "energy_sub1g": ag.MODULE_ENERGY_SUB1G,
|
|
26
|
-
"pwr_mgmt": ag.MODULE_PWR_MGMT, "sensors": ag.MODULE_EXT_SENSORS, "custom": ag.MODULE_CUSTOM}
|
|
27
|
-
|
|
28
|
-
STATIC_RANDOM_ADDR_MASK = 0xC00000000000
|
|
29
|
-
hex2alias_id_get = lambda id_str: cert_common.int2mac_get(int(id_str, 16) | STATIC_RANDOM_ADDR_MASK)
|
|
30
|
-
|
|
31
|
-
def module2name(module_id):
|
|
32
|
-
for k, v in TEST_MODULES_MAP.items():
|
|
33
|
-
if module_id == v:
|
|
34
|
-
return k
|
|
35
|
-
return ''
|
|
36
|
-
|
|
37
|
-
def load_module(module_name, module_path, rel_path="."):
|
|
38
|
-
spec = importlib.util.spec_from_file_location(module_name, os.path.join(BASE_DIR, rel_path, module_path))
|
|
39
|
-
module = importlib.util.module_from_spec(spec)
|
|
40
|
-
spec.loader.exec_module(module)
|
|
41
|
-
return module
|
|
42
|
-
|
|
43
|
-
def handle_error(error, start_time):
|
|
44
|
-
utPrint(error, "red")
|
|
45
|
-
duration = (datetime.datetime.now()-start_time)
|
|
46
|
-
cert_results.generate_results_files(html=True, pdf=False, start_time=start_time, duration=duration, error=error, pipeline=cert_common.pipeline_running())
|
|
47
|
-
sys.exit(-1)
|
|
48
|
-
|
|
49
|
-
##################################
|
|
50
|
-
# Test
|
|
51
|
-
##################################
|
|
52
|
-
class WltTest:
|
|
53
|
-
def __init__(self, line, gw, mqttc, sim_mqttc=None, brg0=None, brg1=None, exit_on_param_failure=False, gw_lan=False,
|
|
54
|
-
gw_orig_versions={}, server=PROD, latest=False, release_candidate=False, private_setup=False,
|
|
55
|
-
internal_brg_obj=None, gw_sim='', data='', port='', protobuf=False):
|
|
56
|
-
if line:
|
|
57
|
-
test_list_line = line.strip().split()
|
|
58
|
-
self.name = test_list_line[0]
|
|
59
|
-
self.test_module = ag.MODULE_EMPTY # Default test module
|
|
60
|
-
# Determine test's module
|
|
61
|
-
for s in self.name.split('/'):
|
|
62
|
-
if s in TEST_MODULES_MAP:
|
|
63
|
-
self.test_module = TEST_MODULES_MAP[s]
|
|
64
|
-
break
|
|
65
|
-
line_params = test_list_line[1:]
|
|
66
|
-
self.dir = os.path.join("tests", self.name)
|
|
67
|
-
self.module_name = os.path.join(os.path.basename(self.name))
|
|
68
|
-
self.file = os.path.join(self.dir, os.path.basename(self.name)+".py")
|
|
69
|
-
# Load test json
|
|
70
|
-
test_json_file = open(os.path.join(BASE_DIR, self.dir, os.path.basename(self.name)+".json"))
|
|
71
|
-
self.test_json = json.load(test_json_file)
|
|
72
|
-
self.gw_only = self.test_json[GW_ONLY_TEST]
|
|
73
|
-
self.multi_brg = self.test_json[MULTI_BRG_TEST]
|
|
74
|
-
self.internal_brg = INTERNAL_BRG_STR in line_params
|
|
75
|
-
if INTERNAL_BRG_STR in line_params: line_params.remove(INTERNAL_BRG_STR)
|
|
76
|
-
self.create_test_phases_and_params(line_params)
|
|
77
|
-
else:
|
|
78
|
-
self.test_json = {}
|
|
79
|
-
self.internal_brg = False
|
|
80
|
-
self.multi_brg = False
|
|
81
|
-
self.phases = [Phase(PRE_CONFIG), Phase(TEST_BODY), Phase(RESTORE_CONFIG)]
|
|
82
|
-
self.params = []
|
|
83
|
-
|
|
84
|
-
self.gw = gw
|
|
85
|
-
self.internal_brg_obj = internal_brg_obj
|
|
86
|
-
# Actual brg to cfg - can be brg0 or brg1
|
|
87
|
-
self.active_brg = brg0
|
|
88
|
-
self.ab = self.active_brg # alias name
|
|
89
|
-
self.brg0 = brg0
|
|
90
|
-
self.brg1 = brg1
|
|
91
|
-
self.rc = TEST_PASSED
|
|
92
|
-
self.reason = ""
|
|
93
|
-
self.start_time = None
|
|
94
|
-
self.end_time = None
|
|
95
|
-
self.duration = None
|
|
96
|
-
self.mqttc = mqttc
|
|
97
|
-
self.sim_mqttc = sim_mqttc
|
|
98
|
-
self.rtsa = ""
|
|
99
|
-
self.exit_on_param_failure = exit_on_param_failure
|
|
100
|
-
self.rand = random.randrange(255)
|
|
101
|
-
self.gw_lan = gw_lan
|
|
102
|
-
self.gw_orig_versions = gw_orig_versions
|
|
103
|
-
self.server = server
|
|
104
|
-
self.latest = latest
|
|
105
|
-
self.release_candidate = release_candidate
|
|
106
|
-
self.private_setup = private_setup
|
|
107
|
-
self.gw_sim = gw_sim
|
|
108
|
-
self.data = data
|
|
109
|
-
self.port = port
|
|
110
|
-
self.protobuf = protobuf
|
|
111
|
-
|
|
112
|
-
def create_test_phases_and_params(self, line_params):
|
|
113
|
-
self.params = []
|
|
114
|
-
if len(self.test_json[ALL_SUPPORTED_VALUES]) > 0:
|
|
115
|
-
self.phases = [Phase(PRE_CONFIG)] + [Phase(param) for param in self.test_json[ALL_SUPPORTED_VALUES]] + [Phase(RESTORE_CONFIG)]
|
|
116
|
-
for param_phase in self.phases:
|
|
117
|
-
param = Param(param_phase.name)
|
|
118
|
-
if (param.name in line_params or param.value in [eval_param(p) for p in line_params]):
|
|
119
|
-
self.params += [param]
|
|
120
|
-
else:
|
|
121
|
-
param_phase.tested = False
|
|
122
|
-
param_phase.rc = TEST_SKIPPED
|
|
123
|
-
if all([param_phase.rc == TEST_SKIPPED for param_phase in self.phases]):
|
|
124
|
-
error = f"ERROR: All params skipped for test {self.name}! Check test list file and update the supported values!\n{[f.__dict__ for f in self.phases]}"
|
|
125
|
-
handle_error(error, datetime.datetime.now())
|
|
126
|
-
else:
|
|
127
|
-
if line_params:
|
|
128
|
-
error = f"ERROR: For {self.name} params exist in test_list but not in test_json!\nline_params:{line_params}"
|
|
129
|
-
handle_error(error, datetime.datetime.now())
|
|
130
|
-
self.phases = [Phase(PRE_CONFIG), Phase(TEST_BODY), Phase(RESTORE_CONFIG)]
|
|
131
|
-
|
|
132
|
-
# Phase rc
|
|
133
|
-
def set_phase_rc(self, phase_name, rc):
|
|
134
|
-
phase = self.get_phase_by_name(phase_name)
|
|
135
|
-
phase.rc = rc
|
|
136
|
-
|
|
137
|
-
def get_phase_rc(self, phase_name):
|
|
138
|
-
phase = self.get_phase_by_name(phase_name)
|
|
139
|
-
return phase.rc
|
|
140
|
-
|
|
141
|
-
# Phase reason
|
|
142
|
-
def add_phase_reason(self, phase_name, reason):
|
|
143
|
-
phase = self.get_phase_by_name(phase_name)
|
|
144
|
-
if phase.reason:
|
|
145
|
-
phase.reason += "\n"
|
|
146
|
-
if reason not in phase.reason:
|
|
147
|
-
phase.reason += reason
|
|
148
|
-
|
|
149
|
-
def get_phase_reason(self, phase_name):
|
|
150
|
-
phase = self.get_phase_by_name(phase_name)
|
|
151
|
-
return phase.reason
|
|
152
|
-
|
|
153
|
-
# Test funcs
|
|
154
|
-
def get_phase_by_name(self, phase_name):
|
|
155
|
-
for phase in self.phases:
|
|
156
|
-
if phase.name == phase_name:
|
|
157
|
-
return phase
|
|
158
|
-
return None
|
|
159
|
-
|
|
160
|
-
def update_overall_rc(self):
|
|
161
|
-
if any([phase.rc == TEST_FAILED for phase in self.phases]):
|
|
162
|
-
self.rc = TEST_FAILED
|
|
163
|
-
|
|
164
|
-
def reset_result(self):
|
|
165
|
-
self.rc = TEST_PASSED
|
|
166
|
-
self.reason = ""
|
|
167
|
-
|
|
168
|
-
def get_seq_id(self):
|
|
169
|
-
self.rand = (self.rand + 1) % 256
|
|
170
|
-
return self.rand
|
|
171
|
-
|
|
172
|
-
# TODO - remove when test reason is re-designed
|
|
173
|
-
def add_reason(self, reason):
|
|
174
|
-
if self.reason:
|
|
175
|
-
self.reason += "\n"
|
|
176
|
-
if reason not in self.reason:
|
|
177
|
-
self.reason += reason
|
|
178
|
-
|
|
179
|
-
def internal_id_alias(self):
|
|
180
|
-
return self.internal_brg_obj.id_alias
|
|
181
|
-
|
|
182
|
-
##################################
|
|
183
|
-
# Phases
|
|
184
|
-
##################################
|
|
185
|
-
class Phase:
|
|
186
|
-
def __init__(self, input=None, tested=True, rc=TEST_INIT, reason=""):
|
|
187
|
-
self.name = str(input)
|
|
188
|
-
self.tested = tested
|
|
189
|
-
self.rc = rc
|
|
190
|
-
self.reason = reason
|
|
191
|
-
|
|
192
|
-
def __repr__(self):
|
|
193
|
-
return self.name
|
|
194
|
-
|
|
195
|
-
##################################
|
|
196
|
-
# Param
|
|
197
|
-
##################################
|
|
198
|
-
class Param:
|
|
199
|
-
def __init__(self, input=None):
|
|
200
|
-
self.name = str(input)
|
|
201
|
-
self.value = eval_param(input)
|
|
202
|
-
|
|
203
|
-
def __repr__(self):
|
|
204
|
-
return self.name
|
|
205
|
-
|
|
206
|
-
##################################
|
|
207
|
-
# Bridge
|
|
208
|
-
##################################
|
|
209
|
-
class Bridge:
|
|
210
|
-
def __init__(self, id_str="", board_type=0, cfg_hash=0, api_version=ag.API_VERSION_LATEST, interface_pkt=None, import_defs=True, rel_path="."):
|
|
211
|
-
self.id_str = id_str
|
|
212
|
-
self.id_int = hex_str2int(id_str)
|
|
213
|
-
self.id_alias = hex2alias_id_get(id_str)
|
|
214
|
-
self.board_type = interface_pkt.board_type if interface_pkt else board_type
|
|
215
|
-
self.version = f"{interface_pkt.major_ver}.{interface_pkt.minor_ver}.{interface_pkt.patch_ver}" if interface_pkt else ""
|
|
216
|
-
self.bl_version = interface_pkt.bl_version if interface_pkt else ""
|
|
217
|
-
self.cfg_hash = interface_pkt.cfg_hash if interface_pkt else cfg_hash
|
|
218
|
-
self.api_version = interface_pkt.api_version if interface_pkt else api_version
|
|
219
|
-
if import_defs:
|
|
220
|
-
self.defines_file_name = f'{ag.BOARD_TYPES_LIST[self.board_type]}_defines.py'
|
|
221
|
-
# Override auto-generated defines and classes for the specific bridge
|
|
222
|
-
if os.path.exists(f"./ag/{self.defines_file_name}"):
|
|
223
|
-
new_defines = load_module(self.defines_file_name, f"./ag/{self.defines_file_name}", rel_path)
|
|
224
|
-
else:
|
|
225
|
-
new_defines = load_module(ORIGINAL_AG_FILE, f"./ag/{ORIGINAL_AG_FILE}", rel_path)
|
|
226
|
-
ag.__dict__.update(new_defines.__dict__)
|
|
227
|
-
self.sup_caps = []
|
|
228
|
-
self.modules = []
|
|
229
|
-
if interface_pkt:
|
|
230
|
-
for key, value in interface_pkt.__dict__.items():
|
|
231
|
-
if 'sup_cap_' in key and value:
|
|
232
|
-
module = key.replace('sup_cap_','')
|
|
233
|
-
if module in TEST_MODULES_MAP:
|
|
234
|
-
self.sup_caps += [TEST_MODULES_MAP[module]]
|
|
235
|
-
self.modules += [eval_pkt(ag.MODULES_DICT[TEST_MODULES_MAP[module]] + str(self.api_version))]
|
|
236
|
-
setattr(self, module, eval_pkt(ag.MODULES_DICT[TEST_MODULES_MAP[module]] + str(self.api_version)))
|
|
237
|
-
|
|
238
|
-
def update_modules(self):
|
|
239
|
-
self.modules = []
|
|
240
|
-
for sup_cap in self.sup_caps:
|
|
241
|
-
self.modules += [eval_pkt(ag.MODULES_DICT[sup_cap] + str(self.api_version))]
|
|
242
|
-
|
|
243
|
-
def is_sup_cap(self, test):
|
|
244
|
-
return test.test_module in self.sup_caps if test.test_module and self.sup_caps else True
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
def cfg_brg_defaults_ret_after_fail(test):
|
|
248
|
-
utPrint(f"Configuring bridge {test.active_brg.id_str} to defaults", "BLUE")
|
|
249
|
-
modules = test.active_brg.modules
|
|
250
|
-
for module in modules:
|
|
251
|
-
utPrint(f"Configuring {module.__name__} to defaults", "BLUE")
|
|
252
|
-
cfg_pkt = cert_config.get_default_brg_pkt(test, module)
|
|
253
|
-
res = cert_config.brg_configure(test=test, cfg_pkt=cfg_pkt)[1]
|
|
254
|
-
if res == NO_RESPONSE:
|
|
255
|
-
utPrint(f"FAILURE: {module.__name__} configuration to defaults", "RED")
|
|
256
|
-
return NO_RESPONSE
|
|
257
|
-
else:
|
|
258
|
-
utPrint(f"SUCCESS: {module.__name__} configured to defaults", "GREEN")
|
|
259
|
-
return DONE
|
|
260
|
-
|
|
261
|
-
def handle_prep_brg_for_latest(test, interface, start_time):
|
|
262
|
-
if test.rc == TEST_FAILED:
|
|
263
|
-
utPrint(f"No ModuleIf pkts found, try again", "BLUE")
|
|
264
|
-
test.rc = ""
|
|
265
|
-
test, interface = cert_common.get_module_if_pkt(test)
|
|
266
|
-
if test.rc == TEST_FAILED:
|
|
267
|
-
error = f"ERROR: No ModuleIf pkts found for 2 tries, couldn't perform OTA for bridge"
|
|
268
|
-
handle_error(error, start_time)
|
|
269
|
-
version = f"{interface.major_ver}.{interface.minor_ver}.{interface.patch_ver}"
|
|
270
|
-
board_type = interface.board_type
|
|
271
|
-
utPrint(f"BRG version [{version}], board type [{board_type}]", "BLUE")
|
|
272
|
-
utPrint(f"Skipping configurations for BRG {test.brg0.id_str} to defaults because of latest/rc flag", "BLUE")
|
|
273
|
-
return Bridge(test.brg0.id_str, interface_pkt=interface)
|
|
274
|
-
|
|
275
|
-
# Check BRGs are online and configure to defaults
|
|
276
|
-
def ut_prep_brg(args, mqttc, start_time, gw, brg, gw_server, protobuf):
|
|
277
|
-
brg = Bridge(brg)
|
|
278
|
-
utPrint(SEP)
|
|
279
|
-
if not cert_common.is_cert_running:
|
|
280
|
-
versions_mgmt = load_module('versions_mgmt.py', f'{UTILS_BASE_REL_PATH}/versions_mgmt.py')
|
|
281
|
-
brg_owner = versions_mgmt.gw_brg_owner(env=AWS, server=PROD, brg=brg.id_str)
|
|
282
|
-
if brg_owner and not brg_owner in r_codes:
|
|
283
|
-
print_warn(f"BRG {brg.id_str} owned by account {brg_owner}")
|
|
284
|
-
test = WltTest("", gw, mqttc, brg0=brg, gw_lan=args.lan, server=gw_server, exit_on_param_failure=args.exit_on_param_failure,
|
|
285
|
-
protobuf=protobuf)
|
|
286
|
-
utPrint(f"Getting BRG {brg.id_str} version and board type", "BLUE")
|
|
287
|
-
test, interface = cert_common.get_module_if_pkt(test)
|
|
288
|
-
if args.latest or args.rc:
|
|
289
|
-
return handle_prep_brg_for_latest(test, interface, start_time)
|
|
290
|
-
elif test.rc == TEST_FAILED:
|
|
291
|
-
error = f"ERROR: Didn't get ModuleIfV{test.active_brg.api_version} from BRG:{brg.id_str}!"
|
|
292
|
-
handle_error(error, start_time)
|
|
293
|
-
version = f"{interface.major_ver}.{interface.minor_ver}.{interface.patch_ver}"
|
|
294
|
-
board_type = interface.board_type
|
|
295
|
-
utPrint(f"BRG version [{version}], board type [{board_type}]", "BLUE")
|
|
296
|
-
test.active_brg = Bridge(brg.id_str, interface_pkt=interface)
|
|
297
|
-
modules_support = []
|
|
298
|
-
for module in TEST_MODULES_MAP:
|
|
299
|
-
modules_support.append([module, color("GREEN", "SUPPORTED") if TEST_MODULES_MAP[module] in test.active_brg.sup_caps else color("RED", "UNSUPPORTED")])
|
|
300
|
-
utPrint(f"BRG {brg.id_str} modules support coverage:", "BLUE")
|
|
301
|
-
print(tabulate.tabulate(modules_support, headers=['Module', 'Support'], tablefmt="fancy_grid"))
|
|
302
|
-
test.active_brg.board_type = board_type
|
|
303
|
-
cfg_output = cfg_brg_defaults_ret_after_fail(test=test)[1]
|
|
304
|
-
if cfg_output == NO_RESPONSE:
|
|
305
|
-
error = f"ERROR: Didn't get response from BRG:{brg.id_str}!"
|
|
306
|
-
handle_error(error, start_time)
|
|
307
|
-
test, interface = cert_common.get_module_if_pkt(test)
|
|
308
|
-
if test.rc == TEST_FAILED:
|
|
309
|
-
error = f"ERROR: Didn't get ModuleIfV{test.active_brg.api_version} from BRG:{brg.id_str}!"
|
|
310
|
-
handle_error(error, start_time)
|
|
311
|
-
utPrint(f"Received cfg hash {hex(interface.cfg_hash)}", "BLUE")
|
|
312
|
-
if not interface.cfg_hash or len(str(interface.cfg_hash)) < BRG_CFG_HAS_LEN:
|
|
313
|
-
error = f"ERROR: invalid cfg_hash for BRG:{brg.id_str}!"
|
|
314
|
-
handle_error(error, start_time)
|
|
315
|
-
utPrint(f"BRG {brg.id_str} cfg_hash_default={hex(interface.cfg_hash)}", "BLUE")
|
|
316
|
-
return Bridge(brg.id_str, interface_pkt=interface)
|
|
317
|
-
|
|
318
|
-
##################################
|
|
319
|
-
# Gateway
|
|
320
|
-
##################################
|
|
321
|
-
# Used when gw is not really important for the test (e.g: gw_sim)
|
|
322
|
-
def get_random_gw():
|
|
323
|
-
return ''.join([random.choice('0123456789ABCDEF') for i in range(12)])
|
|
324
|
-
|
|
325
|
-
def get_gw_id(gw):
|
|
326
|
-
if gw.startswith(GW_SIM_PREFIX) and len(gw) == len(GW_SIM_PREFIX):
|
|
327
|
-
return f"GW_SIM_{get_random_gw()}"
|
|
328
|
-
else:
|
|
329
|
-
return gw
|
|
330
|
-
|
|
331
|
-
def ut_prep_gw(args, mqttc, start_time, tester_gw=False):
|
|
332
|
-
# Check GW is online and configure to defaults
|
|
333
|
-
utPrint(SEP)
|
|
334
|
-
gw = args.brg_cloud_connectivity if args.brg_cloud_connectivity and not tester_gw else args.gw
|
|
335
|
-
test = WltTest("", gw, mqttc, gw_lan=args.lan)
|
|
336
|
-
utPrint(f"Getting GW {gw} Information", "BLUE")
|
|
337
|
-
response = cert_common.get_gw_info(test)
|
|
338
|
-
if response == NO_RESPONSE:
|
|
339
|
-
error = f"ERROR: Didn't get response from {gw} !"
|
|
340
|
-
handle_error(error, start_time)
|
|
341
|
-
if ENTRIES in response[GW_INFO]:
|
|
342
|
-
# Protobuf
|
|
343
|
-
test.protobuf = True
|
|
344
|
-
gw_version = {BLE_VERSION : response[GW_INFO][ENTRIES][BLE_VERSION][STR_VAL], WIFI_VERSION : response[GW_INFO][ENTRIES][WIFI_VERSION][STR_VAL]}
|
|
345
|
-
internal_brg_mac_addr = response[GW_INFO][ENTRIES][BLE_MAC_ADDR][STR_VAL]
|
|
346
|
-
gw_server = response[GW_INFO][ENTRIES][WLT_SERVER][STR_VAL] if WLT_SERVER in response[GW_INFO][ENTRIES] else PROD
|
|
347
|
-
else:
|
|
348
|
-
test.protobuf = False
|
|
349
|
-
gw_version = {BLE_VERSION : response[GW_INFO][BLE_VERSION], WIFI_VERSION : response[GW_INFO][WIFI_VERSION]}
|
|
350
|
-
internal_brg_mac_addr = response[GW_INFO][BLE_MAC_ADDR]
|
|
351
|
-
gw_server = response[GW_INFO][WLT_SERVER] if WLT_SERVER in response[GW_INFO] else PROD
|
|
352
|
-
if gw_server != args.server:
|
|
353
|
-
handle_error(f"ERROR: Test server [{args.server}] does not match GW server [{gw_server}]!", start_time)
|
|
354
|
-
print(f"Starting UT with GW ID {test.gw} and internal BRG ID {internal_brg_mac_addr}")
|
|
355
|
-
if not args.latest and not args.rc:
|
|
356
|
-
res = cert_config.config_gw_defaults(test, version=gw_version)[1]
|
|
357
|
-
if res == NO_RESPONSE:
|
|
358
|
-
handle_error("ERROR: Config GW to defaults failed!", start_time)
|
|
359
|
-
else:
|
|
360
|
-
utPrint(f"Skipping configurations for GW {gw} to defaults because of latest/rc flag", "BLUE")
|
|
361
|
-
internal_brg = ut_prep_brg(args, mqttc, start_time, gw, internal_brg_mac_addr, gw_server, test.protobuf)
|
|
362
|
-
return gw, internal_brg, gw_server, gw_version, test.protobuf
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# The certificate should run for every bridge change
|
|
2
|
-
# The setup will include 1 tested BRG with cloud connectivity + 1 GW connected with UART or remotely
|
|
3
|
-
# Run command example with COM PORT connection:
|
|
4
|
-
# python brg_certificate_cli.py --gw SIM --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_sanity_test_list.txt --data sim --port <COM_PORT>
|
|
5
|
-
# Run command example with remote GW connection:
|
|
6
|
-
# python brg_certificate_cli.py --gw <GWYYYYYYYYYYYY> --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_sanity_test_list.txt --data sim
|
|
7
|
-
|
|
8
|
-
# ------------- edge_mgmt -------------
|
|
9
|
-
edge_mgmt/periodic_msgs_test
|
|
10
|
-
edge_mgmt/actions_test ACTION_GW_HB ACTION_BLINK ACTION_SEND_HB ACTION_GET_BATTERY_SENSOR ACTION_GET_POF_DATA ACTION_PL_STATUS ACTION_GET_MODULE ACTION_REBOOT ACTION_RESTORE_DEFAULTS
|
|
11
|
-
|
|
12
|
-
# ------------- energy2400 -------------
|
|
13
|
-
energy2400/pattern_test ENERGY_PATTERN_2_4_CHANNEL_37 ENERGY_PATTERN_2_4_CHANNEL_39 ENERGY_PATTERN_2_4_FREQ_2454
|
|
14
|
-
energy2400/output_power_test -12 0 3
|
|
15
|
-
energy2400/duty_cycle_test 1 50 75
|
|
16
|
-
energy2400/signal_indicator_test internal_brg brg0_rxtx_brg1_rxtx
|
|
17
|
-
|
|
18
|
-
# ------------- energy_sub1g -------------
|
|
19
|
-
energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
|
|
20
|
-
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
21
|
-
energy_sub1g/signal_indicator_test 60,4
|
|
22
|
-
|
|
23
|
-
# ------------- datapath -------------
|
|
24
|
-
datapath/rssi_threshold_test -80
|
|
25
|
-
datapath/pattern_test DATAPATH_PATTERN_38_38_39 DATAPATH_PATTERN_EU_PATTERN
|
|
26
|
-
datapath/output_power_test -12 0 3
|
|
27
|
-
datapath/pkt_filter_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
28
|
-
datapath/pkt_filter_gen3_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
29
|
-
datapath/pkt_filter_ble5_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
30
|
-
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_10_250K RX_CHANNEL_10_500K
|
|
31
|
-
datapath/aging_test low_pacer
|
|
32
|
-
datapath/num_of_tags_test 500
|
|
33
|
-
|
|
34
|
-
# ------------- calibration -------------
|
|
35
|
-
calibration/output_power_test -12 0 3
|
|
36
|
-
calibration/interval_test 1 25 50
|
|
37
|
-
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_DISABLE_BEACON
|
|
38
|
-
|
|
39
|
-
# ------------- sensors -------------
|
|
40
|
-
sensors/ext_sensor_test tag_data_only rssi_threshold snsr0_scrmbl_snsr1_no_scrmbl
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# The certificate should run for every bridge change
|
|
2
|
-
# The setup will include 1 tested BRG with cloud connectivity + 1 GW connected with UART or remotely
|
|
3
|
-
# Run command example with COM PORT connection:
|
|
4
|
-
# python brg_certificate_cli.py --gw SIM --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt --data sim --port <COM_PORT>
|
|
5
|
-
# Run command example with remote GW connection:
|
|
6
|
-
# python brg_certificate_cli.py --gw <GWYYYYYYYYYYYY> --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt --data sim
|
|
7
|
-
|
|
8
|
-
# ------------- edge_mgmt -------------
|
|
9
|
-
edge_mgmt/periodic_msgs_test
|
|
10
|
-
edge_mgmt/actions_test ACTION_GW_HB ACTION_BLINK ACTION_SEND_HB ACTION_GET_BATTERY_SENSOR ACTION_GET_POF_DATA ACTION_PL_STATUS ACTION_GET_MODULE ACTION_REBOOT ACTION_RESTORE_DEFAULTS
|
|
11
|
-
|
|
12
|
-
# ------------- energy2400 -------------
|
|
13
|
-
energy2400/pattern_test ENERGY_PATTERN_2_4_NO_ENERGIZING ENERGY_PATTERN_2_4_CHANNEL_37 ENERGY_PATTERN_2_4_CHANNEL_38 ENERGY_PATTERN_2_4_CHANNEL_39 ENERGY_PATTERN_2_4_FREQ_2450 ENERGY_PATTERN_2_4_FREQ_2454
|
|
14
|
-
energy2400/output_power_test -12 -8 -4 0 2 3
|
|
15
|
-
energy2400/duty_cycle_test 1 25 50 75
|
|
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
|
-
|
|
18
|
-
# ------------- energy_sub1g -------------
|
|
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
|
|
20
|
-
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
21
|
-
energy_sub1g/signal_indicator_test 60,4 100,3
|
|
22
|
-
|
|
23
|
-
# ------------- datapath -------------
|
|
24
|
-
datapath/rssi_threshold_test -80 -65 -10
|
|
25
|
-
datapath/pattern_test DATAPATH_PATTERN_38_38_39 DATAPATH_PATTERN_EU_PATTERN
|
|
26
|
-
datapath/output_power_test -12 -8 -4 0 2 3
|
|
27
|
-
datapath/pacer_interval_test 5 15 30 60
|
|
28
|
-
datapath/pacer_interval_ble5_test 5 15 30 60
|
|
29
|
-
datapath/pkt_filter_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS
|
|
30
|
-
datapath/pkt_filter_gen3_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
31
|
-
datapath/pkt_filter_ble5_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
32
|
-
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_39 RX_CHANNEL_10_250K RX_CHANNEL_10_500K
|
|
33
|
-
datapath/rx_rate_gen2_test mid_values diff_pacer min_value max_value diff_rate
|
|
34
|
-
datapath/rx_rate_gen3_test mid_values diff_pacer min_value max_value diff_rate
|
|
35
|
-
datapath/pacer_interval_tags_count_test 1 10 15 30
|
|
36
|
-
datapath/aging_test low_pacer high_pacer
|
|
37
|
-
datapath/num_of_tags_test 5000
|
|
38
|
-
|
|
39
|
-
# ------------- pwr_mgmt -------------
|
|
40
|
-
pwr_mgmt/pwr_mgmt_test
|
|
41
|
-
|
|
42
|
-
# ------------- calibration -------------
|
|
43
|
-
calibration/output_power_test -12 -8 -4 0 2 3
|
|
44
|
-
calibration/interval_test 1 25 50
|
|
45
|
-
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_STANDARD CALIBRATION_PATTERN_EU_PATTERN CALIBRATION_PATTERN_DISABLE_BEACON
|
|
46
|
-
|
|
47
|
-
# ------------- sensors -------------
|
|
48
|
-
sensors/ext_sensor_test tag_data_only rssi_threshold snsr0_no_scrmbl snsr1_scrmbl snsr0_scrmbl_snsr1_no_scrmbl snsr0_scrmbl_snsr1_scrmbl
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# The certificate should run for every bridge change
|
|
2
|
-
# The setup will include 1 tested BRG + 1 GW connected with UART or remotely
|
|
3
|
-
# Run command example with COM PORT connection:
|
|
4
|
-
# python brg_certificate_cli.py --gw SIM --brg <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt --data sim --port <COM_PORT>
|
|
5
|
-
# Run command example with remote GW connection:
|
|
6
|
-
# python brg_certificate_cli.py --gw <GWYYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt --data sim
|
|
7
|
-
|
|
8
|
-
# ------------- edge_mgmt -------------
|
|
9
|
-
edge_mgmt/periodic_msgs_test
|
|
10
|
-
edge_mgmt/actions_test ACTION_GW_HB ACTION_BLINK ACTION_SEND_HB ACTION_GET_BATTERY_SENSOR ACTION_GET_POF_DATA ACTION_PL_STATUS ACTION_GET_MODULE ACTION_REBOOT ACTION_RESTORE_DEFAULTS
|
|
11
|
-
|
|
12
|
-
# ------------- energy2400 -------------
|
|
13
|
-
energy2400/pattern_test ENERGY_PATTERN_2_4_CHANNEL_37 ENERGY_PATTERN_2_4_CHANNEL_39 ENERGY_PATTERN_2_4_FREQ_2454
|
|
14
|
-
energy2400/output_power_test -12 0 3
|
|
15
|
-
energy2400/duty_cycle_test 1 50 75
|
|
16
|
-
energy2400/signal_indicator_test internal_brg brg0_rxtx_brg1_rxtx
|
|
17
|
-
|
|
18
|
-
# ------------- energy_sub1g -------------
|
|
19
|
-
energy_sub1g/pattern_test SUB1G_ENERGY_PATTERN_NO_ENERGIZING SUB1G_ENERGY_PATTERN_FCC_HOPPING SUB1G_ENERGY_PATTERN_SINGLE_TONE_917500 SUB1G_ENERGY_PATTERN_NZ_HOPPING
|
|
20
|
-
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
21
|
-
energy_sub1g/signal_indicator_test 60,4
|
|
22
|
-
|
|
23
|
-
# ------------- datapath -------------
|
|
24
|
-
datapath/rssi_threshold_test -80
|
|
25
|
-
datapath/pattern_test DATAPATH_PATTERN_38_38_39 DATAPATH_PATTERN_EU_PATTERN
|
|
26
|
-
datapath/tx_repetition_test 2 4
|
|
27
|
-
datapath/output_power_test -12 0 3
|
|
28
|
-
datapath/pkt_filter_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
29
|
-
datapath/pkt_filter_gen3_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
30
|
-
datapath/pkt_filter_ble5_test PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT
|
|
31
|
-
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_10_250K RX_CHANNEL_10_500K
|
|
32
|
-
datapath/aging_test low_pacer
|
|
33
|
-
datapath/stress_gen3_test rep1_adaptive_pacer
|
|
34
|
-
datapath/num_of_tags_test 500
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
# ------------- calibration -------------
|
|
38
|
-
calibration/output_power_test -12 0 3
|
|
39
|
-
calibration/interval_test 1 25 50
|
|
40
|
-
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_DISABLE_BEACON
|
|
41
|
-
|
|
42
|
-
# ------------- sensors -------------
|
|
43
|
-
sensors/ext_sensor_test tag_data_only rssi_threshold snsr0_scrmbl_snsr1_no_scrmbl
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# The certificate should run for every bridge change
|
|
2
|
-
# The setup will include 1 tested BRG + 1 GW connected with UART or remotely
|
|
3
|
-
# Run command example with COM PORT connection:
|
|
4
|
-
# python brg_certificate_cli.py --gw SIM --brg <XXXXXXXXXXXX> --tl certificate_test_list.txt --data sim --port <COM_PORT>
|
|
5
|
-
# Run command example with remote GW connection:
|
|
6
|
-
# python brg_certificate_cli.py --gw <GWYYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --tl certificate_test_list.txt --data sim
|
|
7
|
-
|
|
8
|
-
# ------------- edge_mgmt -------------
|
|
9
|
-
edge_mgmt/periodic_msgs_test
|
|
10
|
-
edge_mgmt/actions_test ACTION_GW_HB ACTION_BLINK ACTION_SEND_HB ACTION_GET_BATTERY_SENSOR ACTION_GET_POF_DATA ACTION_PL_STATUS ACTION_GET_MODULE ACTION_REBOOT ACTION_RESTORE_DEFAULTS
|
|
11
|
-
|
|
12
|
-
# ------------- energy2400 -------------
|
|
13
|
-
energy2400/pattern_test ENERGY_PATTERN_2_4_NO_ENERGIZING ENERGY_PATTERN_2_4_CHANNEL_37 ENERGY_PATTERN_2_4_CHANNEL_38 ENERGY_PATTERN_2_4_CHANNEL_39 ENERGY_PATTERN_2_4_FREQ_2450 ENERGY_PATTERN_2_4_FREQ_2454
|
|
14
|
-
energy2400/output_power_test -12 -8 -4 0 2 3
|
|
15
|
-
energy2400/duty_cycle_test 1 25 50 75
|
|
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_tx_brg1_none
|
|
18
|
-
energy2400/signal_indicator_ble5_10_250k_test internal_brg rssi_threshold brg0_tx_brg1_rx brg0_none_brg1_rx brg0_tx_brg1_none
|
|
19
|
-
|
|
20
|
-
# ------------- energy_sub1g -------------
|
|
21
|
-
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
|
|
22
|
-
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
23
|
-
energy_sub1g/signal_indicator_test 60,4 100,3
|
|
24
|
-
|
|
25
|
-
# ------------- datapath -------------
|
|
26
|
-
datapath/rssi_threshold_test -80 -65 -10
|
|
27
|
-
datapath/pattern_test DATAPATH_PATTERN_38_38_39 DATAPATH_PATTERN_EU_PATTERN
|
|
28
|
-
datapath/tx_repetition_test 2 4
|
|
29
|
-
datapath/output_power_test -12 -8 -4 0 2 3
|
|
30
|
-
datapath/pacer_interval_test 5 15 30 60
|
|
31
|
-
datapath/pacer_interval_ble5_test 5 15 30 60
|
|
32
|
-
datapath/pkt_filter_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS PKT_FILTER_TEMP_ADVANCED_AND_DEBUG_PKTS
|
|
33
|
-
datapath/pkt_filter_gen3_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
34
|
-
datapath/pkt_filter_ble5_test PKT_FILTER_RANDOM_FIRST_ARRIVING_PKT PKT_FILTER_DISABLE_FORWARDING PKT_FILTER_TEMP_PKT PKT_FILTER_ADVANCED_PKT PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
35
|
-
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_39 RX_CHANNEL_10_250K RX_CHANNEL_10_500K
|
|
36
|
-
datapath/rx_rate_gen2_test mid_values diff_pacer min_value max_value diff_rate
|
|
37
|
-
datapath/rx_rate_gen3_test mid_values diff_pacer min_value max_value diff_rate
|
|
38
|
-
datapath/pacer_interval_tags_count_test 1 10 15 30
|
|
39
|
-
datapath/stress_test rep3 rep2 rep1
|
|
40
|
-
datapath/stress_gen3_test rep3 rep2 rep1
|
|
41
|
-
datapath/aging_test low_pacer high_pacer
|
|
42
|
-
datapath/num_of_tags_test 5000
|
|
43
|
-
|
|
44
|
-
# ------------- pwr_mgmt -------------
|
|
45
|
-
pwr_mgmt/pwr_mgmt_test
|
|
46
|
-
|
|
47
|
-
# ------------- calibration -------------
|
|
48
|
-
calibration/output_power_test -12 -8 -4 0 2 3
|
|
49
|
-
calibration/interval_test 1 25 50
|
|
50
|
-
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_STANDARD CALIBRATION_PATTERN_EU_PATTERN CALIBRATION_PATTERN_DISABLE_BEACON
|
|
51
|
-
|
|
52
|
-
# ------------- sensors -------------
|
|
53
|
-
sensors/ext_sensor_test tag_data_only rssi_threshold snsr0_no_scrmbl snsr1_scrmbl snsr0_scrmbl_snsr1_no_scrmbl snsr0_scrmbl_snsr1_scrmbl
|