wiliot-certificate 4.4.3__py3-none-any.whl → 4.5.0a1__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
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2brg_ota.json +69 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb.json +109 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/brg2gw_hb_sleep.json +45 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/calibration.json +96 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/custom.json +99 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/datapath.json +241 -13
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energy2400.json +120 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/energySub1g.json +96 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/externalSensor.json +135 -6
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/interface.json +157 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/powerManagement.json +205 -0
- brg_certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json → certificate/ag/wlt_types_ag_jsons/unified_echo_ext_pkt.json +27 -11
- certificate/ag/wlt_types_ag_jsons/unified_echo_pkt.json +175 -0
- certificate/ag/wlt_types_ag_jsons/unified_sensor_pkt.json +65 -0
- certificate/cert_common.py +1459 -0
- certificate/cert_config.py +455 -0
- {brg_certificate → certificate}/cert_data_sim.py +131 -46
- {brg_certificate → certificate}/cert_defines.py +120 -128
- {brg_certificate → certificate}/cert_gw_sim.py +151 -49
- {brg_certificate → certificate}/cert_mqtt.py +164 -59
- {brg_certificate → certificate}/cert_prints.py +34 -33
- {brg_certificate → certificate}/cert_protobuf.py +15 -6
- {brg_certificate → certificate}/cert_results.py +205 -48
- certificate/cert_utils.py +622 -0
- certificate/certificate.py +198 -0
- certificate/certificate_cli.py +79 -0
- certificate/certificate_eth_test_list.txt +74 -0
- certificate/certificate_sanity_test_list.txt +65 -0
- certificate/certificate_test_list.txt +75 -0
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.json +2 -2
- {brg_certificate → certificate}/tests/calibration/interval_test/interval_test.py +7 -6
- certificate/tests/calibration/output_power_test/output_power_test.json +22 -0
- certificate/tests/calibration/output_power_test/output_power_test.py +39 -0
- {brg_certificate → certificate}/tests/calibration/pattern_test/pattern_test.json +1 -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 +14 -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 +14 -0
- certificate/tests/cloud_connectivity/acl_test/acl_test.py +98 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.json +18 -0
- certificate/tests/cloud_connectivity/brg_ota_test/brg_ota_test.py +39 -0
- certificate/tests/cloud_connectivity/channel_scan_behaviour_test/channel_scan_behaviour_test.json +18 -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 +17 -0
- certificate/tests/cloud_connectivity/connection_test/connection_test.py +74 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.json +20 -0
- certificate/tests/cloud_connectivity/downlink_test/downlink_test.py +204 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.json +16 -0
- certificate/tests/cloud_connectivity/ext_adv_stress_test/ext_adv_stress_test.py +98 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.json +17 -0
- certificate/tests/cloud_connectivity/reboot_test/reboot_test.py +57 -0
- certificate/tests/cloud_connectivity/registration_test/registration_test.json +19 -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 +16 -0
- certificate/tests/cloud_connectivity/stress_test/stress_test.py +97 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.json +24 -0
- certificate/tests/cloud_connectivity/uplink_ext_adv_test/uplink_ext_adv_test.py +93 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.json +19 -0
- certificate/tests/cloud_connectivity/uplink_test/uplink_test.py +161 -0
- {brg_certificate → certificate}/tests/datapath/aging_test/aging_test.json +1 -1
- certificate/tests/datapath/aging_test/aging_test.py +138 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.json +16 -0
- certificate/tests/datapath/event_ble5_test/event_ble5_test.py +95 -0
- certificate/tests/datapath/event_test/event_test.json +16 -0
- certificate/tests/datapath/event_test/event_test.py +85 -0
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.json +1 -1
- {brg_certificate → certificate}/tests/datapath/num_of_tags_test/num_of_tags_test.py +10 -8
- certificate/tests/datapath/output_power_test/output_power_test.json +22 -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 +1 -1
- {brg_certificate → certificate}/tests/datapath/pacer_interval_ble5_test/pacer_interval_ble5_test.py +10 -8
- {brg_certificate → certificate}/tests/datapath/pacer_interval_test/pacer_interval_test.json +1 -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 +2 -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 +19 -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 +1 -1
- {brg_certificate → certificate}/tests/datapath/pkt_filter_ble5_test/pkt_filter_ble5_test.py +11 -10
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.json +18 -0
- certificate/tests/datapath/pkt_filter_brg2gw_ext_adv_test/pkt_filter_brg2gw_ext_adv_test.py +83 -0
- {brg_certificate → certificate}/tests/datapath/pkt_filter_gen3_test/pkt_filter_gen3_test.json +1 -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 +1 -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 +1 -1
- {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 +5 -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 +2 -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 +7 -7
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen2_test/rx_rate_gen2_test.py +112 -72
- {brg_certificate → certificate}/tests/datapath/rx_rate_gen3_test/rx_rate_gen3_test.json +7 -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 +3 -3
- {brg_certificate → certificate}/tests/datapath/stress_gen3_test/stress_gen3_test.py +12 -11
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.json +3 -3
- {brg_certificate → certificate}/tests/datapath/stress_test/stress_test.py +12 -11
- {brg_certificate → certificate}/tests/datapath/tx_repetition_test/tx_repetition_test.json +2 -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 +14 -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 +14 -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 +14 -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 +14 -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 +15 -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 +14 -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 +14 -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 +14 -0
- certificate/tests/edge_mgmt/action_send_hb_test/action_send_hb_test.py +41 -0
- {brg_certificate → certificate}/tests/edge_mgmt/periodic_msgs_test/periodic_msgs_test.json +2 -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 +1 -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 +22 -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 +1 -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 +25 -0
- certificate/tests/energy2400/signal_indicator_ble5_test/signal_indicator_ble5_test.py +378 -0
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.json → certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.json +3 -3
- brg_certificate/tests/energy2400/signal_indicator_ble5_10_500k_test/signal_indicator_ble5_10_500k_test.py → certificate/tests/energy2400/signal_indicator_ext_adv_test/signal_indicator_ext_adv_test.py +97 -87
- certificate/tests/energy2400/signal_indicator_test/signal_indicator_test.json +23 -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 +1 -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 +1 -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 +1 -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 +4 -4
- certificate/tests/sensors/ext_sensor_test/ext_sensor_test.py +455 -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 +85 -0
- common/web/templates/generator.html +148 -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 +377 -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 +1062 -0
- gui_certificate/templates/cert_run.html +1207 -0
- wiliot_certificate-4.5.0a1.dist-info/METADATA +110 -0
- wiliot_certificate-4.5.0a1.dist-info/RECORD +182 -0
- {wiliot_certificate-4.4.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/WHEEL +1 -1
- wiliot_certificate-4.5.0a1.dist-info/entry_points.txt +5 -0
- wiliot_certificate-4.5.0a1.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/unified_echo_ext_pkt.json +0 -61
- 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_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.93_app.zip +0 -0
- gw_certificate/interface/4.4.93_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.3.dist-info/METADATA +0 -211
- wiliot_certificate-4.4.3.dist-info/RECORD +0 -210
- wiliot_certificate-4.4.3.dist-info/entry_points.txt +0 -3
- wiliot_certificate-4.4.3.dist-info/top_level.txt +0 -3
- {brg_certificate → certificate}/__init__.py +0 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/side_info_sensor.json +0 -0
- {brg_certificate → certificate}/ag/wlt_types_ag_jsons/signal_indicator_data.json +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.3.dist-info → wiliot_certificate-4.5.0a1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
|
|
2
|
+
# generic
|
|
3
|
+
import sys
|
|
4
|
+
import os
|
|
5
|
+
sys.path.insert(0, os.path.abspath(".."))
|
|
6
|
+
import webbrowser
|
|
7
|
+
import glob
|
|
8
|
+
import datetime
|
|
9
|
+
import tabulate
|
|
10
|
+
import threading
|
|
11
|
+
import traceback
|
|
12
|
+
import shutil
|
|
13
|
+
# Local imports
|
|
14
|
+
from certificate.wlt_types import *
|
|
15
|
+
from certificate.cert_defines import *
|
|
16
|
+
from certificate.cert_prints import *
|
|
17
|
+
import certificate.cert_utils as cert_utils
|
|
18
|
+
import certificate.cert_results as cert_results
|
|
19
|
+
import certificate.cert_gw_sim as cert_gw_sim
|
|
20
|
+
import certificate.cert_mqtt as cert_mqtt
|
|
21
|
+
import certificate.cert_common as cert_common
|
|
22
|
+
|
|
23
|
+
TEST_LIST_FW_UPDATE_FILE = "ut/fw_update_test_list.txt"
|
|
24
|
+
|
|
25
|
+
os.system('')
|
|
26
|
+
|
|
27
|
+
def filter_tests(test_list, run, drun):
|
|
28
|
+
test_lines = [l.strip() for l in open(os.path.join(BASE_DIR, test_list)).readlines() if l.strip() and not l.strip().startswith("#")]
|
|
29
|
+
if run:
|
|
30
|
+
test_lines = [tl for tl in test_lines if re.search(run, tl.strip().split()[0])]
|
|
31
|
+
if drun:
|
|
32
|
+
test_lines = [tl for tl in test_lines if not re.search(drun, tl.strip().split()[0])]
|
|
33
|
+
return test_lines
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def skip_test_check(test, validation_schema):
|
|
37
|
+
skip_string = ""
|
|
38
|
+
if test.multi_brg and (not cert_utils.brg_flag(validation_schema) or not test.active_brg):
|
|
39
|
+
skip_string = f"Skipped {test.module_name} multi brg test because device under test isn't a bridge"
|
|
40
|
+
elif test.multi_brg and not test.brg1:
|
|
41
|
+
skip_string = f"Skipped {test.module_name} multi brg test because brg1 wasn't given"
|
|
42
|
+
# TODO - check if module is supported by the bridge in the validation schema
|
|
43
|
+
elif test.active_brg and not test.active_brg.is_sup_cap(test):
|
|
44
|
+
skip_string = f"Skipped {test.module_name} because {cert_utils.module2name(test.test_module)} module is not supported"
|
|
45
|
+
# TODO - check if module is supported by the bridge in the validation schema
|
|
46
|
+
elif test.active_brg and ag.MODULE_EXT_SENSORS not in test.active_brg.sup_caps and "signal_indicator" in test.name:
|
|
47
|
+
skip_string = f"Skipped signal indicator tests because they are not supported when external sensors module not supported"
|
|
48
|
+
elif test.data != DATA_SIMULATION and test.test_json[DATA_SIMULATION_ONLY_TEST]:
|
|
49
|
+
skip_string = f"Skipped {test.module_name} because it can run only with data simulation mode"
|
|
50
|
+
elif GW_ONLY_TEST in test.test_json and test.test_json[GW_ONLY_TEST] and test.dut_is_bridge():
|
|
51
|
+
skip_string = f"Skipped {test.module_name} because it can run only with Gateway or Combo devices"
|
|
52
|
+
elif BRIDGE_ONLY_TEST in test.test_json and test.test_json[BRIDGE_ONLY_TEST] and not test.dut_is_bridge():
|
|
53
|
+
skip_string = f"Skipped {test.module_name} because it can run only with Bridge devices without Gateway functionality"
|
|
54
|
+
if skip_string:
|
|
55
|
+
utPrint(f"{SEP}{skip_string}{SEP}", "WARNING")
|
|
56
|
+
test.reason = skip_string
|
|
57
|
+
test.rc = TEST_SKIPPED
|
|
58
|
+
return test
|
|
59
|
+
|
|
60
|
+
def load_and_validate_schema(validation_schema_path, start_time):
|
|
61
|
+
"""
|
|
62
|
+
Loads and validates the validation schema JSON file.
|
|
63
|
+
Exits if it is invalid, missing, or missing required keys.
|
|
64
|
+
Also exits if neither cloud_connectivity_flag nor brg_flag is True.
|
|
65
|
+
Returns the loaded JSON dict.
|
|
66
|
+
"""
|
|
67
|
+
try:
|
|
68
|
+
with open(validation_schema_path, "r", encoding="utf-8") as f:
|
|
69
|
+
data = json.load(f)
|
|
70
|
+
utPrint("The given validation schema is a valid JSON file", 'BLUE')
|
|
71
|
+
except json.JSONDecodeError as e:
|
|
72
|
+
error = f"The given validation schema is an invalid JSON file: {e}"
|
|
73
|
+
cert_utils.handle_error(error, start_time)
|
|
74
|
+
except FileNotFoundError:
|
|
75
|
+
error = f"The given validation schema file was not found!"
|
|
76
|
+
cert_utils.handle_error(error, start_time)
|
|
77
|
+
except Exception as e:
|
|
78
|
+
error = f"Unexpected error received trying to decode the given validation schema JSON file: {e}"
|
|
79
|
+
cert_utils.handle_error(error, start_time)
|
|
80
|
+
# Check for required fields
|
|
81
|
+
if "properties" not in data and "modules" not in data:
|
|
82
|
+
error = "The validation schema is missing both 'properties' and 'modules' keys!"
|
|
83
|
+
cert_utils.handle_error(error, start_time)
|
|
84
|
+
# Check for cloud_connectivity_flag or brg_flag
|
|
85
|
+
if not (cert_utils.cloud_connectivity_flag(data) or cert_utils.brg_flag(data)):
|
|
86
|
+
error = "The validation schema must support either cloud connectivity or bridge device. None found."
|
|
87
|
+
cert_utils.handle_error(error, start_time)
|
|
88
|
+
return data
|
|
89
|
+
|
|
90
|
+
def clean(args):
|
|
91
|
+
if args.clean:
|
|
92
|
+
print(os.getcwd())
|
|
93
|
+
for dir in glob.glob('**/cert_artifacts_*/', recursive=True):
|
|
94
|
+
print(f"Removing folder: {dir}")
|
|
95
|
+
shutil.rmtree(dir)
|
|
96
|
+
|
|
97
|
+
def main(args):
|
|
98
|
+
args.tester = cert_utils.get_tester_id(args.tester)
|
|
99
|
+
if ':' in args.dut:
|
|
100
|
+
args.dut, args.combo_ble_addr = args.dut.split(':')
|
|
101
|
+
|
|
102
|
+
utPrint(f"wiliot_certificate version: {CERT_VERSION}")
|
|
103
|
+
utPrint(str(args.__dict__))
|
|
104
|
+
os.makedirs(ARTIFACTS_DIR, exist_ok=True)
|
|
105
|
+
start_time = datetime.datetime.now()
|
|
106
|
+
|
|
107
|
+
# Clean
|
|
108
|
+
clean(args)
|
|
109
|
+
|
|
110
|
+
# Filter tests
|
|
111
|
+
test_list = TEST_LIST_FW_UPDATE_FILE if args.latest or args.rc else args.tl
|
|
112
|
+
test_lines = filter_tests(test_list=test_list, run=args.run, drun=args.drun)
|
|
113
|
+
|
|
114
|
+
# JSON validation schema basic validation
|
|
115
|
+
validation_schema = load_and_validate_schema(args.validation_schema, start_time)
|
|
116
|
+
|
|
117
|
+
# Init mqtt client for tester
|
|
118
|
+
tester_mqttc = cert_mqtt.mqttc_init(args.tester, args.custom_broker, data=args.data)
|
|
119
|
+
|
|
120
|
+
# Init mqtt client for device under test when it is cloud connectivity bridge
|
|
121
|
+
if cert_utils.cloud_connectivity_flag(validation_schema) and args.dut != args.tester:
|
|
122
|
+
dut_mqttc = cert_mqtt.mqttc_init(args.dut, args.custom_broker, data=args.data)
|
|
123
|
+
else:
|
|
124
|
+
# Use the same mqtt client of the tester if device under test is a bridge only
|
|
125
|
+
dut_mqttc = tester_mqttc
|
|
126
|
+
|
|
127
|
+
# Prepare tester
|
|
128
|
+
gw_sim_thread = None
|
|
129
|
+
if GW_SIM_PREFIX in args.tester:
|
|
130
|
+
# Run Gateway Simulator in separate thread
|
|
131
|
+
gw_sim_thread = threading.Thread(target=cert_gw_sim.gw_sim_run, daemon=True, kwargs={'port':args.port, 'gw_id': args.tester,
|
|
132
|
+
'custom_broker':args.custom_broker,
|
|
133
|
+
'analyze_interference':args.analyze_interference})
|
|
134
|
+
gw_sim_thread.start()
|
|
135
|
+
sleep_time = (len(cert_gw_sim.CHANNELS_TO_ANALYZE) * 30) + 15 if args.analyze_interference else 10
|
|
136
|
+
time.sleep(sleep_time)
|
|
137
|
+
tester = cert_utils.prep_tester(args, tester_mqttc, start_time, gw_sim_thread)
|
|
138
|
+
|
|
139
|
+
# Prepare device under test
|
|
140
|
+
dut = cert_utils.prep_dut(args, tester, validation_schema, dut_mqttc, start_time, upload_wait_time=args.agg)
|
|
141
|
+
|
|
142
|
+
# Prepare second bridge (brg1) if given
|
|
143
|
+
brg1 = None
|
|
144
|
+
if args.brg1:
|
|
145
|
+
brg1 = cert_utils.ut_prep_brg(args, start_time, tester, args.brg1)
|
|
146
|
+
|
|
147
|
+
# Collecting the tests
|
|
148
|
+
tests = []
|
|
149
|
+
for tl in test_lines:
|
|
150
|
+
test = cert_utils.WltTest(tl, tester, dut, brg1=brg1, exit_on_param_failure=args.exit_on_param_failure,
|
|
151
|
+
latest=args.latest, release_candidate=args.rc, sterile_run=args.sterile_run, data=args.data)
|
|
152
|
+
tests += [test]
|
|
153
|
+
|
|
154
|
+
# Running the tests
|
|
155
|
+
utPrint(SEP)
|
|
156
|
+
utPrint("\n - ".join([f"\nRunning {len(tests)} tests:"] + [t.name if not t.internal_brg else f"{t.name} (internal brg)" for t in tests]))
|
|
157
|
+
|
|
158
|
+
failures, skipped = 0, 0
|
|
159
|
+
exit_on_test_failure = args.exit_on_test_failure
|
|
160
|
+
i = 0
|
|
161
|
+
|
|
162
|
+
for i, test in enumerate(tests):
|
|
163
|
+
test = skip_test_check(test, validation_schema)
|
|
164
|
+
if test.rc == TEST_SKIPPED:
|
|
165
|
+
for phase in test.phases:
|
|
166
|
+
phase.rc = TEST_SKIPPED
|
|
167
|
+
skipped += 1
|
|
168
|
+
else:
|
|
169
|
+
try:
|
|
170
|
+
test_module_name = cert_utils.load_module(f'{test.module_name}.py', f'{test.dir}/{test.module_name}.py')
|
|
171
|
+
test = test_module_name.run(test)
|
|
172
|
+
except Exception as e:
|
|
173
|
+
traceback.print_exc()
|
|
174
|
+
test.add_phase_reason(RESTORE_CONFIG, f"Exception occurred: {e!r}")
|
|
175
|
+
test.rc = TEST_FAILED
|
|
176
|
+
finally:
|
|
177
|
+
test.update_overall_rc()
|
|
178
|
+
if test.rc == TEST_FAILED:
|
|
179
|
+
failures += 1
|
|
180
|
+
if "versions_test" in test.module_name and f"EXITING CERTIFICATE" in test.reason:
|
|
181
|
+
exit_on_test_failure = True
|
|
182
|
+
print(f"Test Duration: {test.duration}")
|
|
183
|
+
print(tabulate.tabulate([[i+1, i+1-(failures+skipped), skipped, failures, len(tests)]],
|
|
184
|
+
headers=["FINISHED", "PASSED", "SKIPPED", "FAILED", "TOTAL"], tablefmt="pretty"))
|
|
185
|
+
wait_time_n_print(2)
|
|
186
|
+
if exit_on_test_failure and test.rc == TEST_FAILED:
|
|
187
|
+
break
|
|
188
|
+
|
|
189
|
+
# Print results
|
|
190
|
+
cert_results.generate_results_files(test.dut, test.tester, html=True, pdf=True, failures=failures, skipped=skipped, start_time=start_time, tests=tests, non_cert_run=args.non_cert_run)
|
|
191
|
+
if not pipeline_running():
|
|
192
|
+
webbrowser.open('file://' + os.path.realpath(os.path.join(ARTIFACTS_DIR, UT_RESULT_FILE_PDF)))
|
|
193
|
+
|
|
194
|
+
if failures:
|
|
195
|
+
sys.exit(-1)
|
|
196
|
+
|
|
197
|
+
if __name__ == '__main__':
|
|
198
|
+
main()
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import sys
|
|
2
|
+
import os
|
|
3
|
+
sys.path.insert(0, os.path.abspath(".."))
|
|
4
|
+
import argparse
|
|
5
|
+
from certificate.cert_defines import DATA_SIMULATION, GW_SIM_PREFIX
|
|
6
|
+
from certificate.cert_mqtt import EMQX
|
|
7
|
+
import certificate.certificate as certificate
|
|
8
|
+
TEST_LIST_DEFAULT_FILE = "certificate_test_list.txt"
|
|
9
|
+
|
|
10
|
+
def parse_dict_arg(arg):
|
|
11
|
+
"""Parse key=value pairs type arguments"""
|
|
12
|
+
d = {}
|
|
13
|
+
for pair in arg.split(","):
|
|
14
|
+
if "=" not in arg:
|
|
15
|
+
raise argparse.ArgumentTypeError('Use "KEY1=VALUE1,KEY2=VALUE2..." format')
|
|
16
|
+
k, v = pair.split("=")
|
|
17
|
+
d[k] = v
|
|
18
|
+
return d
|
|
19
|
+
class CertificateCLI:
|
|
20
|
+
"""Certificate CLI."""
|
|
21
|
+
def __init__(self):
|
|
22
|
+
self.parser = argparse.ArgumentParser(
|
|
23
|
+
prog='wlt-certificate',
|
|
24
|
+
description='Certificate - CLI Tool to test Wiliot Devices',
|
|
25
|
+
epilog=
|
|
26
|
+
"run examples:\n"
|
|
27
|
+
" Run command example with COM PORT connection:\n"
|
|
28
|
+
" wlt-cert-cli --gw SIM --brg <XXXXXXXXXXXX> --port <COM_PORT>\n"
|
|
29
|
+
" Run command example with remote GW connection:\n"
|
|
30
|
+
" wlt-cert-cli --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX>\n"
|
|
31
|
+
" Run command example for running datapath module tests only:\n"
|
|
32
|
+
" wlt-cert-cli --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --run datapath\n"
|
|
33
|
+
" Run command example with sanity test list:\n"
|
|
34
|
+
" wlt-cert-cli --gw <YYYYYYYYYYYY> --brg <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt\n"
|
|
35
|
+
" Run command example with COM PORT connection for bridge with cloud connectivity:\n"
|
|
36
|
+
" wlt-cert-cli --gw SIM --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt --port <COM_PORT>\n"
|
|
37
|
+
" Run command example with remote GW connection for bridge with cloud connectivity:\n"
|
|
38
|
+
" wlt-cert-cli --gw <YYYYYYYYYYYY> --brg_cloud_connectivity <XXXXXXXXXXXX> --tl certificate_bcc_test_list.txt\n",
|
|
39
|
+
formatter_class=argparse.RawDescriptionHelpFormatter
|
|
40
|
+
)
|
|
41
|
+
self.parser.add_argument('--validation_schema', '-vs', required=True, help='Validation schema json file path to use for the run')
|
|
42
|
+
self.parser.add_argument('--dut', required=True, help="Tested device ID. When DUT is a combo device, use <Gateway_ID>:<BLE_MAC>")
|
|
43
|
+
self.parser.add_argument('--combo_ble_addr', default="", help="Combo device BLE MAC address" + argparse.SUPPRESS)
|
|
44
|
+
self.parser.add_argument('--tester', default=GW_SIM_PREFIX, help='Tester id to run on the test, SIM prefix is default and used for COM tester')
|
|
45
|
+
self.parser.add_argument('--port', '-p', default='', help='UART PORT connection to use for the run, if not provided last available port is used')
|
|
46
|
+
self.parser.add_argument('--custom_broker', '-cb', required=True, help='Choose custom MQTT broker configuration json file to use for the run,' \
|
|
47
|
+
' for explanation of the format see https://community.wiliot.com/customers/s/article/Wiliot-Gateway-Certification')
|
|
48
|
+
self.parser.add_argument('--clean', default=False, action='store_true', help='Clean old logs before running the tests')
|
|
49
|
+
self.parser.add_argument('--tl', default=TEST_LIST_DEFAULT_FILE, type=str, help='Test list file to use ' + argparse.SUPPRESS)
|
|
50
|
+
self.parser.add_argument('--run', type=str, help='String to filter tests to run ' + argparse.SUPPRESS)
|
|
51
|
+
self.parser.add_argument('--drun', type=str, help='String to filter tests not to run ' + argparse.SUPPRESS)
|
|
52
|
+
self.parser.add_argument('--exit_on_test_failure', default=False, action='store_true', help='Stop running the tests if a test failed ' + argparse.SUPPRESS)
|
|
53
|
+
self.parser.add_argument('--exit_on_param_failure', default=False, action='store_true', help='Sets exit_on_param_failure mode to true in order to prevent \
|
|
54
|
+
tests from continuing iteration over all possibilities in case of failure ' + argparse.SUPPRESS)
|
|
55
|
+
self.parser.add_argument('--analyze_interference', '-ai', default=False, action='store_true', help='Analyze interference before tests start \
|
|
56
|
+
(relevant only for Gateway Simulator)')
|
|
57
|
+
self.parser.add_argument('--unsterile_run', '-ur', default=False, action='store_true',
|
|
58
|
+
help="Set unsterile run mode for the run if there are pixels or energizing devices nearby")
|
|
59
|
+
self.parser.add_argument("--overwrite_defaults", '-od', type=parse_dict_arg, help='Manually overwrite default defines for the bridge (key1=value1,key2=value2...)')
|
|
60
|
+
self.parser.add_argument('--agg', type=int, help='Aggregation time [seconds] the Uplink stages adds to wait before processing results', default=0)
|
|
61
|
+
self.parser.add_argument('--non_cert_run', default=False, action='store_true', help='Mark this as a non-certifying run ' + argparse.SUPPRESS)
|
|
62
|
+
|
|
63
|
+
def parse_args(self, args=None):
|
|
64
|
+
"""Parse arguments and return them."""
|
|
65
|
+
return self.parser.parse_args(args)
|
|
66
|
+
|
|
67
|
+
def main():
|
|
68
|
+
cli = CertificateCLI()
|
|
69
|
+
args = cli.parse_args()
|
|
70
|
+
# Set extra args to defaults
|
|
71
|
+
args.data = DATA_SIMULATION
|
|
72
|
+
args.brg1 = None
|
|
73
|
+
args.latest = False
|
|
74
|
+
args.rc = False
|
|
75
|
+
args.sterile_run = not args.unsterile_run
|
|
76
|
+
certificate.main(args)
|
|
77
|
+
|
|
78
|
+
if __name__ == '__main__':
|
|
79
|
+
main()
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# The certificate should run for every bridge change
|
|
2
|
+
# The setup will include 1 tested device + 1 tester connected with UART or remote GW
|
|
3
|
+
# Run command example with COM PORT connection:
|
|
4
|
+
# python certificate_cli.py --tester SIM --dut <XXXXXXXXXXXX> --tl certificate_eth_test_list.txt --port <COM_PORT> -vs <path_to_validation_schema_file>
|
|
5
|
+
# Run command example with remote GW connection:
|
|
6
|
+
# python certificate_cli.py --tester <GWYYYYYYYYYYYY> --dut <XXXXXXXXXXXX> --tl certificate_eth_test_list.txt -vs <path_to_validation_schema_file>
|
|
7
|
+
|
|
8
|
+
# ------------- edge_mgmt -------------
|
|
9
|
+
edge_mgmt/periodic_msgs_test
|
|
10
|
+
edge_mgmt/action_gw_hb_test
|
|
11
|
+
edge_mgmt/action_blink_test
|
|
12
|
+
edge_mgmt/action_send_hb_test
|
|
13
|
+
edge_mgmt/action_get_battery_sensor_test
|
|
14
|
+
edge_mgmt/action_get_pof_data_test
|
|
15
|
+
edge_mgmt/action_get_module_test
|
|
16
|
+
edge_mgmt/action_reboot_test
|
|
17
|
+
edge_mgmt/action_restore_defaults_test
|
|
18
|
+
|
|
19
|
+
# ------------- energy2400 -------------
|
|
20
|
+
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
|
|
21
|
+
energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
22
|
+
energy2400/duty_cycle_test 1 25 50 75
|
|
23
|
+
energy2400/signal_indicator_test rssi_threshold rx tx_eu_pattern disable_rx disable_tx rx_tx
|
|
24
|
+
energy2400/signal_indicator_ble5_test rssi_threshold rx tx disable_rx disable_tx rx_tx
|
|
25
|
+
|
|
26
|
+
# ------------- energy_sub1g -------------
|
|
27
|
+
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
|
|
28
|
+
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
29
|
+
|
|
30
|
+
# ------------- datapath -------------
|
|
31
|
+
datapath/aging_test low_pacer high_pacer
|
|
32
|
+
datapath/rssi_threshold_test -80 -65 -10
|
|
33
|
+
datapath/pattern_test 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
|
|
34
|
+
datapath/tx_repetition_test 2 4
|
|
35
|
+
datapath/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
36
|
+
datapath/pacer_interval_test 5 15 30 60
|
|
37
|
+
datapath/event_test rssi_event new_tag_event_seconds new_tag_event_minutes temp_event tx_rate_event
|
|
38
|
+
datapath/event_ble5_test rssi_event new_tag_event_seconds new_tag_event_minutes temp_event tx_rate_event
|
|
39
|
+
datapath/pacer_interval_ble5_test 5 15 30 60
|
|
40
|
+
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
|
|
41
|
+
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
|
|
42
|
+
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
|
|
43
|
+
datapath/pkt_filter_ble5_chl21_test PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
44
|
+
datapath/pkt_filter_brg2gw_ext_adv_test RX_CHANNEL_39 RX_CHANNEL_38 RX_CHANNEL_37 RX_CHANNEL_10_500K
|
|
45
|
+
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_39 RX_CHANNEL_10_500K RX_CHANNEL_HOPPING_37_10
|
|
46
|
+
datapath/rx_channel_hopping_test
|
|
47
|
+
datapath/rx_rate_gen2_test mid_values diff_pacer min_value max_value diff_rate
|
|
48
|
+
datapath/rx_rate_gen3_test mid_values diff_pacer min_value max_value diff_rate
|
|
49
|
+
datapath/stress_test rep3 rep2 rep1
|
|
50
|
+
datapath/stress_gen3_test rep3 rep2 rep1
|
|
51
|
+
datapath/num_of_tags_test 5000
|
|
52
|
+
|
|
53
|
+
# ------------- pwr_mgmt -------------
|
|
54
|
+
pwr_mgmt/pwr_mgmt_test
|
|
55
|
+
|
|
56
|
+
# ------------- calibration -------------
|
|
57
|
+
calibration/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
58
|
+
calibration/interval_test 10, 25, 50, 100, 255
|
|
59
|
+
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_STANDARD CALIBRATION_PATTERN_EU_PATTERN CALIBRATION_PATTERN_DISABLE_BEACON
|
|
60
|
+
|
|
61
|
+
# ------------- sensors -------------
|
|
62
|
+
sensors/ext_sensor_test tag_data_only rssi_threshold snsr2_unified snsr0_no_scrmbl snsr1_scrmbl snsr0_no_scrmbl_snsr1_scrmbl_snsr2_scrmbl snsr0_no_scrmbl_snsr1_scrmbl_snsr2_unified
|
|
63
|
+
|
|
64
|
+
# ------------- cloud_connectivity -------------
|
|
65
|
+
cloud_connectivity/connection_test
|
|
66
|
+
cloud_connectivity/uplink_test mgmt_pkt pixels_pkt sensor_pkt
|
|
67
|
+
cloud_connectivity/downlink_test
|
|
68
|
+
cloud_connectivity/uplink_ext_adv_test
|
|
69
|
+
cloud_connectivity/reboot_test
|
|
70
|
+
cloud_connectivity/stress_test 20 40 60 80 100 120 140 160 180 200 222 250 285 333
|
|
71
|
+
cloud_connectivity/ext_adv_stress_test 20 40 60 80 100 120 140 160 180 200
|
|
72
|
+
cloud_connectivity/channel_scan_behaviour_test
|
|
73
|
+
cloud_connectivity/acl_test deny allow
|
|
74
|
+
cloud_connectivity/acl_ext_adv_test deny allow
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# The certificate should run for every bridge change
|
|
2
|
+
# The setup will include 1 tested device + 1 tester connected with UART or remote GW
|
|
3
|
+
# Run command example with COM PORT connection:
|
|
4
|
+
# python certificate_cli.py --tester SIM --dut <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt --port <COM_PORT> -vs <path_to_validation_schema_file>
|
|
5
|
+
# Run command example with remote GW connection:
|
|
6
|
+
# python certificate_cli.py --tester <GWYYYYYYYYYYYY> --dut <XXXXXXXXXXXX> --tl certificate_sanity_test_list.txt -vs <path_to_validation_schema_file>
|
|
7
|
+
|
|
8
|
+
# ------------- edge_mgmt -------------
|
|
9
|
+
edge_mgmt/periodic_msgs_test
|
|
10
|
+
edge_mgmt/action_gw_hb_test
|
|
11
|
+
edge_mgmt/action_blink_test
|
|
12
|
+
edge_mgmt/action_send_hb_test
|
|
13
|
+
edge_mgmt/action_get_battery_sensor_test
|
|
14
|
+
edge_mgmt/action_get_pof_data_test
|
|
15
|
+
edge_mgmt/action_get_module_test
|
|
16
|
+
edge_mgmt/action_reboot_test
|
|
17
|
+
edge_mgmt/action_restore_defaults_test
|
|
18
|
+
|
|
19
|
+
# ------------- energy2400 -------------
|
|
20
|
+
energy2400/pattern_test ENERGY_PATTERN_2_4_CHANNEL_37 ENERGY_PATTERN_2_4_CHANNEL_39 ENERGY_PATTERN_2_4_FREQ_2454
|
|
21
|
+
energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2
|
|
22
|
+
energy2400/duty_cycle_test 1 50 75
|
|
23
|
+
energy2400/signal_indicator_test rx_tx
|
|
24
|
+
energy2400/signal_indicator_ble5_test rx_tx
|
|
25
|
+
|
|
26
|
+
# ------------- energy_sub1g -------------
|
|
27
|
+
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
|
|
28
|
+
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
29
|
+
|
|
30
|
+
# ------------- datapath -------------
|
|
31
|
+
datapath/aging_test low_pacer
|
|
32
|
+
datapath/rssi_threshold_test -80
|
|
33
|
+
datapath/pattern_test DATAPATH_PATTERN_38_38_39 DATAPATH_PATTERN_EU_PATTERN DATAPATH_PATTERN_EXTENDED_ADV DATAPATH_PATTERN_EXTENDED_ADV_38_39
|
|
34
|
+
datapath/tx_repetition_test 4
|
|
35
|
+
datapath/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2
|
|
36
|
+
datapath/event_test new_tag_event_seconds temp_event
|
|
37
|
+
datapath/event_ble5_test new_tag_event_seconds
|
|
38
|
+
datapath/pkt_filter_ble5_test PKT_FILTER_TEMP_PKT
|
|
39
|
+
datapath/pkt_filter_gen3_test PKT_FILTER_TEMP_PKT
|
|
40
|
+
datapath/pkt_filter_ble5_chl21_test PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
41
|
+
datapath/pkt_filter_brg2gw_ext_adv_test RX_CHANNEL_38
|
|
42
|
+
datapath/rx_channel_test RX_CHANNEL_38 RX_CHANNEL_10_500K RX_CHANNEL_HOPPING_37_10
|
|
43
|
+
datapath/rx_rate_gen2_test min_value
|
|
44
|
+
datapath/num_of_tags_test 500
|
|
45
|
+
|
|
46
|
+
# ------------- pwr_mgmt -------------
|
|
47
|
+
pwr_mgmt/pwr_mgmt_test
|
|
48
|
+
|
|
49
|
+
# ------------- calibration -------------
|
|
50
|
+
calibration/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2
|
|
51
|
+
calibration/interval_test 25 50
|
|
52
|
+
calibration/pattern_test CALIBRATION_PATTERN_38_38_39
|
|
53
|
+
|
|
54
|
+
# ------------- sensors -------------
|
|
55
|
+
sensors/ext_sensor_test snsr0_no_scrmbl_snsr1_scrmbl_snsr2_scrmbl
|
|
56
|
+
|
|
57
|
+
# ------------- cloud_connectivity -------------
|
|
58
|
+
cloud_connectivity/uplink_test mgmt_pkt pixels_pkt
|
|
59
|
+
cloud_connectivity/downlink_test
|
|
60
|
+
cloud_connectivity/uplink_ext_adv_test
|
|
61
|
+
cloud_connectivity/reboot_test
|
|
62
|
+
cloud_connectivity/stress_test 100 222
|
|
63
|
+
cloud_connectivity/ext_adv_stress_test 20 100
|
|
64
|
+
cloud_connectivity/acl_test deny
|
|
65
|
+
cloud_connectivity/acl_ext_adv_test allow
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# The certificate should run for every bridge change
|
|
2
|
+
# The setup will include 1 tested device + 1 tester connected with UART or remote GW
|
|
3
|
+
# Run command example with COM PORT connection:
|
|
4
|
+
# python certificate_cli.py --tester SIM --dut <XXXXXXXXXXXX> --port <COM_PORT> -vs <path_to_validation_schema_file>
|
|
5
|
+
# Run command example with remote GW connection:
|
|
6
|
+
# python certificate_cli.py --tester <GWYYYYYYYYYYYY> --dut <XXXXXXXXXXXX> -vs <path_to_validation_schema_file>
|
|
7
|
+
|
|
8
|
+
# ------------- edge_mgmt -------------
|
|
9
|
+
edge_mgmt/periodic_msgs_test
|
|
10
|
+
edge_mgmt/action_gw_hb_test
|
|
11
|
+
edge_mgmt/action_blink_test
|
|
12
|
+
edge_mgmt/action_send_hb_test
|
|
13
|
+
edge_mgmt/action_get_battery_sensor_test
|
|
14
|
+
edge_mgmt/action_get_pof_data_test
|
|
15
|
+
edge_mgmt/action_get_module_test
|
|
16
|
+
edge_mgmt/action_reboot_test
|
|
17
|
+
edge_mgmt/action_restore_defaults_test
|
|
18
|
+
|
|
19
|
+
# ------------- energy2400 -------------
|
|
20
|
+
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
|
|
21
|
+
energy2400/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
22
|
+
energy2400/duty_cycle_test 1 25 50 75
|
|
23
|
+
energy2400/signal_indicator_test rssi_threshold rx tx_eu_pattern disable_rx disable_tx rx_tx
|
|
24
|
+
energy2400/signal_indicator_ble5_test rssi_threshold rx tx disable_rx disable_tx rx_tx
|
|
25
|
+
#energy2400/signal_indicator_ext_adv_test rssi_threshold brg0_tx_brg1_rx brg0_rxtx_brg1_rxtx
|
|
26
|
+
|
|
27
|
+
# ------------- energy_sub1g -------------
|
|
28
|
+
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
|
|
29
|
+
energy_sub1g/duty_cycle_test 15 20 40 0
|
|
30
|
+
|
|
31
|
+
# ------------- datapath -------------
|
|
32
|
+
datapath/aging_test low_pacer high_pacer
|
|
33
|
+
datapath/rssi_threshold_test -80 -65 -10
|
|
34
|
+
datapath/pattern_test 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
|
|
35
|
+
datapath/tx_repetition_test 2 4
|
|
36
|
+
datapath/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
37
|
+
datapath/pacer_interval_test 5 15 30 60
|
|
38
|
+
datapath/event_test rssi_event new_tag_event_seconds new_tag_event_minutes temp_event tx_rate_event
|
|
39
|
+
datapath/event_ble5_test rssi_event new_tag_event_seconds new_tag_event_minutes temp_event tx_rate_event
|
|
40
|
+
datapath/pacer_interval_ble5_test 5 15 30 60
|
|
41
|
+
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
|
|
42
|
+
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
|
|
43
|
+
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
|
|
44
|
+
datapath/pkt_filter_ble5_chl21_test PKT_FILTER_TEMP_AND_ADVANCED_PKTS
|
|
45
|
+
datapath/pkt_filter_brg2gw_ext_adv_test RX_CHANNEL_39 RX_CHANNEL_38 RX_CHANNEL_37 RX_CHANNEL_10_500K
|
|
46
|
+
datapath/rx_channel_test RX_CHANNEL_37 RX_CHANNEL_38 RX_CHANNEL_39 RX_CHANNEL_10_500K RX_CHANNEL_HOPPING_37_10
|
|
47
|
+
datapath/rx_channel_hopping_test
|
|
48
|
+
datapath/rx_rate_gen2_test mid_values diff_pacer min_value max_value diff_rate
|
|
49
|
+
datapath/rx_rate_gen3_test mid_values diff_pacer min_value max_value diff_rate
|
|
50
|
+
datapath/stress_test rep3 rep2 rep1
|
|
51
|
+
datapath/stress_gen3_test rep3 rep2 rep1
|
|
52
|
+
datapath/num_of_tags_test 5000
|
|
53
|
+
|
|
54
|
+
# ------------- pwr_mgmt -------------
|
|
55
|
+
pwr_mgmt/pwr_mgmt_test
|
|
56
|
+
|
|
57
|
+
# ------------- calibration -------------
|
|
58
|
+
calibration/output_power_test OUTPUT_POWER_2_4_MAX_MINUS_26 OUTPUT_POWER_2_4_MAX_MINUS_23 OUTPUT_POWER_2_4_MAX_MINUS_22 OUTPUT_POWER_2_4_MAX_MINUS_20 OUTPUT_POWER_2_4_MAX_MINUS_19 OUTPUT_POWER_2_4_MAX_MINUS_18 OUTPUT_POWER_2_4_MAX_MINUS_16 OUTPUT_POWER_2_4_MAX_MINUS_15 OUTPUT_POWER_2_4_MAX_MINUS_14 OUTPUT_POWER_2_4_MAX_MINUS_12 OUTPUT_POWER_2_4_MAX_MINUS_11 OUTPUT_POWER_2_4_MAX_MINUS_10 OUTPUT_POWER_2_4_MAX_MINUS_8 OUTPUT_POWER_2_4_MAX_MINUS_7 OUTPUT_POWER_2_4_MAX_MINUS_6 OUTPUT_POWER_2_4_MAX_MINUS_4 OUTPUT_POWER_2_4_MAX_MINUS_3 OUTPUT_POWER_2_4_MAX_MINUS_2 OUTPUT_POWER_2_4_MAX
|
|
59
|
+
calibration/interval_test 10, 25, 50, 100, 255
|
|
60
|
+
calibration/pattern_test CALIBRATION_PATTERN_38_38_39 CALIBRATION_PATTERN_STANDARD CALIBRATION_PATTERN_EU_PATTERN CALIBRATION_PATTERN_DISABLE_BEACON
|
|
61
|
+
|
|
62
|
+
# ------------- sensors -------------
|
|
63
|
+
sensors/ext_sensor_test tag_data_only rssi_threshold snsr2_unified snsr0_no_scrmbl snsr1_scrmbl snsr0_no_scrmbl_snsr1_scrmbl_snsr2_scrmbl snsr0_no_scrmbl_snsr1_scrmbl_snsr2_unified
|
|
64
|
+
|
|
65
|
+
# ------------- cloud_connectivity -------------
|
|
66
|
+
cloud_connectivity/uplink_test mgmt_pkt pixels_pkt sensor_pkt geolocation
|
|
67
|
+
cloud_connectivity/downlink_test
|
|
68
|
+
cloud_connectivity/uplink_ext_adv_test
|
|
69
|
+
cloud_connectivity/reboot_test
|
|
70
|
+
cloud_connectivity/stress_test 20 40 60 80 100 120 140 160 180 200 222 250 285 333
|
|
71
|
+
cloud_connectivity/ext_adv_stress_test 20 40 60 80 100 120 140 160 180 200
|
|
72
|
+
cloud_connectivity/channel_scan_behaviour_test
|
|
73
|
+
cloud_connectivity/acl_test deny allow
|
|
74
|
+
cloud_connectivity/acl_ext_adv_test deny allow
|
|
75
|
+
cloud_connectivity/brg_ota_test
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
from
|
|
2
|
-
from
|
|
3
|
-
from
|
|
4
|
-
import
|
|
5
|
-
import
|
|
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):
|
|
@@ -16,7 +17,7 @@ def run(test):
|
|
|
16
17
|
for param in test.params:
|
|
17
18
|
test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=calib_module)[0]
|
|
18
19
|
# param epilog
|
|
19
|
-
generate_log_file(test, param.name)
|
|
20
|
+
cert_mqtt.generate_log_file(test, param.name)
|
|
20
21
|
field_functionality_pass_fail_print(test, fields[0], value=param.name)
|
|
21
22
|
test.set_phase_rc(param.name, test.rc)
|
|
22
23
|
test.add_phase_reason(param.name, test.reason)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Output Power",
|
|
3
|
+
"module": "Calibration",
|
|
4
|
+
"purpose": "Test configuration for all supported calibration output power values",
|
|
5
|
+
"documentation": "https://community.wiliot.com/customers/s/article/Wiliot-Network-Calibration-Module",
|
|
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
|
+
"allSupportedValues": ["OUTPUT_POWER_2_4_MAX", "OUTPUT_POWER_2_4_MAX_MINUS_2", "OUTPUT_POWER_2_4_MAX_MINUS_3",
|
|
16
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_4", "OUTPUT_POWER_2_4_MAX_MINUS_6", "OUTPUT_POWER_2_4_MAX_MINUS_7",
|
|
17
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_8", "OUTPUT_POWER_2_4_MAX_MINUS_10", "OUTPUT_POWER_2_4_MAX_MINUS_11",
|
|
18
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_12", "OUTPUT_POWER_2_4_MAX_MINUS_14", "OUTPUT_POWER_2_4_MAX_MINUS_15",
|
|
19
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_16", "OUTPUT_POWER_2_4_MAX_MINUS_18", "OUTPUT_POWER_2_4_MAX_MINUS_19",
|
|
20
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_20", "OUTPUT_POWER_2_4_MAX_MINUS_22", "OUTPUT_POWER_2_4_MAX_MINUS_23",
|
|
21
|
+
"OUTPUT_POWER_2_4_MAX_MINUS_26"]
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
|
|
8
|
+
|
|
9
|
+
def run(test):
|
|
10
|
+
|
|
11
|
+
fields = [BRG_OUTPUT_POWER]
|
|
12
|
+
calib_module = test.active_brg.calibration
|
|
13
|
+
|
|
14
|
+
test = cert_common.test_prolog(test)
|
|
15
|
+
if test.rc == TEST_FAILED:
|
|
16
|
+
return cert_common.test_epilog(test)
|
|
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
|
+
|
|
29
|
+
test = cert_config.brg_configure(test, fields=fields, values=[param.value], module=calib_module)[0]
|
|
30
|
+
cert_mqtt.generate_log_file(test, param.name)
|
|
31
|
+
field_functionality_pass_fail_print(test, fields[0], value=param.name)
|
|
32
|
+
test.set_phase_rc(param.name, test.rc)
|
|
33
|
+
test.add_phase_reason(param.name, test.reason)
|
|
34
|
+
if test.rc == TEST_FAILED:
|
|
35
|
+
if test.exit_on_param_failure:
|
|
36
|
+
break # break the whole for loop and keep the test as failed
|
|
37
|
+
test.reset_result() # reset result and continue to next param
|
|
38
|
+
|
|
39
|
+
return cert_common.test_epilog(test, revert_brgs=True, modules=[calib_module])
|
|
@@ -11,6 +11,6 @@
|
|
|
11
11
|
"mandatory": 0,
|
|
12
12
|
"multiBridgeTest": 0,
|
|
13
13
|
"gwOnlyTest": 0,
|
|
14
|
-
"
|
|
14
|
+
"dataSimOnlyTest": 0,
|
|
15
15
|
"allSupportedValues": ["CALIBRATION_PATTERN_STANDARD", "CALIBRATION_PATTERN_38_38_39", "CALIBRATION_PATTERN_EU_PATTERN", "CALIBRATION_PATTERN_DISABLE_BEACON"]
|
|
16
16
|
}
|