Compare commits

...

71 Commits

Author SHA1 Message Date
He Yin Ling 8e8b76783b versions: Update version to 3.2.5 2020-10-30 10:42:29 +08:00
Jiang Jiang Jian 4b734a3de3 Merge branch 'bugfix/fix_unable_update_rssi_of_hidden_ap_v3.2' into 'release/v3.2'
bugfix: fix unable update rssi of hidden ap (backport v3.2)

See merge request espressif/esp-idf!10996
2020-10-28 15:03:21 +08:00
Jiang Jiang Jian 69d577abdd Merge branch 'bugfix/fix_dhcp_renew_fail_for_3.2' into 'release/v3.2'
lw-ip: Fix dhcp renew fail in t1 and will renew ip in t2 every 1s (backport 3.2)

See merge request espressif/esp-idf!10985
2020-10-28 11:21:46 +08:00
ronghulin ccd8c0a689 bugfix: fix unable update rssi of hidden ap 2020-10-28 10:48:35 +08:00
Jiang Jiang Jian d5bf3cfc5f Merge branch 'bugfix/fix_tsf_bug_v3.2' into 'release/v3.2'
WiFi: fix tsf bug (backport v3.2)

See merge request espressif/esp-idf!10954
2020-10-27 16:15:35 +08:00
zhangyanjiao e7c1dda22d esp_wifi: Fixed the bug for timestamp check, didn't disconnect AP when AP's timestamp decrease abnormally 2020-10-26 09:56:21 +00:00
xueyunfei 538bf6cbb3 fix(dhcp): Fix dhcp renew fail in t1 and will renew ip in t2 every 1s util renew successful.(backport 3.2) 2020-10-26 16:41:30 +08:00
Jiang Jiang Jian 5c67e1c946 Merge branch 'bugfix/udpv6_fail_to_receive_data_for_the_first_time_for_3.2' into 'release/v3.2'
lw-ip:udpv6 failed to receive data for the first time for 3.2(backport 3.2)

See merge request espressif/esp-idf!10944
2020-10-26 15:13:08 +08:00
He Yin Ling 94cca60872 Merge branch 'feature/move_auto_test_script_to_new_repo_3.2' into 'release/v3.2'
ci: move auto_test_script to new repo (backport 3.2)

See merge request espressif/esp-idf!10925
2020-10-24 09:27:29 +08:00
Chen Yu Dong afb17229ef CI: get git describe from annotated tags:
we should only parse IDF version from annotated tags
2020-10-24 09:27:25 +08:00
xueyunfei 0a977ab54e udpv6 failed to receive data for the first time for 3.2 2020-10-22 11:42:10 +08:00
Jiang Jiang Jian dcce508a7a Merge branch 'bugfix/ipv6_address_get_fail_after_wifi_disconnect_for_3.2' into 'release/v3.2'
lw-ip:ipv6 address get fail after wifi disconnect for 3.2(backport 3.2)

See merge request espressif/esp-idf!10791
2020-10-13 12:15:35 +08:00
xueyunfei 6de91f9d19 lw-ip:ipv6 address get fail after wifi disconnect for 3.2 2020-10-12 11:00:20 +08:00
Jiang Jiang Jian dc66e7a769 Merge branch 'bugfix/fix_receiving_packets_from_myself_v3.2' into 'release/v3.2'
esp_wifi: drop receiving packets from myself (backport v3.2)

See merge request espressif/esp-idf!10562
2020-09-24 22:33:58 +08:00
Jiang Jiang Jian 97a95fd160 Merge branch 'bugfix/fix_ipv6_nd6_max_queue_num_v3' into 'release/v3.2'
lfix IPv6 ND6 queue too much pkts cause no mem issue(backport v3.2)

See merge request espressif/esp-idf!10176
2020-09-24 11:36:56 +08:00
Jiang Jiang Jian e2227d8c77 Merge branch 'bugfix/wifi_spin_lock_allocation_in_PSRAM_v3.2' into 'release/v3.2'
wifi: Fix spin lock allocation in PSRAM bug(v3.2)

See merge request espressif/esp-idf!10542
2020-09-23 14:08:50 +08:00
ChenJianxing 0a099b99b1 lwip: fix IPv6 ND6 queue too much pkts cause no mem issue and add menuconfig item for this params. 2020-09-22 20:34:40 +08:00
xiehang 75cd0d14c2 esp_wifi: drop receiving packets from myself 2020-09-22 17:42:45 +08:00
dongyou cc611a76c6 Fix spin lock allocation in PSRAM bug 2020-09-22 11:54:06 +08:00
Jiang Jiang Jian 5cdbb9e7b1 Merge branch 'bugfix/fix_some_wifi_bugs_0907_v3.2' into 'release/v3.2'
bugfix: fix softap mode wpa memory leak (backport v3.2)

See merge request espressif/esp-idf!10321
2020-09-22 11:49:32 +08:00
Jiang Jiang Jian c9a075ad1b Merge branch 'bugfix/backport_some_lwip_bugs_0910_v3.2' into 'release/v3.2'
lw-ip:backport bugfix lw-ip for v3.2

See merge request espressif/esp-idf!10408
2020-09-22 11:48:54 +08:00
ronghulin c374008d22 bugfix: fix softap mode wpa memory leak 2020-09-11 10:40:54 +08:00
xueyunfei 0b94e9e47f backport bugfix lwip for v3.2 2020-09-10 16:45:04 +08:00
Island 3ebf6ec6e5 Merge branch 'bugfix/btdm_blufi_data_sequence_not_reset_after_disconnect_v3.2' into 'release/v3.2'
component/bt: fix Blufi sends data after disconnect the seq still increase(backport v3.2)

See merge request espressif/esp-idf!10244
2020-09-04 11:14:21 +08:00
XieWenxiang be7ee1aa53 component/bt: fix Blufi sends data after disconnect the seq still increase(backport v3.2) 2020-09-02 14:32:29 +08:00
Jiang Jiang Jian 8cd3209f74 Merge branch 'bugfix/fix_16mbit_psram_id_read_error_v3.2' into 'release/v3.2'
psram: fix 16mbit psram id read error (backport v3.2)

See merge request espressif/esp-idf!9442
2020-08-19 16:22:59 +08:00
Jiang Jiang Jian d38a28c577 Merge branch 'cherry-pick-19736dbe-2' into 'release/v3.2'
wpa_supplicant: Fix some memleaks and invalid memory access(backport V3.2)

See merge request espressif/esp-idf!10033
2020-08-19 16:22:16 +08:00
Michael (XIAO Xufeng) a0c2b942c2 Merge branch 'bugfix/fix_bugs_in_gpio_unit_test_v3.2' into 'release/v3.2'
bugfix(ut): fix gpio output and input mode test(backport v3.2)

See merge request espressif/esp-idf!10022
2020-08-14 11:10:51 +08:00
Jiang Jiang Jian 209f7bc041 Merge branch 'bugfix/supplicant_general_fixes_33' into 'release/v3.3'
wpa_supplicant: Fix some memleaks and invalid memory access(backport V3.3)

See merge request espressif/esp-idf!8741

(cherry picked from commit 19736dbedc)

b91bba1a wpa_supplicant: Fix some memleaks and invalid memory access
2020-08-13 11:34:02 +08:00
Michael (XIAO Xufeng) 6ccba01bb3 spiram: fix the read id failure
The issue is caused by:
1. The disable_qio_mode inside read_id may have side effects.
2. read_id twice may have side effects.

Fix this issue by moving disable_qio_mode out of read_id and only do it
once before read_id. And retry read_id only when the first one is
failed.

Issue introduced in 3ecbb59c15.
2020-08-13 03:29:42 +00:00
chenjianqiang ec0030609e psram: fix 16mbit psram id read error 2020-08-13 03:29:42 +00:00
Jiang Jiang Jian bb1cdfa118 Merge branch 'bugfix/fix_udp_tx_performance_issue_v3.2' into 'release/v3.2'
lw-ip: fix udp tx packet loss issue (backport v3.2)

See merge request espressif/esp-idf!10019
2020-08-13 11:17:17 +08:00
Jiang Jiang Jian 121e20aa25 Merge branch 'bugfix/fix_bt_btc_gatts_arg_deep_copy_backport_v3.2' into 'release/v3.2'
components/bt: Fix btc_gatts_arg_deep_copy() and bta_gatts_indicate_handle() backport v3.2

See merge request espressif/esp-idf!9240
2020-08-13 11:15:46 +08:00
Chen Yi Qun 6d3afb3a18 bugfix(ut): fix gpio output and input mode test(backport v3.2) 2020-08-12 20:09:57 +08:00
xiehang c8b09c650d lw-ip: fix udp tx packet loss issue 2020-08-12 15:11:06 +08:00
Jiang Jiang Jian c3b9f6b9e3 Merge branch 'bugfix/backport_some_lwip_bugs_0722_v3.2' into 'release/v3.2'
lw-ip:backport some lw-ip bugs 0722 v3.2

See merge request espressif/esp-idf!9738
2020-08-12 14:10:49 +08:00
Jiang Jiang Jian 3c3d6d7299 Merge branch 'bugfix/fix_some_wifi_bugs_0525_v3.2' into 'release/v3.2'
feature: optimize some wifi API (backport v3.2)

See merge request espressif/esp-idf!8892
2020-08-11 14:45:32 +08:00
xueyunfei ebf7dd5dcc backport bugfix lwip for v3.2 2020-08-11 14:33:04 +08:00
Jiang Jiang Jian b5bb9b7bbd Merge branch 'bugfix/param_check_instant_tx_octets_adv_ubderrun_v3.2' into 'release/v3.2'
component/bt: add connect parameter, fix instant reverse, fix tx default octets, fix assert(1024,0)

See merge request espressif/esp-idf!9485
2020-08-11 00:56:26 +08:00
ronghulin afc55aec43 feature: optimize some wifi API
1. optimization esp_wifi_set_max_tx_power description
2. add API esp_wifi_ap_get_sta_aid
2020-08-10 15:03:53 +00:00
Jiang Jiang Jian 890b0ff16d Merge branch 'bugfix/put_periph_module_enable/diable_into_iram_v3.2' into 'release/v3.2'
wifi, bt: move esp_phy_common_clock_disable into periph_ctrl and put it into IRAM(v3.2)

See merge request espressif/esp-idf!9962
2020-08-07 18:10:36 +08:00
Jiang Jiang Jian 6fc081956f Merge branch 'bugfix/bt_linkup_fallback_event_v3.2' into 'release/v3.2'
Bluedroid: Fixes cases having fallback to link up event. (v3.2)

See merge request espressif/esp-idf!9806
2020-08-07 14:09:46 +08:00
Jiang Jiang Jian 6a2609997c Merge branch 'mesh/bugfix_set_type_v3.2' into 'release/v3.2'
Mesh/bugfix (backport 3.2)

See merge request espressif/esp-idf!9180
2020-08-07 13:30:26 +08:00
dongyou 7f86d81083 Replace periph_module_enable/disable by periph_wifi_bt_common_module_enable which are in IRAM.
AddIRAM_ATTR periph_ll_wifi_bt_module_enable_clk_clear_rstandIRAM_ATTR periph_ll_wifi_bt_module_disable_clk_set_rstto fit O0 optimization level.
Delete duplicated spinlock and counter.
2020-08-06 17:38:31 +08:00
chenyudong 993da2b282 mesh/ci: fix MESH_EST_0216 2020-08-04 14:21:01 +08:00
chenyudong 5f9908874a mesh: backport some bugfixes
1. If the root is specified (FIXED-ROOT) by set type or set parent, change ie.mesh_type to MESH_ROOT before connect to router.
2. Release esp_mesh_recv_toDS when the root becomes non-root.
3. esp_mesh_set_type now supports MESH_IDLE and MESH_STA.
4. Fix ie.rc_rssi is not updated during scan and vote.
5. Fix ie.mesh_type do not match ie.layer caused by parent switch.
6. Fix during root switch, the original root doesn't disconnect from the router after it receives the switch request from the new voted root. (root switch happens by invoking esp_mesh_waive_root).
7. Fix the routing announce timer is not stopped immediately in a new root if the new root is transformed from non-root.
8. Choose the candidate with less ie.assoc when doing parent switch.
2020-08-04 14:20:59 +08:00
Jiang Jiang Jian 688c623156 Merge branch 'bugfix/fix_fragment_issue_v3.2' into 'release/v3.2'
esp_wifi: Fix WiFi fragment issue (backport v3.2)

See merge request espressif/esp-idf!9881
2020-08-04 12:10:27 +08:00
xiehang 5d8c4143ef esp_wifi: Fix WiFi fragment issue 2020-07-31 20:29:06 +08:00
He Yin Ling 6710912670 Merge branch 'bugfix/checkout_ref_auto_test_script_v3.2' into 'release/v3.2'
CI: IT jobs use incorrect auto test script branch (v3.2)

See merge request espressif/esp-idf!9868
2020-07-31 17:46:04 +08:00
Chen Yudong 608179caf1 test: fix auto test script uses incorrect branch 2020-07-30 14:15:47 +08:00
Chinmay Chhajed 205f345696 Bluedroid: Fixes cases having fallback to link up event.
Signed-off-by: Chinmay Chhajed <chinmay.chhajed@espressif.com>
2020-07-27 14:09:17 +05:30
wangcheng f2b8bb6dae component/bt: add connect parameter, fix instant reverse, fix tx default octets, fix assert(1024,0), fix assert(512,0) 2020-07-25 03:09:56 +00:00
Mahavir Jain f19da37212 Merge branch 'fix/prov_ble_read_offset_v3.2' into 'release/v3.2'
BLE provisioning: Add check for valid ble read offset (v3.2)

See merge request espressif/esp-idf!9748
2020-07-24 22:16:17 +08:00
Jiang Jiang Jian 460e04f4ff Merge branch 'bugfix/fix_some_wifi_bugs_0703_v3.2' into 'release/v3.2'
fix some wifi bugs 0703 (v3.2)

See merge request espressif/esp-idf!9538
2020-07-23 12:37:39 +08:00
Prasad Alatkar f5e7ed9835 BLE provisioning: Add check for valid ble read offset 2020-07-22 19:44:14 +05:30
Angus Gratton ce955de719 Merge branch 'ci/workaround_multiple_ci_failures_v3.2' into 'release/v3.2'
CI: workaround multiple ci failures (v3.2)

See merge request espressif/esp-idf!9688
2020-07-22 11:51:59 +08:00
Jiang Jiang Jian 364fb4d284 Merge branch 'bugfix/customer_baidu_int_wdt_v3.2' into 'release/v3.2'
backport v3.2: add soft solution for esp32 eco3 live lock issue

See merge request espressif/esp-idf!9221
2020-07-21 12:19:56 +08:00
Jiang Jiang Jian 3f35383544 Merge branch 'feature/make_tcp_rto_configurable_v3.2' into 'release/v3.2'
make TCP rto time configurable (backport v3.2)

See merge request espressif/esp-idf!9611
2020-07-21 12:19:29 +08:00
yuanjm 5c9a5e6b80 feat(lwip): make LWIP TCP rto time configurable 2020-07-20 11:59:24 +00:00
He Yin Ling 548325c01f CI: do not run cases likely to fail 2020-07-19 15:40:39 +08:00
He Yin Ling 7dd3f60f17 CI: disable cases with test env SSC_T5_1 2020-07-19 15:38:44 +08:00
He Yin Ling 2fcb579748 CI: temp allow mesh job to fail as runner is not stable 2020-07-19 15:34:06 +08:00
He Yin Ling ae86aff61b CI: remove incorrect MTU related cases 2020-07-19 15:32:24 +08:00
Li Shuai 001be802c6 add soft solution for esp32 eco3 live lock issue 2020-07-17 05:29:48 +00:00
Jiang Jiang Jian 0eb17e7601 Merge branch 'bugfix/ws_send_abort_v3.2' into 'release/v3.2'
websocket client: the client now aborts the connection if send fails. (v3.2)

See merge request espressif/esp-idf!9172
2020-07-15 16:36:51 +08:00
Jiang Jiang Jian 8ada763bee Merge branch 'feature/bt_secure_conn_downgrade_check_v3.2' into 'release/v3.2'
Bluedroid: Authentication fixes in Legacy and Secure Connection.

See merge request espressif/esp-idf!9337
2020-07-15 16:35:34 +08:00
zhangyanjiao 595be5a143 esp_wifi: Add API to get available internal heap size 2020-07-08 21:09:02 +08:00
zhangyanjiao d16831cf81 esp wifi bugfix:
1. Fix TX DMA buffer issue
2. API esp_wifi_get_config add acquisition sta.listen_interval
3. Configure bandwidth and phy mode to store NVS
4. If AP's tsf has been restarted, STA will disconnect from AP.
5. Do not reset softAP's tsf except it restart
6. fix the wifi regdomain update bug
7. fix the bug for airkiss find hidden AP fail
8. fix addba and first ampdu send bar
2020-07-08 21:07:24 +08:00
Chinmay Chhajed 94353c411e Bluedroid: Authentication fixes in Legacy and Secure Connection.
Prevent a remote device from doing a Bluetooth Impersonation Attack
(BIAS) by:

- Preventing remote device to downgrade secure connection
feature mask. Secure connection feature mask should remain same or
increase to enabled in link key generation and authentication.

- Doing a mutual authentication during Legacy Authentication.
2020-06-25 16:22:34 +05:30
Hrishikesh Dhayagude 4228e2e62e components/bt: Fix btc_gatts_arg_deep_copy() and bta_gatts_indicate_handle() 2020-06-18 18:13:01 +08:00
Marius Vikhammer 5b6bc8c5ed websocket client: the client now aborts the connection if send fails.
Closes IDF-1744
2020-06-15 14:54:21 +08:00
86 changed files with 1183 additions and 34698 deletions
+73 -226
View File
@@ -33,8 +33,13 @@ variables:
APPLY_BOT_FILTER_SCRIPT: "$CI_PROJECT_DIR/tools/ci/apply_bot_filter.py"
CHECKOUT_REF_SCRIPT: "$CI_PROJECT_DIR/tools/ci/checkout_project_ref.py"
# Docker images
# Docker images
BOT_DOCKER_IMAGE_TAG: ":latest"
# target test repo parameters
TEST_ENV_CONFIG_REPO: "${GITLAB_SSH_SERVER}/qa/ci-test-runner-configs.git"
CI_AUTO_TEST_SCRIPT_REPO_URL: "${GITLAB_SSH_SERVER}/qa/auto_test_script.git"
CI_AUTO_TEST_SCRIPT_REPO_BRANCH: "ci/v3.1"
# When 'fetch' strategy is used, Gitlab removes untracked files before checking out
# new revision. However if the new revision doesn't include some of the submodules
@@ -106,6 +111,14 @@ before_script:
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host gitlab.espressif.cn\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
# for parallel jobs, CI_JOB_NAME will be "job_name index/total" (for example, "IT_001 1/2")
# we need to convert to pattern "job_name_index.yml"
.define_config_file_name: &define_config_file_name |
JOB_NAME_PREFIX=$(echo ${CI_JOB_NAME} | awk '{print $1}')
JOB_FULL_NAME="${JOB_NAME_PREFIX}_${CI_NODE_INDEX}"
CONFIG_FILE="${CONFIG_FILE_PATH}/${JOB_FULL_NAME}.yml"
build_template_app:
stage: build
image: $CI_DOCKER_REGISTRY/esp32-ci-env$BOT_DOCKER_IMAGE_TAG
@@ -787,6 +800,11 @@ assign_test:
variables:
TEST_FW_PATH: "$CI_PROJECT_DIR/tools/tiny-test-fw"
EXAMPLE_CONFIG_OUTPUT_PATH: "$CI_PROJECT_DIR/examples/test_configs"
INTEGRATION_CONFIG_OUTPUT_PATH: "${CI_PROJECT_DIR}/components/idf_test/integration_test/CIConfigs"
TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/auto_test_script/TestCaseFiles"
ASSIGN_TEST_CASE_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIAssignTestCases.py"
PYTHONPATH: "${CI_PROJECT_DIR}/auto_test_script/packages"
PYTHON_VER: 3.7.7
artifacts:
paths:
- components/idf_test/*/CIConfigs
@@ -806,11 +824,11 @@ assign_test:
# assign unit test cases
- python $TEST_FW_PATH/CIAssignUnitTest.py $IDF_PATH/components/idf_test/unit_test/TestCaseAll.yml $IDF_PATH/.gitlab-ci.yml $IDF_PATH/components/idf_test/unit_test/CIConfigs
# clone test script to assign tests
- git clone $TEST_SCRIPT_REPOSITORY
- ./tools/ci/retry_failed.sh git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} -b empty_branch
- ./tools/ci/retry_failed.sh git -C auto_test_script checkout -f ${CI_AUTO_TEST_SCRIPT_REPO_BRANCH}
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
# assgin integration test cases
- python CIAssignTestCases.py -t $IDF_PATH/components/idf_test/integration_test -c $IDF_PATH/.gitlab-ci.yml -b $IDF_PATH/SSC/ssc_bin
- python ${ASSIGN_TEST_CASE_SCRIPT} -t $TEST_CASE_FILE_PATH -c $IDF_PATH/.gitlab-ci.yml -b $IDF_PATH/SSC/ssc_bin -o $INTEGRATION_CONFIG_OUTPUT_PATH
.example_test_template: &example_test_template
stage: target_test
@@ -860,7 +878,7 @@ assign_test:
# first test if config file exists, if not exist, exit 0
- test -e $CONFIG_FILE || exit 0
# clone test env configs
- git clone $TEST_ENV_CONFIG_REPOSITORY
- ./tools/ci/retry_failed.sh git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
- cd $TEST_FW_PATH
# run test
@@ -916,23 +934,27 @@ assign_test:
variables:
LOCAL_ENV_CONFIG_PATH: "$CI_PROJECT_DIR/ci-test-runner-configs/$CI_RUNNER_DESCRIPTION/ESP32_IDF"
LOG_PATH: "$CI_PROJECT_DIR/$CI_COMMIT_SHA"
TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/components/idf_test/integration_test"
MODULE_UPDATE_FILE: "$CI_PROJECT_DIR/components/idf_test/ModuleDefinition.yml"
CONFIG_FILE: "$CI_PROJECT_DIR/components/idf_test/integration_test/CIConfigs/${CI_JOB_NAME}_.yml"
TEST_CASE_FILE_PATH: "$CI_PROJECT_DIR/auto_test_script/TestCaseFiles"
CONFIG_FILE_PATH: "${CI_PROJECT_DIR}/components/idf_test/integration_test/CIConfigs"
KNOWN_ISSUE_FILE: "${CI_PROJECT_DIR}/components/idf_test/integration_test/KnownIssues"
PYTHONPATH: "${CI_PROJECT_DIR}/auto_test_script/packages"
CI_RUNNER_SCRIPT: "${CI_PROJECT_DIR}/auto_test_script/bin/CIRunner.py"
PYTHON_VER: 3.7.7
before_script: *add_gitlab_key_before
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0
- test -e $CONFIG_FILE || exit 0
# clone local test env configs
- git clone $TEST_ENV_CONFIG_REPOSITORY
- ./tools/ci/retry_failed.sh git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
- cd ci-test-runner-configs
# clone test bench
- git clone $TEST_SCRIPT_REPOSITORY
- ./tools/ci/retry_failed.sh git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} -b empty_branch
- ./tools/ci/retry_failed.sh git -C auto_test_script checkout -f ${CI_AUTO_TEST_SCRIPT_REPO_BRANCH}
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
- cat ${KNOWN_ISSUE_FILE} >> ${TEST_CASE_FILE_PATH}/KnownIssues
# run test
- python CIRunner.py -l "$LOG_PATH/$CI_JOB_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH -m $MODULE_UPDATE_FILE
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$CI_JOB_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
nvs_compatible_test:
<<: *test_template
@@ -946,18 +968,21 @@ nvs_compatible_test:
- ESP32_IDF
- NVS_Compatible
script:
- *define_config_file_name
# first test if config file exists, if not exist, exit 0
- test -e $CONFIG_FILE || exit 0
# clone local test env configs
- git clone $TEST_ENV_CONFIG_REPOSITORY
- ./tools/ci/retry_failed.sh git clone $TEST_ENV_CONFIG_REPO
- python $CHECKOUT_REF_SCRIPT ci-test-runner-configs ci-test-runner-configs
- cd ci-test-runner-configs
# clone test bench
- git clone $TEST_SCRIPT_REPOSITORY
- python $CHECKOUT_REF_SCRIPT auto_test_script auto_test_script
- cd auto_test_script
- ./tools/ci/retry_failed.sh git clone ${CI_AUTO_TEST_SCRIPT_REPO_URL} -b empty_branch
- ./tools/ci/retry_failed.sh git -C auto_test_script checkout -f ${CI_AUTO_TEST_SCRIPT_REPO_BRANCH}
- python $CHECKOUT_REF_SCRIPT auto_test_script "$CI_PROJECT_DIR/auto_test_script/TestCaseFiles"
# prepare nvs bins
- ./Tools/prepare_nvs_bin.sh
- cd auto_test_script
- ./tools/prepare_nvs_bin.sh
# run test
- python CIRunner.py -l "$LOG_PATH/$CI_JOB_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH -m $MODULE_UPDATE_FILE
- python ${CI_RUNNER_SCRIPT} -l "$LOG_PATH/$JOG_FULL_NAME" -c $CONFIG_FILE -e $LOCAL_ENV_CONFIG_PATH -t $TEST_CASE_FILE_PATH
example_test_001_01:
<<: *example_test_template
@@ -1418,7 +1443,7 @@ UT_004_10:
tags:
- ESP32_IDF
- UT_T1_1
- psram
- psram
UT_004_11:
<<: *unit_test_template
@@ -1678,302 +1703,124 @@ UT_601_01:
- ESP32_IDF
- UT_T1_1
IT_001_01:
IT_001:
<<: *test_template
parallel: 3
tags:
- ESP32_IDF
- SSC_T1_4
IT_001_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_4
IT_001_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_4
IT_002_01:
IT_002:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_2
IT_003_01:
IT_003:
<<: *test_template
parallel: 14
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_04:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_05:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_06:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_07:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_08:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_09:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_10:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_11:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_12:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_003_13:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_5
IT_004_01:
IT_004:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_APC
IT_005_01:
IT_005:
<<: *test_template
parallel: 2
tags:
- ESP32_IDF
- SSC_T1_5
IT_005_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_5
IT_006_01:
IT_006:
<<: *test_template
parallel: 12
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_04:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_05:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_06:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_006_07:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_6
IT_007_01:
IT_007:
<<: *test_template
parallel: 3
tags:
- ESP32_IDF
- SSC_T1_7
IT_007_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_7
IT_007_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_7
IT_008_01:
IT_008:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_8
IT_009_01:
IT_009:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_3
IT_010_01:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T5_1
IT_010_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T5_1
IT_010_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T5_1
IT_010_04:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T5_1
IT_011_01:
IT_011:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_MESH1
IT_011_02:
IT_012:
<<: *test_template
parallel: 2
tags:
- ESP32_IDF
- SSC_T2_MESH1
IT_011_03:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_MESH1
IT_011_04:
IT_013:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T3_MESH1
IT_011_05:
IT_014:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T6_MESH1
IT_011_06:
IT_015:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T12_MESH1
IT_011_07:
IT_016:
<<: *test_template
allow_failure: true
tags:
- ESP32_IDF
- SSC_T50_MESH1
IT_011_08:
IT_017:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_MESH2
IT_012_01:
IT_018:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_9
IT_012_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T1_9
IT_013_01:
IT_019:
<<: *test_template
parallel: 2
tags:
- ESP32_IDF
- SSC_T2_2
IT_013_02:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_2
IT_014_01:
IT_020:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_3
IT_015_01:
<<: *test_template
tags:
- ESP32_IDF
- SSC_T2_4
+15
View File
@@ -89,6 +89,21 @@ config BTDM_CONTROLLER_AUTO_LATENCY_EFF
default BTDM_CONTROLLER_AUTO_LATENCY if BTDM_CONTROLLER_MODE_BTDM
default n
config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT
bool "Legacy Authentication Vendor Specific Event Enable"
depends on BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default y
help
To protect from BIAS attack during Legacy authentication,
Legacy authentication Vendor specific event should be enabled
config BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
bool
default BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT if BTDM_CONTROLLER_MODE_BR_EDR_ONLY || BTDM_CONTROLLER_MODE_BTDM
default 0
config BTDM_CONTROLLER_BLE_MAX_CONN_EFF
int
default BTDM_CONTROLLER_BLE_MAX_CONN if BTDM_CONTROLLER_MODE_BLE_ONLY || BTDM_CONTROLLER_MODE_BTDM
+7 -3
View File
@@ -61,7 +61,7 @@ static void bta_dm_sdp_callback (UINT16 sdp_status);
#if (SMP_INCLUDED == TRUE)
static UINT8 bta_dm_authorize_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, UINT8 *service_name, UINT8 service_id, BOOLEAN is_originator);
static UINT8 bta_dm_pin_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, BOOLEAN min_16_digit);
static UINT8 bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, LINK_KEY key, UINT8 key_type);
static UINT8 bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, LINK_KEY key, UINT8 key_type, BOOLEAN sc_support);
static UINT8 bta_dm_authentication_complete_cback(BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name, int result);
#endif ///SMP_INCLUDED == TRUE
static void bta_dm_local_name_cback(BD_ADDR bd_addr);
@@ -823,7 +823,7 @@ void bta_dm_add_device (tBTA_DM_MSG *p_data)
if (!BTM_SecAddDevice (p_dev->bd_addr, p_dc, p_dev->bd_name, p_dev->features,
trusted_services_mask, p_lc, p_dev->key_type, p_dev->io_cap,
p_dev->pin_length)) {
p_dev->pin_length, p_dev->sc_support)) {
APPL_TRACE_ERROR ("BTA_DM: Error adding device %08x%04x",
(p_dev->bd_addr[0] << 24) + (p_dev->bd_addr[1] << 16) + (p_dev->bd_addr[2] << 8) + p_dev->bd_addr[3],
(p_dev->bd_addr[4] << 8) + p_dev->bd_addr[5]);
@@ -2770,7 +2770,8 @@ static UINT8 bta_dm_pin_cback (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_
**
*******************************************************************************/
static UINT8 bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,
BD_NAME bd_name, LINK_KEY key, UINT8 key_type)
BD_NAME bd_name, LINK_KEY key, UINT8 key_type,
BOOLEAN sc_support)
{
tBTA_DM_SEC sec_event;
tBTA_DM_AUTH_CMPL *p_auth_cmpl;
@@ -2792,6 +2793,7 @@ static UINT8 bta_dm_new_link_key_cback(BD_ADDR bd_addr, DEV_CLASS dev_class,
p_auth_cmpl->key_present = TRUE;
p_auth_cmpl->key_type = key_type;
p_auth_cmpl->success = TRUE;
p_auth_cmpl->sc_support = sc_support;
memcpy(p_auth_cmpl->key, key, LINK_KEY_LEN);
sec_event.auth_cmpl.fail_reason = HCI_SUCCESS;
@@ -3069,6 +3071,7 @@ static void bta_dm_bl_change_cback (tBTM_BL_EVENT_DATA *p_data)
switch (p_msg->event) {
case BTM_BL_CONN_EVT:
p_msg->sc_downgrade = p_data->conn.sc_downgrade;
p_msg->is_new = TRUE;
bdcpy(p_msg->bd_addr, p_data->conn.p_bda);
#if BLE_INCLUDED == TRUE
@@ -3295,6 +3298,7 @@ void bta_dm_acl_change(tBTA_DM_MSG *p_data)
APPL_TRACE_DEBUG("%s info: 0x%x", __func__, bta_dm_cb.device_list.peer_device[i].info);
if (bta_dm_cb.p_sec_cback) {
conn.link_up.sc_downgrade = p_data->acl_change.sc_downgrade;
bta_dm_cb.p_sec_cback(BTA_DM_LINK_UP_EVT, (tBTA_DM_SEC *)&conn);
}
} else {
+4 -2
View File
@@ -556,6 +556,7 @@ void BTA_DmPasskeyReqReply(BOOLEAN accept, BD_ADDR bd_addr, UINT32 passkey)
}
}
#endif ///BT_SSP_INCLUDED == TRUE
#endif ///SMP_INCLUDED == TRUE
/*******************************************************************************
**
** Function BTA_DmAddDevice
@@ -569,7 +570,8 @@ void BTA_DmPasskeyReqReply(BOOLEAN accept, BD_ADDR bd_addr, UINT32 passkey)
*******************************************************************************/
void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class, LINK_KEY link_key,
tBTA_SERVICE_MASK trusted_mask, BOOLEAN is_trusted,
UINT8 key_type, tBTA_IO_CAP io_cap, UINT8 pin_length)
UINT8 key_type, tBTA_IO_CAP io_cap, UINT8 pin_length,
UINT8 sc_support)
{
tBTA_DM_API_ADD_DEVICE *p_msg;
@@ -582,6 +584,7 @@ void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class, LINK_KEY link_key,
p_msg->tm = trusted_mask;
p_msg->is_trusted = is_trusted;
p_msg->io_cap = io_cap;
p_msg->sc_support = sc_support;
if (link_key) {
p_msg->link_key_known = TRUE;
@@ -632,7 +635,6 @@ tBTA_STATUS BTA_DmRemoveDevice(BD_ADDR bd_addr, tBT_TRANSPORT transport)
return BTA_SUCCESS;
}
#endif ///SMP_INCLUDED == TRUE
/*******************************************************************************
**
@@ -375,6 +375,7 @@ typedef struct {
UINT8 new_role;
BD_ADDR bd_addr;
UINT8 hci_status;
BOOLEAN sc_downgrade;
#if BLE_INCLUDED == TRUE
UINT16 handle;
tBT_TRANSPORT transport;
@@ -416,6 +417,7 @@ typedef struct {
BD_NAME bd_name;
UINT8 features[BTA_FEATURE_BYTES_PER_PAGE * (BTA_EXT_FEATURES_PAGE_MAX + 1)];
UINT8 pin_length;
UINT8 sc_support;
} tBTA_DM_API_ADD_DEVICE;
/* data type for BTA_DM_API_REMOVE_ACL_EVT */
@@ -692,16 +692,25 @@ void bta_gatts_indicate_handle (tBTA_GATTS_CB *p_cb, tBTA_GATTS_DATA *p_msg)
p_rcb && p_cb->rcb[p_srvc_cb->rcb_idx].p_cback) {
cb_data.req_data.status = status;
cb_data.req_data.conn_id = p_msg->api_indicate.hdr.layer_specific;
cb_data.req_data.value = NULL;
cb_data.req_data.data_len = 0;
cb_data.req_data.handle = p_msg->api_indicate.attr_id;
cb_data.req_data.value = (uint8_t *)osi_malloc(p_msg->api_indicate.len);
if (cb_data.req_data.value != NULL){
memset(cb_data.req_data.value, 0, p_msg->api_indicate.len);
cb_data.req_data.data_len = p_msg->api_indicate.len;
memcpy(cb_data.req_data.value, p_msg->api_indicate.value, p_msg->api_indicate.len);
}else{
cb_data.req_data.data_len = 0;
APPL_TRACE_ERROR("%s, malloc failed", __func__);
if (p_msg->api_indicate.value && (p_msg->api_indicate.len > 0)) {
cb_data.req_data.value = (uint8_t *) osi_malloc(p_msg->api_indicate.len);
if (cb_data.req_data.value != NULL) {
memset(cb_data.req_data.value, 0, p_msg->api_indicate.len);
cb_data.req_data.data_len = p_msg->api_indicate.len;
memcpy(cb_data.req_data.value, p_msg->api_indicate.value, p_msg->api_indicate.len);
} else {
APPL_TRACE_ERROR("%s, malloc failed", __func__);
}
} else {
if (p_msg->api_indicate.value) {
APPL_TRACE_ERROR("%s, incorrect length", __func__);
} else {
APPL_TRACE_WARNING("%s, NULL value", __func__);
}
}
(*p_rcb->p_cback)(BTA_GATTS_CONF_EVT, &cb_data);
if (cb_data.req_data.value != NULL) {
@@ -769,6 +769,7 @@ typedef struct {
tBLE_ADDR_TYPE addr_type; /* Peer device address type */
tBT_DEVICE_TYPE dev_type;
UINT8 auth_mode;
BOOLEAN sc_support; /* Denotes if peer device supported secure connection while bonding. */
} tBTA_DM_AUTH_CMPL;
@@ -784,6 +785,7 @@ typedef struct {
/* Structure associated with BTA_DM_LINK_UP_EVT */
typedef struct {
BOOLEAN sc_downgrade; /* Security downgrade state. */
BD_ADDR bd_addr; /* BD address peer device. */
#if BLE_INCLUDED == TRUE
tBTA_TRANSPORT link_type;
@@ -1667,7 +1669,8 @@ extern void BTA_DmPasskeyReqReply(BOOLEAN accept, BD_ADDR bd_addr, UINT32 passke
extern void BTA_DmAddDevice(BD_ADDR bd_addr, DEV_CLASS dev_class,
LINK_KEY link_key, tBTA_SERVICE_MASK trusted_mask,
BOOLEAN is_trusted, UINT8 key_type,
tBTA_IO_CAP io_cap, UINT8 pin_length);
tBTA_IO_CAP io_cap, UINT8 pin_length,
UINT8 sc_support);
/*******************************************************************************
**
+26 -3
View File
@@ -299,6 +299,27 @@ static void btc_dm_ble_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl)
}
#endif ///SMP_INCLUDED == TRUE
static void btc_dm_link_up_evt(tBTA_DM_LINK_UP *p_link_up)
{
BD_ADDR bd_addr;
bt_bdaddr_t bt_bdaddr;
if (p_link_up->sc_downgrade == 1) {
memcpy(bt_bdaddr.address, p_link_up->bd_addr, sizeof(BD_ADDR));
if (btc_storage_remove_bonded_device(&bt_bdaddr) == BT_STATUS_SUCCESS) {
memcpy(bd_addr, p_link_up->bd_addr, sizeof(BD_ADDR));
if (BTA_DmRemoveDevice(bd_addr, BT_TRANSPORT_BR_EDR) == BTA_SUCCESS) {
BTC_TRACE_EVENT(" %s() Bonding information removed.", __FUNCTION__);
} else {
BTC_TRACE_ERROR(" %s() BTA_DmRemoveDevice error", __FUNCTION__);
}
} else {
BTC_TRACE_ERROR(" %s() btc_storage_remove_bonded_device error", __FUNCTION__);
}
}
}
static void btc_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl)
{
/* Save link key, if not temporary */
@@ -322,7 +343,7 @@ static void btc_dm_auth_cmpl_evt (tBTA_DM_AUTH_CMPL *p_auth_cmpl)
__FUNCTION__, p_auth_cmpl->key_type);
ret = btc_storage_add_bonded_device(&bd_addr,
p_auth_cmpl->key, p_auth_cmpl->key_type,
16);
16, p_auth_cmpl->sc_support);
BTC_ASSERTC(ret == BT_STATUS_SUCCESS, "storing link key failed", ret);
} else {
BTC_TRACE_DEBUG("%s: Temporary key. Not storing. key_type=0x%x",
@@ -664,12 +685,14 @@ void btc_dm_sec_cb_handler(btc_msg_t *msg)
break;
}
#endif /* BTC_GAP_BT_INCLUDED == TRUE */
case BTA_DM_LINK_UP_EVT:
case BTA_DM_LINK_DOWN_EVT:
case BTA_DM_HW_ERROR_EVT:
BTC_TRACE_DEBUG( "btc_dm_sec_cback : unhandled event (%d)\n", msg->act );
break;
#if (defined(BLE_INCLUDED) && (BLE_INCLUDED == TRUE) && (SMP_INCLUDED == TRUE))
case BTA_DM_LINK_UP_EVT:
btc_dm_link_up_evt(&p_data->link_up);
break;
#if ((BLE_INCLUDED == TRUE) && (SMP_INCLUDED == TRUE))
case BTA_DM_BLE_AUTH_CMPL_EVT: {
rsp_app = true;
ble_msg.act = ESP_GAP_BLE_AUTH_CMPL_EVT;
+13 -3
View File
@@ -37,7 +37,8 @@
bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
LINK_KEY link_key,
uint8_t key_type,
uint8_t pin_length)
uint8_t pin_length,
BOOLEAN sc_support)
{
bdstr_t bdstr;
@@ -48,6 +49,7 @@ bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
int ret = btc_config_set_int(bdstr, BTC_STORAGE_LINK_KEY_TYPE_STR, (int)key_type);
ret &= btc_config_set_int(bdstr, BTC_STORAGE_PIN_LENGTH_STR, (int)pin_length);
ret &= btc_config_set_bin(bdstr, BTC_STORAGE_LINK_KEY_STR, link_key, sizeof(LINK_KEY));
ret &= btc_config_set_bin(bdstr, BTC_STORAGE_SC_SUPPORT, (uint8_t *)&sc_support, sizeof(sc_support));
/* write bonded info immediately */
btc_config_flush();
btc_config_unlock();
@@ -69,6 +71,7 @@ bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
static bt_status_t btc_in_fetch_bonded_devices(int add)
{
BOOLEAN bt_linkkey_file_found = FALSE;
UINT8 sc_support = 0;
btc_config_lock();
for (const btc_config_section_iter_t *iter = btc_config_section_begin(); iter != btc_config_section_end(); iter = btc_config_section_next(iter)) {
@@ -93,9 +96,11 @@ static bt_status_t btc_in_fetch_bonded_devices(int add)
uint2devclass((UINT32)cod, dev_class);
}
btc_config_get_int(name, BTC_STORAGE_PIN_LENGTH_STR, &pin_length);
size = sizeof(sc_support);
btc_config_get_bin(name, BTC_STORAGE_SC_SUPPORT, &sc_support, &size);
#if (SMP_INCLUDED == TRUE)
BTA_DmAddDevice(bd_addr.address, dev_class, link_key, 0, 0,
(UINT8)linkkey_type, 0, pin_length);
(UINT8)linkkey_type, 0, pin_length, (UINT8)sc_support);
#endif ///SMP_INCLUDED == TRUE
}
bt_linkkey_file_found = TRUE;
@@ -160,6 +165,9 @@ bt_status_t btc_storage_remove_bonded_device(bt_bdaddr_t *remote_bd_addr)
if (btc_config_exist(bdstr, BTC_STORAGE_LINK_KEY_STR)) {
ret &= btc_config_remove(bdstr, BTC_STORAGE_LINK_KEY_STR);
}
if (btc_config_exist(bdstr, BTC_STORAGE_SC_SUPPORT)) {
ret &= btc_config_remove(bdstr, BTC_STORAGE_SC_SUPPORT);
}
/* write bonded info immediately */
btc_config_flush();
btc_config_unlock();
@@ -187,6 +195,7 @@ int btc_storage_get_num_bt_bond_devices(void)
if (string_is_bdaddr(name) &&
btc_config_exist(name, BTC_STORAGE_LINK_KEY_TYPE_STR) &&
btc_config_exist(name, BTC_STORAGE_PIN_LENGTH_STR) &&
btc_config_exist(name, BTC_STORAGE_SC_SUPPORT) &&
btc_config_exist(name, BTC_STORAGE_LINK_KEY_STR)) {
num_dev++;
}
@@ -223,6 +232,7 @@ bt_status_t btc_storage_get_bonded_bt_devices_list(bt_bdaddr_t *bond_dev, int de
if (string_is_bdaddr(name) &&
btc_config_exist(name, BTC_STORAGE_LINK_KEY_TYPE_STR) &&
btc_config_exist(name, BTC_STORAGE_PIN_LENGTH_STR) &&
btc_config_exist(name, BTC_STORAGE_SC_SUPPORT) &&
btc_config_exist(name, BTC_STORAGE_LINK_KEY_STR)) {
string_to_bdaddr(name, &bd_addr);
memcpy(bond_dev, &bd_addr, sizeof(bt_bdaddr_t));
@@ -232,4 +242,4 @@ bt_status_t btc_storage_get_bonded_bt_devices_list(bt_bdaddr_t *bond_dev, int de
btc_config_unlock();
return BT_STATUS_SUCCESS;
}
}
@@ -25,6 +25,7 @@
#define BTC_STORAGE_LINK_KEY_STR "LinkKey" /* same as the ble */
#define BTC_STORAGE_LINK_KEY_TYPE_STR "LinkKeyType"
#define BTC_STORAGE_PIN_LENGTH_STR "PinLength"
#define BTC_STORAGE_SC_SUPPORT "SCSupport"
/*******************************************************************************
**
@@ -40,7 +41,8 @@
bt_status_t btc_storage_add_bonded_device(bt_bdaddr_t *remote_bd_addr,
LINK_KEY link_key,
uint8_t key_type,
uint8_t pin_length);
uint8_t pin_length,
BOOLEAN sc_support);
/*******************************************************************************
**
@@ -283,6 +283,7 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
blufi_env.conn_id = p_data->conn.conn_id;
blufi_env.is_connected = true;
blufi_env.recv_seq = blufi_env.send_seq = 0;
msg.sig = BTC_SIG_API_CB;
msg.pid = BTC_PID_BLUFI;
@@ -305,7 +306,6 @@ static void blufi_profile_cb(tBTA_GATTS_EVT event, tBTA_GATTS *p_data)
memcpy(blufi_env.remote_bda, p_data->conn.remote_bda, sizeof(esp_bd_addr_t));
blufi_env.conn_id = p_data->conn.conn_id;
blufi_env.is_connected = false;
blufi_env.recv_seq = blufi_env.send_seq = 0;
blufi_env.sec_mode = 0x0;
@@ -463,6 +463,11 @@ void btc_blufi_send_encap(uint8_t type, uint8_t *data, int total_data_len)
uint16_t checksum;
int ret;
if (blufi_env.is_connected == false) {
BTC_TRACE_ERROR("blufi connection has been disconnected \n");
return;
}
while (remain_len > 0) {
if (remain_len > blufi_env.frag_size) {
hdr = osi_malloc(sizeof(struct blufi_hdr) + 2 + blufi_env.frag_size + 2);
@@ -81,72 +81,105 @@ void btc_gatts_arg_deep_copy(btc_msg_t *msg, void *p_dest, void *p_src)
switch (msg->act) {
case BTC_GATTS_ACT_SEND_INDICATE: {
dst->send_ind.value = (uint8_t *)osi_malloc(src->send_ind.value_len);
if (dst->send_ind.value) {
memcpy(dst->send_ind.value, src->send_ind.value, src->send_ind.value_len);
if (src->send_ind.value && (src->send_ind.value_len > 0)) {
dst->send_ind.value = (uint8_t *) osi_malloc(src->send_ind.value_len);
if (dst->send_ind.value) {
memcpy(dst->send_ind.value, src->send_ind.value, src->send_ind.value_len);
} else {
BTC_TRACE_ERROR("%s %d no mem\n", __func__, msg->act);
}
} else {
BTC_TRACE_ERROR("%s %d no mem\n", __func__, msg->act);
dst->send_ind.value = NULL;
if (src->send_ind.value) {
BTC_TRACE_ERROR("%s %d, invalid length", __func__, msg->act);
} else {
BTC_TRACE_WARNING("%s %d, NULL value", __func__, msg->act);
}
}
break;
}
case BTC_GATTS_ACT_SEND_RESPONSE: {
if (src->send_rsp.rsp) {
dst->send_rsp.rsp = (esp_gatt_rsp_t *)osi_malloc(sizeof(esp_gatt_rsp_t));
dst->send_rsp.rsp = (esp_gatt_rsp_t *) osi_malloc(sizeof(esp_gatt_rsp_t));
if (dst->send_rsp.rsp) {
memcpy(dst->send_rsp.rsp, src->send_rsp.rsp, sizeof(esp_gatt_rsp_t));
} else {
BTC_TRACE_ERROR("%s %d no mem\n", __func__, msg->act);
}
} else {
BTC_TRACE_WARNING("%s %d, NULL response", __func__, msg->act);
}
break;
}
case BTC_GATTS_ACT_ADD_CHAR:{
if (src->add_char.char_val.attr_value != NULL){
dst->add_char.char_val.attr_value = (uint8_t *)osi_malloc(src->add_char.char_val.attr_len);
if(dst->add_char.char_val.attr_value != NULL){
case BTC_GATTS_ACT_ADD_CHAR: {
if (src->add_char.char_val.attr_value && (src->add_char.char_val.attr_len > 0)) {
dst->add_char.char_val.attr_value = (uint8_t *) osi_malloc(src->add_char.char_val.attr_len);
if (dst->add_char.char_val.attr_value) {
memcpy(dst->add_char.char_val.attr_value, src->add_char.char_val.attr_value,
src->add_char.char_val.attr_len);
}else{
} else {
BTC_TRACE_ERROR("%s %d no mem\n", __func__, msg->act);
}
} else {
dst->add_char.char_val.attr_value = NULL;
if (src->add_char.char_val.attr_value) {
BTC_TRACE_ERROR("%s %d, invalid length", __func__, msg->act);
} else {
BTC_TRACE_WARNING("%s %d, NULL value", __func__, msg->act);
}
}
break;
}
case BTC_GATTS_ACT_ADD_CHAR_DESCR:{
if(src->add_descr.descr_val.attr_value != NULL){
dst->add_descr.descr_val.attr_value = (uint8_t *)osi_malloc(src->add_descr.descr_val.attr_len);
if(dst->add_descr.descr_val.attr_value != NULL){
case BTC_GATTS_ACT_ADD_CHAR_DESCR: {
if (src->add_descr.descr_val.attr_value && (src->add_descr.descr_val.attr_len > 0)) {
dst->add_descr.descr_val.attr_value = (uint8_t *) osi_malloc(src->add_descr.descr_val.attr_len);
if (dst->add_descr.descr_val.attr_value) {
memcpy(dst->add_descr.descr_val.attr_value, src->add_descr.descr_val.attr_value,
src->add_descr.descr_val.attr_len);
}else{
} else {
BTC_TRACE_ERROR("%s %d no mem\n", __func__, msg->act);
}
}
break;
}
case BTC_GATTS_ACT_CREATE_ATTR_TAB:{
uint8_t num_attr = src->create_attr_tab.max_nb_attr;
if(src->create_attr_tab.gatts_attr_db != NULL){
dst->create_attr_tab.gatts_attr_db = (esp_gatts_attr_db_t *)osi_malloc(sizeof(esp_gatts_attr_db_t)*num_attr);
if(dst->create_attr_tab.gatts_attr_db != NULL){
memcpy(dst->create_attr_tab.gatts_attr_db, src->create_attr_tab.gatts_attr_db,
sizeof(esp_gatts_attr_db_t)*num_attr);
}else{
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
} else {
dst->add_descr.descr_val.attr_value = NULL;
if (src->add_descr.descr_val.attr_value) {
BTC_TRACE_ERROR("%s %d, invalid length", __func__, msg->act);
} else {
BTC_TRACE_WARNING("%s %d, NULL value", __func__, msg->act);
}
}
break;
}
case BTC_GATTS_ACT_SET_ATTR_VALUE:{
uint16_t len = src->set_attr_val.length;
if(src->set_attr_val.value){
dst->set_attr_val.value = (uint8_t *)osi_malloc(len);
if(dst->set_attr_val.value != NULL){
memcpy(dst->set_attr_val.value, src->set_attr_val.value, len);
}else{
case BTC_GATTS_ACT_CREATE_ATTR_TAB: {
uint8_t num_attr = src->create_attr_tab.max_nb_attr;
if (src->create_attr_tab.gatts_attr_db && (num_attr > 0)) {
dst->create_attr_tab.gatts_attr_db = (esp_gatts_attr_db_t *) osi_malloc(sizeof(esp_gatts_attr_db_t) * num_attr);
if (dst->create_attr_tab.gatts_attr_db) {
memcpy(dst->create_attr_tab.gatts_attr_db, src->create_attr_tab.gatts_attr_db,
sizeof(esp_gatts_attr_db_t) * num_attr);
} else {
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
}
} else {
BTC_TRACE_ERROR("%s %d, NULL data", __func__, msg->act);
}
break;
}
case BTC_GATTS_ACT_SET_ATTR_VALUE: {
if (src->set_attr_val.value && (src->set_attr_val.length > 0)) {
dst->set_attr_val.value = (uint8_t *) osi_malloc(src->set_attr_val.length);
if (dst->set_attr_val.value) {
memcpy(dst->set_attr_val.value, src->set_attr_val.value, src->set_attr_val.length);
} else {
BTC_TRACE_ERROR("%s %d no mem\n",__func__, msg->act);
}
} else {
dst->set_attr_val.value = NULL;
if (src->set_attr_val.value) {
BTC_TRACE_ERROR("%s %d, invalid length", __func__, msg->act);
} else {
BTC_TRACE_WARNING("%s %d, NULL value", __func__, msg->act);
}
}
break;
}
+47 -21
View File
@@ -231,7 +231,7 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
UINT8 xx;
BTM_TRACE_DEBUG ("btm_acl_created hci_handle=%d link_role=%d transport=%d\n",
hci_handle, link_role, transport);
hci_handle, link_role, transport);
/* Ensure we don't have duplicates */
p = btm_bda_to_acl(bda, transport);
if (p != (tACL_CONN *)NULL) {
@@ -241,7 +241,7 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
p->transport = transport;
#endif
BTM_TRACE_DEBUG ("Duplicate btm_acl_created: RemBdAddr: %02x%02x%02x%02x%02x%02x\n",
bda[0], bda[1], bda[2], bda[3], bda[4], bda[5]);
bda[0], bda[1], bda[2], bda[3], bda[4], bda[5]);
BTM_SetLinkPolicy(p->remote_addr, &btm_cb.btm_def_link_policy);
return;
}
@@ -269,13 +269,16 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
p->conn_addr_type = BLE_ADDR_PUBLIC;
memcpy(p->conn_addr, &controller_get_interface()->get_address()->address, BD_ADDR_LEN);
BTM_TRACE_DEBUG ("conn_addr: RemBdAddr: %02x%02x%02x%02x%02x%02x\n",
p->conn_addr[0], p->conn_addr[1], p->conn_addr[2], p->conn_addr[3], p->conn_addr[4], p->conn_addr[5]);
p->conn_addr[0], p->conn_addr[1], p->conn_addr[2], p->conn_addr[3], p->conn_addr[4], p->conn_addr[5]);
#endif
#endif
p->switch_role_state = BTM_ACL_SWKEY_STATE_IDLE;
btm_pm_sm_alloc(xx);
#if (CLASSIC_BT_INCLUDED == TRUE)
btm_sec_update_legacy_auth_state(p, BTM_ACL_LEGACY_AUTH_NONE);
#endif
if (dc) {
memcpy (p->remote_dc, dc, DEV_CLASS_LEN);
@@ -299,28 +302,34 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
#endif
if (p_dev_rec && !(transport == BT_TRANSPORT_LE)) {
/* If remote features already known, copy them and continue connection setup */
if ((p_dev_rec->num_read_pages) &&
(p_dev_rec->num_read_pages <= (HCI_EXT_FEATURES_PAGE_MAX + 1))) {
memcpy (p->peer_lmp_features, p_dev_rec->features,
(HCI_FEATURE_BYTES_PER_PAGE * p_dev_rec->num_read_pages));
p->num_read_pages = p_dev_rec->num_read_pages;
if (!p_dev_rec->remote_secure_connection_previous_state) {
/* If remote features already known, copy them and continue connection setup */
if ((p_dev_rec->num_read_pages) &&
(p_dev_rec->num_read_pages <= (HCI_EXT_FEATURES_PAGE_MAX + 1))) {
memcpy (p->peer_lmp_features, p_dev_rec->features,
(HCI_FEATURE_BYTES_PER_PAGE * p_dev_rec->num_read_pages));
p->num_read_pages = p_dev_rec->num_read_pages;
#if (CLASSIC_BT_INCLUDED == TRUE)
const UINT8 req_pend = (p_dev_rec->sm4 & BTM_SM4_REQ_PEND);
const UINT8 req_pend = (p_dev_rec->sm4 & BTM_SM4_REQ_PEND);
#endif ///CLASSIC_BT_INCLUDED == TRUE
/* Store the Peer Security Capabilites (in SM4 and rmt_sec_caps) */
/* Store the Peer Security Capabilites (in SM4 and rmt_sec_caps) */
#if (SMP_INCLUDED == TRUE)
btm_sec_set_peer_sec_caps(p, p_dev_rec);
btm_sec_set_peer_sec_caps(p, p_dev_rec);
#endif ///SMP_INCLUDED == TRUE
#if (CLASSIC_BT_INCLUDED == TRUE)
BTM_TRACE_API("%s: pend:%d\n", __FUNCTION__, req_pend);
if (req_pend) {
/* Request for remaining Security Features (if any) */
l2cu_resubmit_pending_sec_req (p_dev_rec->bd_addr);
}
BTM_TRACE_API("%s: pend:%d\n", __FUNCTION__, req_pend);
if (req_pend) {
/* Request for remaining Security Features (if any) */
l2cu_resubmit_pending_sec_req (p_dev_rec->bd_addr);
}
#endif ///CLASSIC_BT_INCLUDED == TRUE
btm_establish_continue (p);
return;
btm_establish_continue (p);
return;
}
} else {
/* If remote features indicated secure connection (SC) mode, check the remote feautres again*/
/* this is to prevent from BIAS attack where attacker can downgrade SC mode*/
btm_read_remote_features (p->hci_handle);
}
}
@@ -329,13 +338,13 @@ void btm_acl_created (BD_ADDR bda, DEV_CLASS dc, BD_NAME bdn,
if (p_dev_rec && transport == BT_TRANSPORT_LE) {
#if BLE_PRIVACY_SPT == TRUE
btm_ble_get_acl_remote_addr (p_dev_rec, p->active_remote_addr,
&p->active_remote_addr_type);
&p->active_remote_addr_type);
#endif
if (link_role == HCI_ROLE_MASTER) {
btsnd_hcic_ble_read_remote_feat(p->hci_handle);
} else if (HCI_LE_SLAVE_INIT_FEAT_EXC_SUPPORTED(controller_get_interface()->get_features_ble()->as_array)
&& link_role == HCI_ROLE_SLAVE) {
&& link_role == HCI_ROLE_SLAVE) {
btsnd_hcic_rmt_ver_req (p->hci_handle);
} else {
btm_establish_continue(p);
@@ -791,6 +800,22 @@ void btm_acl_encrypt_change (UINT16 handle, UINT8 status, UINT8 encr_enable)
}
#endif
}
#if (CLASSIC_BT_INCLUDED == TRUE)
/* If authentication is done through legacy authentication and esp32 has
* not authenticated peer deivce yet, do not proceed for encrytion and
* first authenticate it. */
else if ((BTM_BothEndsSupportSecureConnections(p->remote_addr) == 0) &&
((p->legacy_auth_state & BTM_ACL_LEGACY_AUTH_SELF) == 0)) {
if ((p_dev_rec = btm_find_dev (p->remote_addr)) != NULL) {
if (btm_sec_legacy_authentication_mutual(p_dev_rec)) {
btm_sec_update_legacy_auth_state(btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR), BTM_ACL_LEGACY_AUTH_SELF);
} else {
BTM_TRACE_ERROR("%s failed, Resources not available for Authentication procedure", __FUNCTION__);
}
}
}
#endif
}
/*******************************************************************************
**
@@ -1212,6 +1237,7 @@ void btm_establish_continue (tACL_CONN *p_acl_cb)
evt_data.conn.p_bdn = p_acl_cb->remote_name;
evt_data.conn.p_dc = p_acl_cb->remote_dc;
evt_data.conn.p_features = p_acl_cb->peer_lmp_features[HCI_EXT_FEATURES_PAGE_0];
evt_data.conn.sc_downgrade = p_acl_cb->sc_downgrade;
#if BLE_INCLUDED == TRUE
evt_data.conn.handle = p_acl_cb->hci_handle;
evt_data.conn.transport = p_acl_cb->transport;
+2 -1
View File
@@ -60,7 +60,7 @@ static tBTM_SEC_DEV_REC *btm_find_oldest_dev (void);
BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name,
UINT8 *features, UINT32 trusted_mask[],
LINK_KEY link_key, UINT8 key_type, tBTM_IO_CAP io_cap,
UINT8 pin_length)
UINT8 pin_length, UINT8 sc_support)
{
#if (SMP_INCLUDED == TRUE)
tBTM_SEC_DEV_REC *p_dev_rec;
@@ -98,6 +98,7 @@ BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class, BD_NAME bd_name,
p_dev_rec->bond_type = BOND_TYPE_UNKNOWN; /* Default value */
p_dev_rec->timestamp = btm_cb.dev_rec_count++;
p_dev_rec->remote_secure_connection_previous_state = sc_support;
if (dev_class) {
memcpy (p_dev_rec->dev_class, dev_class, DEV_CLASS_LEN);
+12 -1
View File
@@ -787,13 +787,24 @@ void btm_vendor_specific_evt (UINT8 *p, UINT8 evt_len)
{
UINT8 i;
BTM_TRACE_DEBUG ("BTM Event: Vendor Specific event from controller");
#if (CLASSIC_BT_INCLUDED == TRUE)
UINT8 sub_event;
UINT8 *p_evt = p;
STREAM_TO_UINT8(sub_event, p_evt);
/* Check in subevent if authentication is through Legacy Authentication. */
if (sub_event == ESP_VS_REM_LEGACY_AUTH_CMP) {
UINT16 hci_handle;
STREAM_TO_UINT16(hci_handle, p_evt);
btm_sec_handle_remote_legacy_auth_cmp(hci_handle);
}
#endif /// (CLASSIC_BT_INCLUDED == TRUE)
for (i = 0; i < BTM_MAX_VSE_CALLBACKS; i++) {
if (btm_cb.devcb.p_vend_spec_cb[i]) {
(*btm_cb.devcb.p_vend_spec_cb[i])(evt_len, p);
}
}
BTM_TRACE_DEBUG ("BTM Event: Vendor Specific event from controller");
}
+106 -6
View File
@@ -3917,10 +3917,11 @@ void btm_sec_auth_complete (UINT16 handle, UINT8 status)
(BTM_SEC_AUTHENTICATED | BTM_SEC_ENCRYPTED))) {
status = HCI_SUCCESS;
}
/* Currently we do not notify user if it is a keyboard which connects */
/* User probably Disabled the keyboard while it was asleap. Let her try */
/* User probably Disabled the keyboard while it was asleep. Let her try */
if (btm_cb.api.p_auth_complete_callback) {
/* report the suthentication status */
/* report the authentication status */
if (old_state != BTM_PAIR_STATE_IDLE) {
(*btm_cb.api.p_auth_complete_callback) (p_dev_rec->bd_addr,
p_dev_rec->dev_class,
@@ -3930,6 +3931,9 @@ void btm_sec_auth_complete (UINT16 handle, UINT8 status)
p_dev_rec->sec_state = BTM_SEC_STATE_IDLE;
#if (CLASSIC_BT_INCLUDED == TRUE)
btm_sec_update_legacy_auth_state(btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR), BTM_ACL_LEGACY_AUTH_SELF);
#endif
/* If this is a bonding procedure can disconnect the link now */
if (are_bonding) {
p_dev_rec->security_required &= ~BTM_SEC_OUT_AUTHENTICATE;
@@ -4657,12 +4661,24 @@ void btm_sec_link_key_notification (UINT8 *p_bda, UINT8 *p_link_key, UINT8 key_t
/* If connection was made to do bonding restore link security if changed */
btm_restore_mode();
/* Store the previous state of secure connection as current state. Since
* this is the first encounter with the remote device, whatever the remote
* device's SC state is, it cannot lower the SC level from this. */
p_dev_rec->remote_secure_connection_previous_state = p_dev_rec->remote_supports_secure_connections;
if (p_dev_rec->remote_supports_secure_connections) {
BTM_TRACE_EVENT ("Remote device supports Secure Connection");
} else {
BTM_TRACE_EVENT ("Remote device does not support Secure Connection");
}
if (key_type != BTM_LKEY_TYPE_CHANGED_COMB) {
p_dev_rec->link_key_type = key_type;
}
p_dev_rec->sec_flags |= BTM_SEC_LINK_KEY_KNOWN;
#if (CLASSIC_BT_INCLUDED == TRUE)
btm_sec_update_legacy_auth_state(btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR), BTM_ACL_LEGACY_AUTH_NONE);
#endif
/*
* Until this point in time, we do not know if MITM was enabled, hence we
* add the extended security flag here.
@@ -4695,7 +4711,8 @@ void btm_sec_link_key_notification (UINT8 *p_bda, UINT8 *p_link_key, UINT8 key_t
__FUNCTION__, p_dev_rec->link_key_type);
(*btm_cb.api.p_link_key_callback) (p_bda, p_dev_rec->dev_class,
p_dev_rec->sec_bd_name,
p_link_key, p_dev_rec->link_key_type);
p_link_key, p_dev_rec->link_key_type,
p_dev_rec->remote_supports_secure_connections);
}
} else {
if ((p_dev_rec->link_key_type == BTM_LKEY_TYPE_UNAUTH_COMB_P_256) ||
@@ -4752,7 +4769,8 @@ void btm_sec_link_key_notification (UINT8 *p_bda, UINT8 *p_link_key, UINT8 key_t
} else {
(*btm_cb.api.p_link_key_callback) (p_bda, p_dev_rec->dev_class,
p_dev_rec->sec_bd_name,
p_link_key, p_dev_rec->link_key_type);
p_link_key, p_dev_rec->link_key_type,
p_dev_rec->remote_supports_secure_connections);
}
}
}
@@ -5543,7 +5561,9 @@ static void btm_send_link_key_notif (tBTM_SEC_DEV_REC *p_dev_rec)
if (btm_cb.api.p_link_key_callback) {
(*btm_cb.api.p_link_key_callback) (p_dev_rec->bd_addr, p_dev_rec->dev_class,
p_dev_rec->sec_bd_name, p_dev_rec->link_key,
p_dev_rec->link_key_type);
p_dev_rec->link_key_type,
p_dev_rec->remote_supports_secure_connections);
}
}
#endif ///SMP_INCLUDED == TRUE
@@ -5894,6 +5914,29 @@ void btm_sec_set_peer_sec_caps(tACL_CONN *p_acl_cb, tBTM_SEC_DEV_REC *p_dev_rec)
BTM_TRACE_API("%s: sm4: 0x%02x, rmt_support_for_secure_connections %d\n", __FUNCTION__,
p_dev_rec->sm4, p_dev_rec->remote_supports_secure_connections);
/* Store previous state of remote device to check if peer device downgraded
* it's secure connection state. */
#if (CLASSIC_BT_INCLUDED == TRUE)
if (p_dev_rec->remote_supports_secure_connections >= p_dev_rec->remote_secure_connection_previous_state) {
p_dev_rec->remote_secure_connection_previous_state = p_dev_rec->remote_supports_secure_connections;
} else {
BTM_TRACE_ERROR("Remote Device downgraded security from SC, deleting Link Key");
/* Mark in ACL packet that secure connection is downgraded. */
p_acl_cb->sc_downgrade = 1;
p_dev_rec->remote_secure_connection_previous_state = 0;
/* As peer device downgraded it's security, peer device is a suspicious
* device. Hence remove pairing information by removing link key
* information. */
memset(p_dev_rec->link_key, 0, LINK_KEY_LEN);
p_dev_rec->sec_flags &= ~(BTM_SEC_AUTHORIZED | BTM_SEC_AUTHENTICATED
| BTM_SEC_ENCRYPTED | BTM_SEC_NAME_KNOWN
| BTM_SEC_LINK_KEY_KNOWN | BTM_SEC_LINK_KEY_AUTHED
| BTM_SEC_ROLE_SWITCHED | BTM_SEC_16_DIGIT_PIN_AUTHED);
return;
}
#endif
if (p_dev_rec->remote_features_needed) {
BTM_TRACE_EVENT("%s: Now device in SC Only mode, waiting for peer remote features!\n",
@@ -6156,5 +6199,62 @@ static BOOLEAN btm_sec_is_master(tBTM_SEC_DEV_REC *p_dev_rec)
tACL_CONN *p = btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR);
return (p && (p->link_role == BTM_ROLE_MASTER));
}
#endif ///SMP_INCLUDED == TRUE
#if (CLASSIC_BT_INCLUDED == TRUE)
/*******************************************************************************
**
** Function btm_sec_legacy_authentication_mutual
**
** Description This function is called when legacy authentication is used
** and only remote device has completed the authentication
**
** Returns TRUE if aunthentication command sent successfully
**
*******************************************************************************/
BOOLEAN btm_sec_legacy_authentication_mutual (tBTM_SEC_DEV_REC *p_dev_rec)
{
return (btm_sec_start_authentication (p_dev_rec));
}
/*******************************************************************************
**
** Function btm_sec_update_legacy_auth_state
**
** Description This function updates the legacy authentication state
**
** Returns void
**
*******************************************************************************/
void btm_sec_update_legacy_auth_state(tACL_CONN *p_acl_cb, UINT8 legacy_auth_state)
{
if (p_acl_cb) {
tBTM_SEC_DEV_REC *p_dev_rec = btm_find_dev_by_handle (p_acl_cb->hci_handle);
if (p_dev_rec) {
if ((BTM_BothEndsSupportSecureConnections(p_dev_rec->bd_addr) == 0) &&
(legacy_auth_state != BTM_ACL_LEGACY_AUTH_NONE)) {
p_acl_cb->legacy_auth_state |= legacy_auth_state;
} else {
p_acl_cb->legacy_auth_state = BTM_ACL_LEGACY_AUTH_NONE;
}
}
}
}
/*******************************************************************************
**
** Function btm_sec_handle_remote_legacy_auth_cmp
**
** Description This function updates the legacy authneticaiton state
** to indicate that remote device has completed the authentication
**
** Returns void
**
*******************************************************************************/
void btm_sec_handle_remote_legacy_auth_cmp(UINT16 handle)
{
tBTM_SEC_DEV_REC *p_dev_rec = btm_find_dev_by_handle (handle);
tACL_CONN *p_acl_cb = btm_bda_to_acl(p_dev_rec->bd_addr, BT_TRANSPORT_BR_EDR);
btm_sec_update_legacy_auth_state(p_acl_cb, BTM_ACL_LEGACY_AUTH_REMOTE);
}
#endif /// (CLASSIC_BT_INCLUDED == TRUE)
#endif ///SMP_INCLUDED == TRUE
@@ -40,6 +40,8 @@
#endif
#endif
#define ESP_VS_REM_LEGACY_AUTH_CMP 0x03
#if BTM_MAX_LOC_BD_NAME_LEN > 0
typedef char tBTM_LOC_BD_NAME[BTM_MAX_LOC_BD_NAME_LEN + 1];
#endif
@@ -92,6 +94,13 @@ UINT8 lmp_version;
BOOLEAN in_use;
UINT8 link_role;
BOOLEAN link_up_issued; /* True if busy_level link up has been issued */
BOOLEAN sc_downgrade; /* Store if security is downgraded or not. */
#define BTM_ACL_LEGACY_AUTH_NONE (0)
#define BTM_ACL_LEGACY_AUTH_SELF (1<<0)
#define BTM_ACL_LEGACY_AUTH_REMOTE (1<<1)
#define BTM_ACL_LEGACY_AUTH_MUTUAL (1<<2)
UINT8 legacy_auth_state;
#define BTM_ACL_SWKEY_STATE_IDLE 0
#define BTM_ACL_SWKEY_STATE_MODE_CHANGE 1
@@ -592,6 +601,8 @@ typedef struct {
/* "Secure Connections Only" mode and it receives */
/* HCI_IO_CAPABILITY_REQUEST_EVT from the peer before */
/* it knows peer's support for Secure Connections */
BOOLEAN remote_secure_connection_previous_state; /* Stores if peer ever supported
secure connection. This will be helpful to know when peer device downgrades it's security. */
UINT16 ble_hci_handle; /* use in DUMO connection */
UINT8 enc_key_size; /* current link encryption key size */
@@ -1138,6 +1149,18 @@ void btm_acl_paging (BT_HDR *p, BD_ADDR dest);
UINT8 btm_sec_clr_service_by_psm (UINT16 psm);
void btm_sec_clr_temp_auth_service (BD_ADDR bda);
void btm_lock_init(void);
void btm_sem_init(void);
void btm_sem_free(void);
void btm_lock_free(void);
void btm_sec_handle_remote_legacy_auth_cmp(UINT16 handle);
void btm_sec_update_legacy_auth_state(tACL_CONN *p_acl_cb, UINT8 legacy_auth_state);
BOOLEAN btm_sec_legacy_authentication_mutual (tBTM_SEC_DEV_REC *p_dev_rec);
/*
#ifdef __cplusplus
}
@@ -825,14 +825,15 @@ typedef UINT16 tBTM_BL_EVENT_MASK;
/* the data type associated with BTM_BL_CONN_EVT */
typedef struct {
tBTM_BL_EVENT event; /* The event reported. */
BD_ADDR_PTR p_bda; /* The address of the newly connected device */
DEV_CLASS_PTR p_dc; /* The device class */
BD_NAME_PTR p_bdn; /* The device name */
UINT8 *p_features; /* pointer to the remote device's features page[0] (supported features page) */
tBTM_BL_EVENT event; /* The event reported. */
BD_ADDR_PTR p_bda; /* The address of the newly connected device */
DEV_CLASS_PTR p_dc; /* The device class */
BD_NAME_PTR p_bdn; /* The device name */
UINT8 *p_features; /* pointer to the remote device's features page[0] (supported features page) */
BOOLEAN sc_downgrade; /* Secure connection downgrade state. */
#if BLE_INCLUDED == TRUE
UINT16 handle; /* connection handle */
tBT_TRANSPORT transport; /* link is LE or not */
UINT16 handle; /* connection handle */
tBT_TRANSPORT transport; /* link is LE or not */
#endif
} tBTM_BL_CONN_DATA;
@@ -1352,7 +1353,7 @@ typedef UINT8 (tBTM_PIN_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
*/
typedef UINT8 (tBTM_LINK_KEY_CALLBACK) (BD_ADDR bd_addr, DEV_CLASS dev_class,
tBTM_BD_NAME bd_name, UINT8 *key,
UINT8 key_type);
UINT8 key_type, BOOLEAN sc_support);
/* Remote Name Resolved. Parameters are
@@ -3406,7 +3407,8 @@ UINT8 BTM_SecClrService (UINT8 service_id);
BOOLEAN BTM_SecAddDevice (BD_ADDR bd_addr, DEV_CLASS dev_class,
BD_NAME bd_name, UINT8 *features,
UINT32 trusted_mask[], LINK_KEY link_key,
UINT8 key_type, tBTM_IO_CAP io_cap, UINT8 pin_length);
UINT8 key_type, tBTM_IO_CAP io_cap, UINT8 pin_length,
UINT8 sc_support);
/*******************************************************************************
+9 -1
View File
@@ -25,7 +25,7 @@
extern "C" {
#endif
#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20200106
#define ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL 0x20200611
/**
* @brief Bluetooth mode for controller enable/disable
@@ -102,6 +102,12 @@ the adv packet will be discarded until the memory is restored. */
#define BTDM_CONTROLLER_AUTO_LATENCY_EFF false
#endif
#ifdef CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
#define BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF CONFIG_BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF
#else
#define BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF false
#endif
#define BTDM_CONTROLLER_BLE_MAX_CONN_LIMIT 9 //Maximum BLE connection limitation
#define BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_LIMIT 7 //Maximum ACL connection limitation
#define BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_LIMIT 3 //Maximum SCO/eSCO connection limitation
@@ -125,6 +131,7 @@ the adv packet will be discarded until the memory is restored. */
.bt_max_acl_conn = CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_ACL_CONN_EFF, \
.bt_sco_datapath = CONFIG_BTDM_CONTROLLER_BR_EDR_SCO_DATA_PATH_EFF, \
.auto_latency = BTDM_CONTROLLER_AUTO_LATENCY_EFF, \
.bt_legacy_auth_vs_evt = BTDM_CTRL_LEGACY_AUTH_VENDOR_EVT_EFF, \
.bt_max_sync_conn = CONFIG_BTDM_CONTROLLER_BR_EDR_MAX_SYNC_CONN_EFF, \
.magic = ESP_BT_CONTROLLER_CONFIG_MAGIC_VAL, \
};
@@ -157,6 +164,7 @@ typedef struct {
uint8_t bt_max_acl_conn; /*!< BR/EDR maximum ACL connection numbers */
uint8_t bt_sco_datapath; /*!< SCO data path, i.e. HCI or PCM module */
bool auto_latency; /*!< BLE auto latency, used to enhance classic BT performance */
bool bt_legacy_auth_vs_evt; /*!< BR/EDR Legacy auth complete event required to protect from BIAS attack */
/*
* Following parameters can not be configured runtime when call esp_bt_controller_init()
* It will be overwrite with a constant value which in menuconfig or from a macro.
@@ -62,6 +62,29 @@ void periph_module_disable(periph_module_t periph);
*/
void periph_module_reset(periph_module_t periph);
/**
* @brief enable wifi bt common module
*
* @note If wifi_bt_common_module_enable is called a number of times,
* wifi_bt_common_module_disable has to be called the same number of times
* in order to put the peripheral into disabled state.
*
* @return NULL
*
*/
void wifi_bt_common_module_enable(void);
/**
* @brief disable wifi bt common module
*
* @note If wifi_bt_common_module_enable is called a number of times,
* wifi_bt_common_module_disable has to be called the same number of times
* in order to put the peripheral into disabled state.
*
* @return NULL
*
*/
void wifi_bt_common_module_disable(void);
#ifdef __cplusplus
}
+23
View File
@@ -20,6 +20,7 @@
#include "driver/periph_ctrl.h"
static portMUX_TYPE periph_spinlock = portMUX_INITIALIZER_UNLOCKED;
static uint8_t ref_counts = 0;
/* Static functions to return register address & mask for clk_en / rst of each peripheral */
static uint32_t get_clk_en_mask(periph_module_t periph);
@@ -257,4 +258,26 @@ static uint32_t get_rst_en_reg(periph_module_t periph)
}
}
IRAM_ATTR void wifi_bt_common_module_enable(void)
{
portENTER_CRITICAL_SAFE(&periph_spinlock);
if (ref_counts == 0) {
DPORT_SET_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG,DPORT_WIFI_CLK_WIFI_BT_COMMON_M);
DPORT_CLEAR_PERI_REG_MASK(DPORT_CORE_RST_EN_REG,0);
}
ref_counts++;
portEXIT_CRITICAL_SAFE(&periph_spinlock);
}
IRAM_ATTR void wifi_bt_common_module_disable(void)
{
portENTER_CRITICAL_SAFE(&periph_spinlock);
ref_counts--;
if (ref_counts == 0) {
DPORT_CLEAR_PERI_REG_MASK(DPORT_WIFI_CLK_EN_REG,DPORT_WIFI_CLK_WIFI_BT_COMMON_M);
DPORT_SET_PERI_REG_MASK(DPORT_CORE_RST_EN_REG,0);
}
portEXIT_CRITICAL_SAFE(&periph_spinlock);
}
+5 -11
View File
@@ -417,7 +417,7 @@ TEST_CASE("GPIO io pull up/down function", "[gpio]")
TEST_CASE("GPIO output and input mode test", "[gpio][test_env=UT_T1_GPIO]")
{
//connect io18 and io5
//connect io18 and io19
gpio_config_t output_io = init_io(GPIO_OUTPUT_IO);
gpio_config_t input_io = init_io(GPIO_INPUT_IO);
gpio_config(&output_io);
@@ -456,18 +456,12 @@ TEST_CASE("GPIO output and input mode test", "[gpio][test_env=UT_T1_GPIO]")
TEST_ASSERT_EQUAL_INT_MESSAGE(gpio_get_level(GPIO_INPUT_IO), 0, "direction GPIO_MODE_OUTPUT set error, it can't output");
// GPIO_MODE_INPUT_OUTPUT mode
// output test
level = gpio_get_level(GPIO_INPUT_IO);
gpio_set_direction(GPIO_OUTPUT_IO, GPIO_MODE_INPUT_OUTPUT);
gpio_set_direction(GPIO_INPUT_IO, GPIO_MODE_INPUT);
gpio_set_level(GPIO_OUTPUT_IO, !level);
TEST_ASSERT_EQUAL_INT_MESSAGE(gpio_get_level(GPIO_INPUT_IO), !level, "direction set error, it can't output");
// input test
gpio_set_direction(GPIO_OUTPUT_IO, GPIO_MODE_OUTPUT);
gpio_set_direction(GPIO_INPUT_IO, GPIO_MODE_INPUT_OUTPUT);
level = gpio_get_level(GPIO_INPUT_IO);
gpio_set_level(GPIO_OUTPUT_IO, !level);
TEST_ASSERT_EQUAL_INT_MESSAGE(gpio_get_level(GPIO_INPUT_IO), !level, "direction set error, it can't output");
gpio_set_level(GPIO_OUTPUT_IO, 1);
TEST_ASSERT_EQUAL_INT_MESSAGE(gpio_get_level(GPIO_OUTPUT_IO), 1, "direction set error, it can't output");
gpio_set_level(GPIO_OUTPUT_IO, 0);
TEST_ASSERT_EQUAL_INT_MESSAGE(gpio_get_level(GPIO_OUTPUT_IO), 0, "direction set error, it can't output");
}
TEST_CASE("GPIO repeate call service and isr has no memory leak test","[gpio][test_env=UT_T1_GPIO][timeout=90]")
+6
View File
@@ -1,5 +1,10 @@
menu "ESP32-specific"
config ESP32_ECO3_CACHE_LOCK_FIX
bool
default y
depends on !FREERTOS_UNICORE && SPIRAM_SUPPORT
choice ESP32_REV_MIN
prompt "Minimum Supported ESP32 Revision"
default ESP32_REV_MIN_0
@@ -15,6 +20,7 @@ choice ESP32_REV_MIN
bool "Rev 2"
config ESP32_REV_MIN_3
bool "Rev 3"
select INT_WDT if ESP32_ECO3_CACHE_LOCK_FIX
endchoice
config ESP32_REV_MIN
+4
View File
@@ -368,6 +368,10 @@ void start_cpu0_default(void)
esp_int_wdt_init();
//Initialize the interrupt watch dog for CPU0.
esp_int_wdt_cpu_init();
#else
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX
assert(!soc_has_cache_lock_bug() && "ESP32 Rev 3 + Dual Core + PSRAM requires INT WDT enabled in project config!");
#endif
#endif
esp_cache_err_int_init();
esp_crosscore_int_init();
+287 -2
View File
@@ -17,10 +17,12 @@
#include <xtensa/corebits.h>
#include <xtensa/config/system.h>
#include "freertos/xtensa_context.h"
#include "freertos/xtensa_rtos.h"
#include "esp_panic.h"
#include "sdkconfig.h"
#include "soc/soc.h"
#include "soc/dport_reg.h"
#include "soc/timer_group_reg.h"
/*
@@ -37,7 +39,23 @@ Interrupt , a high-priority interrupt, is used for several things:
#define L4_INTR_A4_OFFSET 8
.data
_l4_intr_stack:
.space L4_INTR_STACK_SIZE
.space L4_INTR_STACK_SIZE*portNUM_PROCESSORS /* This allocates stacks for each individual CPU. */
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX && CONFIG_INT_WDT
.global _l4_intr_livelock_counter
.global _l4_intr_livelock_max
.align 16
_l4_intr_livelock_counter:
.word 0
_l4_intr_livelock_max:
.word 0
_l4_intr_livelock_sync:
.word 0, 0
_l4_intr_livelock_app:
.word 0
_l4_intr_livelock_pro:
.word 0
#endif
.section .iram1,"ax"
.global xt_highint4
@@ -52,8 +70,24 @@ xt_highint4:
bnez a0, .handle_dport_access_int
#endif // CONFIG_FREERTOS_UNICORE
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX && CONFIG_INT_WDT
/* See if we're here for the tg1 watchdog interrupt */
rsr a0, INTERRUPT
extui a0, a0, ETS_T1_WDT_INUM, 1
beqz a0, 1f
wsr a5, depc /* use DEPC as temp storage */
movi a0, _l4_intr_livelock_counter
l32i a0, a0, 0
movi a5, _l4_intr_livelock_max
l32i a5, a5, 0
bltu a0, a5, .handle_livelock_int /* _l4_intr_livelock_counter < _l4_intr_livelock_max */
rsr a5, depc /* restore a5 */
#endif
/* Allocate exception frame and save minimal context. */
mov a0, sp
1: mov a0, sp
addi sp, sp, -XT_STK_FRMSZ
s32i a0, sp, XT_STK_A1
#if XCHAL_HAVE_WINDOWED
@@ -129,6 +163,257 @@ xt_highint4:
rfi 4
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX && CONFIG_INT_WDT
/*
--------------------------------------------------------------------------------
Macro intr_matrix_map - Attach an CPU interrupt to a hardware source.
Input : "addr" - Interrupt map configuration base address
Input : "src" - Interrupt source.
Input : "inum" - Interrupt number.
--------------------------------------------------------------------------------
*/
.macro intr_matrix_map addr src inum
movi a2, \src
slli a2, a2, 2
movi a3, \addr
add a3, a3, a2
movi a2, \inum
s32i a2, a3, 0
memw
.endm
/*
--------------------------------------------------------------------------------
Macro wdt_clr_intr_status - Clear the WDT interrupt status.
Macro wdt_feed - Feed the WDT.
Input : "dev" - Beginning address of the peripheral registers
--------------------------------------------------------------------------------
*/
#define TIMG1_REG_OFFSET(reg) ((reg) - REG_TIMG_BASE(1))
#define TIMG1_WDTWPROTECT_OFFSET TIMG1_REG_OFFSET(TIMG_WDTWPROTECT_REG(1))
#define TIMG1_INT_CLR_OFFSET TIMG1_REG_OFFSET(TIMG_INT_CLR_TIMERS_REG(1))
#define TIMG1_WDT_STG0_HOLD_OFFSET TIMG1_REG_OFFSET(TIMG_WDTCONFIG2_REG(1))
#define TIMG1_WDT_STG1_HOLD_OFFSET TIMG1_REG_OFFSET(TIMG_WDTCONFIG3_REG(1))
#define TIMG1_WDT_FEED_OFFSET TIMG1_REG_OFFSET(TIMG_WDTFEED_REG(1))
.macro wdt_clr_intr_status dev
movi a2, \dev
movi a3, TIMG_WDT_WKEY_VALUE
s32i a3, a2, TIMG1_WDTWPROTECT_OFFSET /* disable write protect */
memw
l32i a4, a2, TIMG1_INT_CLR_OFFSET
memw
movi a3, 4
or a3, a4, a3
s32i a3, a2, TIMG1_INT_CLR_OFFSET /* clear 1st stage timeout interrupt */
memw
movi a3, 0
s32i a3, a2, TIMG1_WDTWPROTECT_OFFSET /* enable write protect */
memw
.endm
.macro wdt_feed dev
movi a2, \dev
movi a3, TIMG_WDT_WKEY_VALUE
s32i a3, a2, TIMG1_WDTWPROTECT_OFFSET /* disable write protect */
memw
movi a4, _l4_intr_livelock_max
l32i a4, a4, 0
memw
addi a4, a4, 1
movi a3, (CONFIG_INT_WDT_TIMEOUT_MS<<1)
quou a3, a3, a4
s32i a3, a2, TIMG1_WDT_STG0_HOLD_OFFSET /* set timeout before interrupt */
memw
movi a3, (CONFIG_INT_WDT_TIMEOUT_MS<<2)
s32i a3, a2, TIMG1_WDT_STG1_HOLD_OFFSET /* set timeout before system reset */
memw
movi a3, 1
s32i a3, a2, TIMG1_WDT_FEED_OFFSET /* feed wdt */
memw
movi a3, 0
s32i a3, a2, TIMG1_WDTWPROTECT_OFFSET /* enable write protect */
memw
.endm
.align 4
.handle_livelock_int:
getcoreid a5
/* Save A2, A3, A4 so we can use those registers */
movi a0, L4_INTR_STACK_SIZE
mull a5, a5, a0
movi a0, _l4_intr_stack
add a0, a0, a5
s32i a2, a0, L4_INTR_A2_OFFSET
s32i a3, a0, L4_INTR_A3_OFFSET
s32i a4, a0, L4_INTR_A4_OFFSET
/* Here, we can use a0, a2, a3, a4, a5 registers */
getcoreid a5
rsil a0, CONFIG_ESP32_DPORT_DIS_INTERRUPT_LVL /* disable nested interrupt */
beqz a5, 1f
movi a2, _l4_intr_livelock_app
l32i a3, a2, 0
addi a3, a3, 1
s32i a3, a2, 0
/* Dual core synchronization, ensuring that both cores enter interrupts */
1: movi a4, 0x1
movi a2, _l4_intr_livelock_sync
addx4 a3, a5, a2
s32i a4, a3, 0
1: movi a2, _l4_intr_livelock_sync
movi a3, 1
addx4 a3, a3, a2
l32i a2, a2, 0
l32i a3, a3, 0
and a2, a2, a3
beqz a2, 1b
beqz a5, 1f /* Pro cpu (Core 0) jump bypass */
movi a2, _l4_intr_livelock_app
l32i a2, a2, 0
bnei a2, 2, 1f
movi a2, _l4_intr_livelock_counter /* _l4_intr_livelock_counter++ */
l32i a3, a2, 0
addi a3, a3, 1
s32i a3, a2, 0
/*
The delay time can be calculated by the following formula:
T = ceil(0.25 + max(t1, t2)) us
t1 = 80 / f1, t2 = (1 + 14/N) * 20 / f2
f1: PSRAM access frequency, unit: MHz.
f2: Flash access frequency, unit: MHz.
When flash is slow/fast read, N = 1.
When flash is DOUT/DIO read, N = 2.
When flash is QOUT/QIO read, N = 4.
*/
1: rsr.ccount a2
#if defined(CONFIG_FLASHMODE_QIO) || defined(CONFIG_FLASHMODE_QOUT)
# if defined(CONFIG_ESPTOOLPY_FLASHFREQ_80M) && defined(CONFIG_SPIRAM_SPEED_80M)
movi a3, 480
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_80M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 720
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_40M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 720
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_26M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 960
# else
movi a3, 1200
# endif
#elif defined(CONFIG_FLASHMODE_DIO) || defined(CONFIG_FLASHMODE_DOUT)
# if defined(CONFIG_ESPTOOLPY_FLASHFREQ_80M) && defined(CONFIG_SPIRAM_SPEED_80M)
movi a3, 720
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_80M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 720
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_40M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 1200
# elif defined(CONFIG_ESPTOOLPY_FLASHFREQ_26M) && defined(CONFIG_SPIRAM_SPEED_40M)
movi a3, 1680
# else
movi a3, 2160
# endif
#endif
2: rsr.ccount a4 /* delay_us(N) */
sub a4, a4, a2
bltu a4, a3, 2b
beqz a5, 2f
movi a2, _l4_intr_livelock_app
l32i a2, a2, 0
beqi a2, 2, 8f
j 3f
2: movi a2, _l4_intr_livelock_pro
l32i a4, a2, 0
addi a4, a4, 1
s32i a4, a2, 0
movi a2, _l4_intr_livelock_sync
movi a3, 1
addx4 a3, a3, a2
l32i a2, a2, 0
l32i a3, a3, 0
and a2, a2, a3
beqz a2, 5f
j 1b
5: bgei a4, 2, 4f
j 1b
/*
Pro cpu (Core 0) jump bypass, continue waiting, App cpu (Core 1)
can execute to here, unmap itself tg1 1st stage timeout interrupt
then restore registers and exit highint4.
*/
3: intr_matrix_map DPORT_APP_MAC_INTR_MAP_REG, ETS_TG1_WDT_LEVEL_INTR_SOURCE, 16
j 9f
/*
Here, App cpu (Core 1) has exited isr, Pro cpu (Core 0) help the
App cpu map tg1 1st stage timeout interrupt clear tg1 interrupt.
*/
4: intr_matrix_map DPORT_APP_MAC_INTR_MAP_REG, ETS_TG1_WDT_LEVEL_INTR_SOURCE, ETS_T1_WDT_INUM
1: movi a2, _l4_intr_livelock_sync
movi a4, 1
addx4 a3, a4, a2
l32i a2, a2, 0
l32i a3, a3, 0
and a2, a2, a3
beqz a2, 1b /* Wait for App cpu to enter highint4 again */
wdt_clr_intr_status TIMERG1
j 9f
/* Feed watchdog */
8: wdt_feed TIMERG1
9: wsr a0, PS /* restore iterrupt level */
movi a0, 0
beqz a5, 1f
movi a2, _l4_intr_livelock_app
l32i a3, a2, 0
bnei a3, 2, 1f
s32i a0, a2, 0
1: bnez a5, 2f
movi a2, _l4_intr_livelock_pro
s32i a0, a2, 0
2: movi a2, _l4_intr_livelock_sync
addx4 a2, a5, a2
s32i a0, a2, 0
/* Done. Restore registers and return. */
movi a0, L4_INTR_STACK_SIZE
mull a5, a5, a0
movi a0, _l4_intr_stack
add a0, a0, a5
l32i a2, a0, L4_INTR_A2_OFFSET
l32i a3, a0, L4_INTR_A3_OFFSET
l32i a4, a0, L4_INTR_A4_OFFSET
rsync /* ensure register restored */
rsr a5, depc
rsr a0, EXCSAVE_4 /* restore a0 */
rfi 4
#endif
#ifndef CONFIG_FREERTOS_UNICORE
+2 -2
View File
@@ -177,7 +177,7 @@ static void set_isr_wrapper(int32_t n, void *f, void *arg)
static void * spin_lock_create_wrapper(void)
{
portMUX_TYPE tmp = portMUX_INITIALIZER_UNLOCKED;
void *mux = malloc(sizeof(portMUX_TYPE));
void *mux = heap_caps_malloc(sizeof(portMUX_TYPE), MALLOC_CAP_8BIT|MALLOC_CAP_INTERNAL);
if (mux) {
memcpy(mux,&tmp,sizeof(portMUX_TYPE));
@@ -551,7 +551,7 @@ wifi_osi_funcs_t g_wifi_osi_funcs = {
._task_get_max_priority = task_get_max_priority_wrapper,
._malloc = malloc,
._free = free,
._get_free_heap_size = esp_get_free_heap_size,
._get_free_heap_size = esp_get_free_internal_heap_size,
._rand = esp_random,
._dport_access_stall_other_cpu_start_wrap = esp_dport_access_stall_other_cpu_start_wrap,
._dport_access_stall_other_cpu_end_wrap = esp_dport_access_stall_other_cpu_end_wrap,
+9
View File
@@ -403,6 +403,15 @@ static const esp_err_msg_t esp_err_msg_table[] = {
# endif
# ifdef ESP_ERR_MESH_VOTING
ERR_TBL_IT(ESP_ERR_MESH_VOTING), /* 16406 0x4016 */
# endif
# ifdef ESP_ERR_MESH_XMIT
ERR_TBL_IT(ESP_ERR_MESH_XMIT), /* 16407 0x4017 */
# endif
# ifdef ESP_ERR_MESH_QUEUE_READ
ERR_TBL_IT(ESP_ERR_MESH_QUEUE_READ), /* 16408 0x4018 */
# endif
# ifdef ESP_ERR_MESH_RECV_RELEASE
ERR_TBL_IT(ESP_ERR_MESH_RECV_RELEASE), /* 16410 0x401a */
# endif
// components/tcpip_adapter/include/tcpip_adapter.h
# ifdef ESP_ERR_TCPIP_ADAPTER_BASE
+1 -1
View File
@@ -23,7 +23,7 @@ extern "C" {
/** Minor version number (x.X.x) */
#define ESP_IDF_VERSION_MINOR 2
/** Patch version number (x.x.X) */
#define ESP_IDF_VERSION_PATCH 4
#define ESP_IDF_VERSION_PATCH 5
/**
* Macro to convert IDF version number into an integer
+8 -1
View File
@@ -124,6 +124,9 @@ extern "C" {
#define ESP_ERR_MESH_DISCARD_DUPLICATE (ESP_ERR_MESH_BASE + 20) /**< discard the packet due to the duplicate sequence number */
#define ESP_ERR_MESH_DISCARD (ESP_ERR_MESH_BASE + 21) /**< discard the packet */
#define ESP_ERR_MESH_VOTING (ESP_ERR_MESH_BASE + 22) /**< vote in progress */
#define ESP_ERR_MESH_XMIT (ESP_ERR_MESH_BASE + 23) /**< XMIT */
#define ESP_ERR_MESH_QUEUE_READ (ESP_ERR_MESH_BASE + 24) /**< error in reading queue */
#define ESP_ERR_MESH_RECV_RELEASE (ESP_ERR_MESH_BASE + 26) /**< release esp_mesh_recv_toDS */
/**
* @brief Flags bitmap for esp_mesh_send() and esp_mesh_recv()
@@ -203,6 +206,7 @@ typedef enum {
MESH_ROOT, /**< the only sink of the mesh network. Has the ability to access external IP network */
MESH_NODE, /**< intermediate device. Has the ability to forward packets over the mesh network */
MESH_LEAF, /**< has no forwarding ability */
MESH_STA, /**< connect to router with a standlone Wi-Fi station mode, no network expansion capability */
} mesh_type_t;
/**
@@ -735,6 +739,7 @@ esp_err_t esp_mesh_recv(mesh_addr_t *from, mesh_data_t *data, int timeout_ms,
* - ESP_ERR_MESH_NOT_START
* - ESP_ERR_MESH_TIMEOUT
* - ESP_ERR_MESH_DISCARD
* - ESP_ERR_MESH_RECV_RELEASE
*/
esp_err_t esp_mesh_recv_toDS(mesh_addr_t *from, mesh_addr_t *to,
mesh_data_t *data, int timeout_ms, int *flag, mesh_opt_t opt[],
@@ -830,8 +835,10 @@ esp_err_t esp_mesh_get_id(mesh_addr_t *id);
/**
* @brief Designate device type over the mesh network
* - MESH_IDLE: designates a device as a self-organized node for a mesh network
* - MESH_ROOT: designates the root node for a mesh network
* - MESH_LEAF: designates a device as a standalone Wi-Fi station
* - MESH_LEAF: designates a device as a standalone Wi-Fi station that connects to a parent
* - MESH_STA: designates a device as a standalone Wi-Fi station that connects to a router
*
* @param[in] type device type
*
+19
View File
@@ -130,6 +130,16 @@ uint32_t system_get_time(void) __attribute__ ((deprecated));
*/
uint32_t esp_get_free_heap_size(void);
/**
* @brief Get the size of available internal heap.
*
* Note that the returned value may be larger than the maximum contiguous block
* which can be allocated.
*
* @return Available internal heap size, in bytes.
*/
uint32_t esp_get_free_internal_heap_size(void);
/** @cond */
/**
* @brief Get the size of available heap.
@@ -322,6 +332,15 @@ typedef struct {
*/
void esp_chip_info(esp_chip_info_t* out_info);
/**
* @brief Cache lock bug exists or not
*
* @return
* - true : bug exists
* - false : bug not exists
*/
bool soc_has_cache_lock_bug(void);
#ifdef __cplusplus
}
#endif
+52 -6
View File
@@ -800,6 +800,21 @@ esp_err_t esp_wifi_get_config(wifi_interface_t interface, wifi_config_t *conf);
*/
esp_err_t esp_wifi_ap_get_sta_list(wifi_sta_list_t *sta);
/**
* @brief Get AID of STA connected with soft-AP
*
* @param mac STA's mac address
* @param[out] aid Store the AID corresponding to STA mac
*
* @return
* - ESP_OK: succeed
* - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init
* - ESP_ERR_INVALID_ARG: invalid argument
* - ESP_ERR_NOT_FOUND: Requested resource not found
* - ESP_ERR_WIFI_MODE: WiFi mode is wrong
* - ESP_ERR_WIFI_CONN: WiFi internal error, the station/soft-AP control block is invalid
*/
esp_err_t esp_wifi_ap_get_sta_aid(const uint8_t mac[6], uint16_t *aid);
/**
* @brief Set the WiFi API configuration storage type
@@ -882,28 +897,59 @@ esp_err_t esp_wifi_set_vendor_ie(bool enable, wifi_vendor_ie_type_t type, wifi_v
esp_err_t esp_wifi_set_vendor_ie_cb(esp_vendor_ie_cb_t cb, void *ctx);
/**
* @brief Set maximum WiFi transmitting power
* @brief Set maximum transmitting power after WiFi start.
*
* @param power Maximum WiFi transmitting power, unit is 0.25dBm, range is [40, 82] corresponding to 10dBm - 20.5dBm here.
* @attention 1. Maximum power before wifi startup is limited by PHY init data bin.
* @attention 2. The value set by this API will be mapped to the max_tx_power of the structure wifi_country_t variable.
* @attention 3. Mapping Table {Power, max_tx_power} = {{8, 2}, {20, 5}, {28, 7}, {34, 8}, {44, 11},
* {52, 13}, {56, 14}, {60, 15}, {66, 16}, {72, 18}, {78, 20}}.
* @attention 4. Param power unit is 0.25dBm, range is [8, 78] corresponding to 2dBm - 20dBm.
* @attention 5. Relationship between set value and actual value. As follows:
* +------------+--------------+
* | set value | actual value |
* +============+==============+
* | [8, 19] | 8 |
* +------------+--------------+
* | [20, 27] | 20 |
* +------------+--------------+
* | [28, 33] | 28 |
* +------------+--------------+
* | [34, 43] | 34 |
* +------------+--------------+
* | [44, 51] | 44 |
* +------------+--------------+
* | [52, 55] | 52 |
* +------------+--------------+
* | [56, 59] | 56 |
* +------------+--------------+
* | [60, 65] | 60 |
* +------------+--------------+
* | [66, 71] | 66 |
* +------------+--------------+
* | [72, 77] | 72 |
* +------------+--------------+
* | 78 | 78 |
* +------------+--------------+
* @param power Maximum WiFi transmitting power.
*
* @return
* - ESP_OK: succeed
* - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init
* - ESP_ERR_WIFI_NOT_START: WiFi is not started by esp_wifi_start
* - ESP_ERR_WIFI_NOT_ARG: invalid argument
* - ESP_ERR_WIFI_ARG: invalid argument, e.g. parameter is out of range
*/
esp_err_t esp_wifi_set_max_tx_power(int8_t power);
/**
* @brief Get maximum WiFi transmiting power
* @brief Get maximum transmiting power after WiFi start
*
* @param power Maximum WiFi transmitting power, unit is 0.25dBm.
* @param power Maximum WiFi transmitting power, unit is 0.25dBm.
*
* @return
* - ESP_OK: succeed
* - ESP_ERR_WIFI_NOT_INIT: WiFi is not initialized by esp_wifi_init
* - ESP_ERR_WIFI_NOT_START: WiFi is not started by esp_wifi_start
* - ESP_ERR_INVALID_ARG: invalid argument
* - ESP_ERR_WIFI_ARG: invalid argument
*/
esp_err_t esp_wifi_get_max_tx_power(int8_t *power);
@@ -93,6 +93,7 @@ typedef enum {
WIFI_REASON_ASSOC_FAIL = 203,
WIFI_REASON_HANDSHAKE_TIMEOUT = 204,
WIFI_REASON_CONNECTION_FAIL = 205,
WIFI_REASON_AP_TSF_RESET = 206,
} wifi_err_reason_t;
typedef enum {
+27 -1
View File
@@ -35,8 +35,17 @@
#if CONFIG_INT_WDT
#define WDT_INT_NUM 24
#define WDT_INT_NUM ETS_T1_WDT_INUM
#if !defined(CONFIG_FREERTOS_UNICORE) && defined(CONFIG_SPIRAM_SUPPORT)
/*
* This parameter is indicates the response time of tg1 watchdog to
* identify the live lock,
*/
#define TG1_WDT_LIVELOCK_TIMEOUT_MS (20)
extern uint32_t _l4_intr_livelock_counter, _l4_intr_livelock_max;
#endif
//Take care: the tick hook can also be called before esp_int_wdt_init() is called.
#if CONFIG_INT_WDT_CHECK_CPU1
@@ -50,7 +59,12 @@ static void IRAM_ATTR tick_hook(void) {
//Only feed wdt if app cpu also ticked.
if (int_wdt_app_cpu_ticked) {
TIMERG1.wdt_wprotect=TIMG_WDT_WKEY_VALUE;
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX
_l4_intr_livelock_counter = 0;
TIMERG1.wdt_config2=CONFIG_INT_WDT_TIMEOUT_MS*2/(_l4_intr_livelock_max+1); //Set timeout before interrupt
#else
TIMERG1.wdt_config2=CONFIG_INT_WDT_TIMEOUT_MS*2; //Set timeout before interrupt
#endif
TIMERG1.wdt_config3=CONFIG_INT_WDT_TIMEOUT_MS*4; //Set timeout before reset
TIMERG1.wdt_feed=1;
TIMERG1.wdt_wprotect=0;
@@ -92,9 +106,21 @@ void esp_int_wdt_init() {
void esp_int_wdt_cpu_init()
{
assert((CONFIG_INT_WDT_TIMEOUT_MS >= (portTICK_PERIOD_MS<<1)) && "Interrupt watchdog timeout needs to meet double SysTick period!");
esp_register_freertos_tick_hook_for_cpu(tick_hook, xPortGetCoreID());
ESP_INTR_DISABLE(WDT_INT_NUM);
intr_matrix_set(xPortGetCoreID(), ETS_TG1_WDT_LEVEL_INTR_SOURCE, WDT_INT_NUM);
#if CONFIG_ESP32_ECO3_CACHE_LOCK_FIX
/*
* This is a workaround for issue 3.15 in "ESP32 ECO and Workarounds for Bugs" document.
*/
_l4_intr_livelock_max = 0;
if (soc_has_cache_lock_bug()) {
assert((portTICK_PERIOD_MS<<1) <= TG1_WDT_LIVELOCK_TIMEOUT_MS);
assert(CONFIG_INT_WDT_TIMEOUT_MS >= (TG1_WDT_LIVELOCK_TIMEOUT_MS*3));
_l4_intr_livelock_max = CONFIG_INT_WDT_TIMEOUT_MS/TG1_WDT_LIVELOCK_TIMEOUT_MS - 1;
}
#endif
//We do not register a handler for the interrupt because it is interrupt level 4 which
//is not servicable from C. Instead, xtensa_vectors.S has a call to the panic handler for
//this interrupt.
+2
View File
@@ -1387,6 +1387,8 @@ PROVIDE ( g_rom_spiflash_chip = 0x3ffae270 );
PROVIDE ( hci_le_rd_rem_used_feats_cmd_handler = 0x400417b4 );
PROVIDE ( llcp_length_req_handler = 0x40043808 );
PROVIDE ( llcp_unknown_rsp_handler = 0x40043ba8 );
PROVIDE ( llcp_channel_map_req_handler = 0x4004291c );
PROVIDE ( llcp_con_up_req_handler = 0x400426f0 );
/*
These functions are xtos-related (or call xtos-related functions) and do not play well
+2 -2
View File
@@ -243,9 +243,9 @@ void panicHandler(XtExcFrame *frame)
while (1);
}
//The core which triggers the interrupt watchdog will delay 1 us, so the other core can save its frame.
//The core which triggers the interrupt watchdog will delay 500 us, so the other core can save its frame.
if (frame->exccause == PANIC_RSN_INTWDT_CPU0 || frame->exccause == PANIC_RSN_INTWDT_CPU1) {
ets_delay_us(1);
ets_delay_us(500);
}
if (frame->exccause == PANIC_RSN_CACHEERR && esp_cache_err_get_cpuid() != core_id) {
+2 -47
View File
@@ -52,12 +52,6 @@ static uint32_t s_module_phy_rf_init = 0;
/* Whether modem sleep is turned on */
static volatile bool s_is_phy_rf_en = false;
/* Whether WiFi/BT common clock enabled reference */
static volatile int32_t s_common_clock_enable_ref = 0;
/* PHY spinlock mux */
static portMUX_TYPE s_phy_spin_lock = portMUX_INITIALIZER_UNLOCKED;
/* Bit mask of modules needing to enter modem sleep mode */
static uint32_t s_modem_sleep_module_enter = 0;
@@ -121,53 +115,14 @@ static inline void phy_update_wifi_mac_time(bool en_clock_stopped, int64_t now)
}
}
IRAM_ATTR static inline void phy_spin_lock(void)
{
if (xPortInIsrContext()) {
portENTER_CRITICAL_ISR(&s_phy_spin_lock);
} else {
portENTER_CRITICAL(&s_phy_spin_lock);
}
}
IRAM_ATTR static inline void phy_spin_unlock(void)
{
if (xPortInIsrContext()) {
portEXIT_CRITICAL_ISR(&s_phy_spin_lock);
} else {
portEXIT_CRITICAL(&s_phy_spin_lock);
}
}
IRAM_ATTR void esp_phy_common_clock_enable(void)
{
phy_spin_lock();
if (s_common_clock_enable_ref == 0) {
// Enable WiFi/BT common clock
periph_module_enable(PERIPH_WIFI_BT_COMMON_MODULE);
}
s_common_clock_enable_ref++;
phy_spin_unlock();
wifi_bt_common_module_enable();
}
IRAM_ATTR void esp_phy_common_clock_disable(void)
{
phy_spin_lock();
if (s_common_clock_enable_ref > 0) {
s_common_clock_enable_ref --;
if (s_common_clock_enable_ref == 0) {
// Disable WiFi/BT common clock
periph_module_disable(PERIPH_WIFI_BT_COMMON_MODULE);
}
} else {
abort();
}
phy_spin_unlock();
wifi_bt_common_module_disable();
}
+15 -6
View File
@@ -398,11 +398,9 @@ static void psram_disable_qio_mode(psram_spi_num_t spi_num)
psram_cmd_end(spi_num);
}
//read psram id
static void psram_read_id(uint64_t* dev_id)
//read psram id, should issue `psram_disable_qio_mode` before calling this
static void psram_read_id(psram_spi_num_t spi_num, uint64_t* dev_id)
{
psram_spi_num_t spi_num = PSRAM_SPI_1;
psram_disable_qio_mode(spi_num);
uint32_t dummy_bits = 0 + extra_dummy;
uint32_t psram_id[2] = {0};
psram_cmd_t ps_cmd;
@@ -895,9 +893,20 @@ esp_err_t IRAM_ATTR psram_enable(psram_cache_mode_t mode, psram_vaddr_mode_t vad
bootloader_common_vddsdio_configure();
// GPIO related settings
psram_gpio_config(&psram_io, mode);
psram_read_id(&s_psram_id);
psram_spi_num_t spi_num = PSRAM_SPI_1;
psram_disable_qio_mode(spi_num);
psram_read_id(spi_num, &s_psram_id);
if (!PSRAM_IS_VALID(s_psram_id)) {
return ESP_FAIL;
/* 16Mbit psram ID read error workaround:
* treat the first read id as a dummy one as the pre-condition,
* Send Read ID command again
*/
psram_read_id(spi_num, &s_psram_id);
if (!PSRAM_IS_VALID(s_psram_id)) {
ESP_EARLY_LOGE(TAG, "PSRAM ID read error: 0x%08x", (uint32_t)s_psram_id);
return ESP_FAIL;
}
}
if (PSRAM_IS_32MBIT_VER0(s_psram_id)) {
+10
View File
@@ -363,6 +363,11 @@ uint32_t esp_get_free_heap_size( void )
return heap_caps_get_free_size( MALLOC_CAP_DEFAULT );
}
uint32_t esp_get_free_internal_heap_size( void )
{
return heap_caps_get_free_size( MALLOC_CAP_8BIT | MALLOC_CAP_DMA | MALLOC_CAP_INTERNAL );
}
uint32_t esp_get_minimum_free_heap_size( void )
{
return heap_caps_get_minimum_free_size( MALLOC_CAP_DEFAULT );
@@ -404,3 +409,8 @@ void esp_chip_info(esp_chip_info_t* out_info)
out_info->features |= CHIP_FEATURE_EMB_FLASH;
}
}
inline bool soc_has_cache_lock_bug(void)
{
return (esp_efuse_get_chip_ver() == 3);
}
@@ -663,6 +663,7 @@ static int esp_websocket_client_send_with_opcode(esp_websocket_client_handle_t c
if (wlen <= 0) {
ret = wlen;
ESP_LOGE(TAG, "Network error: esp_transport_write() returned %d, errno=%d", ret, errno);
esp_websocket_client_abort_connection(client);
goto unlock_and_return;
}
current_opcode = 0;
@@ -235,6 +235,22 @@ void vPortCPUReleaseMutex(portMUX_TYPE *mux);
#define portEXIT_CRITICAL_ISR(mux) vTaskExitCritical(mux)
#endif
#define portENTER_CRITICAL_SAFE(mux) do { \
if (xPortInIsrContext()) { \
portENTER_CRITICAL_ISR(mux); \
} else { \
portENTER_CRITICAL(mux); \
} \
} while(0)
#define portEXIT_CRITICAL_SAFE(mux) do { \
if (xPortInIsrContext()) { \
portEXIT_CRITICAL_ISR(mux); \
} else { \
portEXIT_CRITICAL(mux); \
} \
} while(0)
// Critical section management. NW-TODO: replace XTOS_SET_INTLEVEL with more efficient version, if any?
// These cannot be nested. They should be used with a lot of care and cannot be called from interrupt level.
//
@@ -1,228 +0,0 @@
.MESH_INIT_COND: &MESH_INIT_COND
test script: InitCondMesh
restore post cmd set:
- ''
- - 'MSSC SSC[1-<node_num>] ram'
- ['P SSC[1-<node_num>] C +FREEHEAP:']
# - - 'MSSC SSC[1-<node_num>] mesh -Q -o 1'
# - ['P SSC[1-<node_num>] C MESH_NETWORK']
.mesh_get_all_dut_mac: &mesh_get_all_dut_mac
LIST_MERGE:
- - 'MSSC SSC[1-<node_num>] mac'
- ['R SSC[1-<node_num>] A <device_mac>:\+STAMAC:(.+)\r\n']
.mesh_check_tree_num: &mesh_check_tree_num
LIST_MERGE:
- - 'MSSC SSC[1-<node_num>] mesh -Q -o 2'
- ['P SSC[1-<node_num>] T topo']
- - 'MESHTREE'
- ['R PC_COM RE "MESHTREE:%%s"%%(<tree_node_num>)']
.mesh_tree_stably: &mesh_tree_stably
LIST_MERGE:
- - 'SSC MNODE(0) mesh -Q -o 1 -t <stable_check_time>'
- ['P MNODE(0) RE "MESH_NETWORK:1,%%s"%%(<node_num>)', 'P MNODE(0) C MESH_STABLE_CHECK:PASS']
.deinit_mesh: &deinit_mesh
LIST_MERGE:
- - 'MSSC SSC[1-<node_num>] mesh -I -o 1'
- ['P SSC[1-<node_num>] C +MESH:DEINITED']
.mesh_force_reboot: &mesh_force_reboot
LIST_MERGE:
- - 'MSSC SSC[1-<node_num>] restore'
- ['P SSC[1-<node_num>] C !!!ready!!!']
.mesh_config_all_duts: &mesh_config_all_duts
LIST_MERGE:
- - 'MSSC SSC[1-<node_num>] meshset -M -o 0 -t <map_auth_mode> -e <map_password> -l 10'
- ['P SSC[1-<node_num>] C +MESHSET:MAP_AUTH,OK']
- - 'MSSC SSC[1-<node_num>] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>'
- ['P SSC[1-<node_num>] C +MESHSET:CFG,OK']
- - 'MSSC SSC[1-<node_num>] meshset -L -o 0 -l <max_layer>'
- ['P SSC[1-<node_num>] C +MESHSET:MLAYER,OK']
- - 'MSSC SSC[1-<node_num>] meshset -W -o 0 -t <duration_ms> -n <cnx_rssi> -l <select_rssi> -i <switch_rssi> -k <backoff_rssi>'
- ['P SSC[1-<node_num>] C +MESHSET:SWITCH,OK']
- - 'MSSC SSC[1-<node_num>] meshset -K -o 0 -i <allow_roots>'
- ['P SSC[1-<node_num>] C +MESHSET:ALLOW_ROOTS,OK']
- - 'MSSC SSC[1-<node_num>] meshset -J -o 0 -t <assoc_expire>'
- ['P SSC[1-<node_num>] C +MESHSET:ASSOC,OK']
.mesh_set_same_ssid_softap: &mesh_set_same_ssid_softap
LIST_MERGE:
- - 'MSSC SSC[1-3] op -S -o 2'
- ['P SSC[1-3] C +MODE:OK']
- - 'MSSC SSC[1-3] ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum> -n
[<router_channel>,<router_channel>,<wrong_channel>]'
- ['P SSC[1-3] C +SAP:OK']
initial condition:
- tag: MESH_DEINIT_STA
<<: *MESH_INIT_COND
initial condition detail: all DUTs with mesh not inited, station mode
check cmd set:
- ''
- - MSSC SSC[1-<node_num>] mesh -Q
- - P SSC[1-<node_num>] C MESH_STATE_NONE
- - MSSC SSC[1-<node_num>] op -S -o 1
- - P SSC[1-<node_num>] C +MODE:OK
- *mesh_get_all_dut_mac
restore cmd set:
- ''
- - MSSC SSC[1-<node_num>] mesh -I -o 1
- - P SSC[1-<node_num>] C +MESH_DEINITED
- - MSSC SSC[1-<node_num>] op -S -o 1
- - P SSC[1-<node_num>] C +MODE:OK
- *mesh_get_all_dut_mac
force restore cmd set:
- ''
# - - MSSC SSC[1-<node_num>] reboot
- - FREBOOT SSC[1-<node_num>]
- - P SSC[1-<node_num>] C !!!ready!!!
- *mesh_get_all_dut_mac
- tag: MESH_INIT1
<<: *MESH_INIT_COND
initial condition detail: DUTs with mesh network already established, router....
check cmd set:
- ''
- *mesh_get_all_dut_mac
- - VALUE <tree_node_num> <node_num>
- - R PC_COM L OK
- *mesh_check_tree_num
- *mesh_tree_stably
- - MSSC SSC[1-<node_num>] mesh -Q -o 3
- - P SSC[1-<node_num>] RE "MID,%%s"%%(<mesh_id>)
- P SSC[1-<node_num>] RE "MROUTER,%%s"%%(<router_ssid>)
- P SSC[1-<node_num>] RE "SWITCH_PARENT,%%s"%%(<duration_ms>)
- P SSC[1-<node_num>] C NO_SPECIFIC_SETTINGS
restore cmd set:
- ''
- - MSSC SSC[1-<node_num>] mesh -I -o 1
- - P SSC[1-<node_num>] C MESH_DEINITED
- - MSSC SSC[1-<node_num>] op -S -o 1
- - P SSC[1-<node_num>] C +MODE:OK
- *mesh_get_all_dut_mac
- - MSSC SSC[1-<node_num>] mesh -I
- - P SSC[1-<node_num>] C +MESH:INIT,OK
- *mesh_config_all_duts
- - MSSC SSC[1-<node_num>] mesh -T
- - P SSC[1-<node_num>] C +MESH:START,OK
- - DELAY <delay_time>
- - ''
- - VALUE <tree_node_num> <node_num>
- - R PC_COM L OK
- *mesh_check_tree_num
- *mesh_tree_stably
force restore cmd set:
- ''
- - MSSC SSC[1-<node_num>] reboot
- - P SSC[1-<node_num>] C !!!ready!!!
- *mesh_get_all_dut_mac
- - MSSC SSC[1-<node_num>] mesh -I
- - P SSC[1-<node_num>] C +MESH:INIT,OK
- *mesh_config_all_duts
- - MSSC SSC[1-<node_num>] mesh -T
- - P SSC[1-<node_num>] C +MESH:START,OK
- - DELAY <delay_time>
- - ''
- - VALUE <tree_node_num> <node_num>
- - R PC_COM L OK
- *mesh_check_tree_num
- *mesh_tree_stably
- tag: MESH_INIT_SWITCH
<<: *MESH_INIT_COND
initial condition detail: 3 duts in softAP mode with same ssid/password, all duts establish network
check cmd set:
- ''
- - SSC SSC[1-3] ap -Q
- - P SSC[1-3] RE "RE "APCONFIG:%%s"%%(<target_ssid>)
- - MSSC SSC[4-<node_num>] mac
- - R SSC[4-<node_num>] A <device_mac>:\+STAMAC:(.+)\r\n
- - VALUE <tree_node_num> <node_num>-3
- - R PC_COM L OK
- - MSSC SSC[4-<node_num>] mesh -Q -o 2
- - P SSC[4-<node_num>] T topo
- - MESHTREE
- - R PC_COM RE "TREE_TOTAL_NODES:%%s"%%(<tree_node_num>)
- - MSSC SSC[4-<node_num>] mesh -Q -o 3
- P SSC[4-<node_num>] RE "MROUTER,%%s"%%(<target_ssid>)
- - DELAY 5
- - P PC_COM C +DELAYDONE
- P SSC[4-<node_num>] NC MESH_EVENT_DISCONNECTED
restore cmd set:
- ''
- - ASSERT
- - ''
force restore cmd set:
- ''
- - MSSC SSC[1-<node_num>] reboot
- - P SSC[1-<node_num>] C !!!ready!!!
- *mesh_get_all_dut_mac
- *mesh_set_same_ssid_softap
- - MSSC SSC[4-<node_num>] mesh -I
- - P SSC[4-<node_num>] C +MESH:INIT,OK
- - MSSC SSC[4-<node_num>] meshset -M -o 0 -t <map_auth_mode> -e <map_password> -l 10
- - P SSC[4-<node_num>] C +MESHSET:MAP_AUTH,OK
- - MSSC SSC[4-<node_num>] meshset -G -o 0 -m <mesh_id> -s <target_ssid> -p <target_password> -n <try_channel> -h 1 -t
<max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[4-<node_num>] C +MESHSET:CFG,OK
- - MSSC SSC[4-<node_num>] meshset -L -o 0 -l <max_layer>
- - P SSC[4-<node_num>] C +MESHSET:MLAYER,OK
- - MSSC SSC[4-<node_num>] meshset -W -o 0 -t <duration_ms> -n <cnx_rssi> -l <select_rssi> -i <switch_rssi> -k <backoff_rssi>
- - P SSC[4-<node_num>] C +MESHSET:SWITCH,OK
- - MSSC SSC[4-<node_num>] meshset -K -o 0 -i <allow_roots>
- - P SSC[4-<node_num>] C +MESHSET:ALLOW_ROOTS,OK
- - MSSC SSC[4-<node_num>] mesh -T
- - P SSC[4-<node_num>] C +MESH:START,OK
- - DELAY <delay_time>
- - ''
- - VALUE <tree_node_num> <node_num>-3
- - R PC_COM L OK
- - MSSC SSC[4-<node_num>] mesh -Q -o 2
- - P SSC[4-<node_num>] T topo
- - MESHTREE
- - R PC_COM RE "TREE_TOTAL_NODES:%%s"%%(<tree_node_num>)
- - DELAY 10
- - P PC_COM C +DELAYDONE
- P SSC[4-<node_num>] NC MESH_EVENT_DISCONNECTED
- tag: MESH_NO_ROUTER
<<: *MESH_INIT_COND
initial condition detail: DUTs with mesh network already established, router....
check cmd set:
- ''
- *mesh_get_all_dut_mac
- - VALUE <tree_node_num> <node_num>
- - R PC_COM L OK
- *mesh_check_tree_num
- *mesh_tree_stably
- - MSSC SSC[1-<node_num>] mesh -Q -o 3
- - P SSC[1-<node_num>] RE "MID,%%s"%%(<mesh_id>)
- P SSC[1-<node_num>] C NO_ROUTER
restore cmd set:
- ''
- - ASSERT
- - ''
force restore cmd set:
- ''
- - ASSERT
- - ''
- tag: MESH_STABLE
<<: *MESH_INIT_COND
initial condition detail: DUTs with mesh network already established and stable, never restore
check cmd set:
- ''
- *mesh_get_all_dut_mac
- - MSSC SSC[1-<node_num>] mesh -Q -o 2
- - P SSC[1-<node_num>] T topo
- - MESHTREE stable
- - P PC_COM RE "MESHTREE:%%s%20nodes"%%(<node_num>)
restore cmd set:
- ''
- - ASSERT
- - ''
force restore cmd set:
- ''
- - ASSERT
- - ''
File diff suppressed because it is too large Load Diff
@@ -1,76 +1,23 @@
# NOT SUPPORT
# ICMP send Ping not supported
TCPIP_ICMP_0101
TCPIP_ICMP_0101_01
# Bug or not stable cases
# Wifi scan issue
WIFI_SCAN_0303
WIFI_SCAN_0303_01
WIFI_CONN_0302
WIFI_CONN_0302_01
WIFI_MODE_0102
WIFI_MODE_0103
WIFI_ADDR_0102
WIFI_ADDR_0102_01
# IGMP
TCPIP_IGMP_0201
TCPIP_IGMP_0201_01
TCPIP_IGMP_0202
TCPIP_IGMP_0202_01
TCPIP_IGMP_0204
TCPIP_IGMP_0204_01
# TCP
TCPIP_TCP_0401_01_02
# UDP
TCPIP_UDP_0103
TCPIP_UDP_0103_01
TCPIP_UDP_0103_02
TCPIP_UDP_0103_01_02
# BLE
# BT heap size issue
BTSTK_MISC_0301
# SMP
BTSTK_SMP_05001
BTSTK_SMP_05002
BTSTK_SMP_05003
BTSTK_SMP_06004
# multi connect
BTSTK_GAP_10001
BTSTK_GAP_10002
BTSTK_GAP_10003
BTSTK_GAP_10004
BTSTK_GAP_11001
BTSTK_GAP_11002
BTSTK_GAP_12001
BTSTK_GAP_12002
BTSTK_GATT_30001
BTSTK_GATT_30002
BTSTK_GATT_30003
BTSTK_GATT_31001
BTSTK_GATT_31002
BTSTK_GATT_31003
BTSTK_GATT_32001
BTSTK_GATT_32002
BTSTK_GATT_32003
BTSTK_GATT_32004
BTSTK_GATT_33001
BTSTK_GATT_33002
BTSTK_GATT_33003
BTSTK_GATT_34001
BTSTK_GATT_34002
BTSTK_GATT_34003
# GATT read multiple
BTSTK_GATT_27002
BTSTK_GATT_27003
# CI
ESP32.BLUEDROID_GAP_05002
ESP32.BLUEDROID_GAP_05003
ESP32.TCPIP_UDP_0301_01_02
ESP32.TCPIP_UDP_0301_02
ESP32.TCPIP_UDP_0302_01_02
ESP32.TCPIP_UDP_0302_02
ESP32.TCPIP_UDP_0303_01_02
ESP32.TCPIP_UDP_0303_02
ESP32.TCPIP_UDP_0304_01_02
ESP32.TCPIP_UDP_0304_02
ESP32.TCPIP_UDP_0305_01_02
ESP32.TCPIP_UDP_0305_02
ESP32.TCPIP_UDP_0102_01_02
ESP32.TCPIP_UDP_0102_02
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,606 +0,0 @@
.SMP_CASE: &SMP_CASE
SDK: ESP32_IDF
Test App: SSC_BLE
auto test: 'Yes'
category: Function
test point 1: basic function
initial condition: BLE_INIT_SMP
test environment: SSC_T2_5
execution time: 0
module: BLUEDROID
sub module: SMP
version: v1 (2017-05-26)
CI ready: 'Yes'
level: Integration
allow fail: ''
.just_work_pair: &just_work_pair
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
.slave_passkey_entry_pair: &slave_passkey_entry_pair
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
- - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
.master_passkey_entry_pair: &master_passkey_entry_pair
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
- - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
.both_side_passkey_entry_pair: &both_side_passkey_entry_pair
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC[1,2] C +BLESMP:PassKeyReq']
- - "SSC SSC[1,2] blesmp -K -r <dut[2,1]_bt_mac> -a 1 -k 123456"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
.numberic_comparision_pair: &numberic_comparision_pair
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
- - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
.check_connection: &check_connection
LIST_MERGE:
- - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
- ["R SSC1 C +GATTC:Discover,OK"]
.disconnect: &disconnect
LIST_MERGE:
- - "SSC SSC1 bleconn -D -z all"
- ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC2 C +BLECONN:GapDisconnect,OK']
- - "SSC SSC2 bleadv -D -z start"
- ['P SSC2 C +BLEADV:OK']
.connect: &connect
LIST_MERGE:
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
.config_just_work: &config_just_work
LIST_MERGE:
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x00"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
- ['P SSC[1-2] C +BLESMP:OK']
.config_master_passkey_entry: &config_master_passkey_entry
LIST_MERGE:
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
- ['P SSC1 C +BLESMP:OK']
- - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
- ['P SSC2 C +BLESMP:OK']
.config_slave_passkey_entry: &config_slave_passkey_entry
LIST_MERGE:
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
- ['P SSC[1-2] C +BLESMP:OK']
.config_both_side_passkey_entry: &config_both_side_passkey_entry
LIST_MERGE:
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x02"
- ['P SSC[1-2] C +BLESMP:OK']
.config_numberic_comparision: &config_numberic_comparision
LIST_MERGE:
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
- ['P SSC[1-2] C +BLESMP:OK']
.config_bond_device: &config_bond_device
LIST_MERGE:
- - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x01"
- ['P SSC2 C +BLESMP:OK']
- - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
- ['P SSC2 C +BLESMP:OK']
test case:
- ID: BLUEDROID_SMP_04001
<<: *SMP_CASE
test point 2: BLE SMP key test
summary: BLE SMP set key size less than required for BLUEDROID
allow fail: 1/2
steps: |
1. set key size 7
2. set key size 6
3. do just work pair
expected result: |
1. succeed
2. LTK size is 7
3. succeed
cmd set:
- ""
- *config_numberic_comparision
- - "SSC SSC1 blesmp -S -z KeySize -v 0x07"
- ['P SSC1 C +BLESMP:OK']
- - "SSC SSC1 blesmp -S -z KeySize -v 0x06"
- ['P SSC1 C +BLESMP:OK']
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
- - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
- ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
- ID: BLUEDROID_SMP_04002
<<: *SMP_CASE
test point 2: BLE SMP key test
summary: BLE SMP set key size greater than required for BLUEDROID
allow fail: 1/2
steps: |
1. set key size 16
2. set key size 17
3. do just work pair
expected result: |
1. succeed
2. LTK size is 17
3. succeed
cmd set:
- ""
- *config_numberic_comparision
- - "SSC SSC1 blesmp -S -z KeySize -v 0x10"
- ['P SSC1 C +BLESMP:OK']
- - "SSC SSC1 blesmp -S -z KeySize -v 0x11"
- ['P SSC1 C +BLESMP:OK']
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
- - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
- ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
- ID: BLUEDROID_SMP_05001
<<: *SMP_CASE
test point 2: BLE SMP unsuccessful pair reply test
summary: BLE SMP unsuccessful passkey entry test for BLUEDROID
steps: |
1. enter passkey entry phase
2. entry incorrect passkey and accept
3. enter passkey entry phase
4. entry correct passkey and reject
5. enter passkey entry phase
6. send numberic comparision accept
7. enter passkey entry phase
8. send numberic comparision reject
expected result: |
1. succeed
2. pair failed
3. succeed
4. pair failed
5. succeed
6. pair failed
7. succeed
8. pair failed
cmd set:
- ""
- *config_slave_passkey_entry
- - LOOP 2 5 "[1,0]" "['000001','<key>']"
- ""
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
- - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k {%s}"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
- *disconnect
- - LOOP 2 5 "[1,0]"
- ""
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
- - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a {%d}"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
- *disconnect
- ID: BLUEDROID_SMP_05002
<<: *SMP_CASE
test point 2: BLE SMP unsuccessful pair reply test
summary: BLE SMP unsuccessful numberic comparision test for BLUEDROID
steps: |
1. enter numberic comparision phase
2. entry passkey and accept
3. enter numberic comparision phase
4. send numberic comparision reject
expected result: |
1. succeed
2. pair failed
3. succeed
4. pair failed
cmd set:
- ""
- *config_numberic_comparision
- - LOOP 2 6 "[1,0]"
- ""
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
- - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k 000001"
- []
- - DELAY 10
- ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
- *disconnect
- - LOOP 2 5 "[1,0]" "[0,1]"
- ""
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
- - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
- *disconnect
- ID: BLUEDROID_SMP_06001
<<: *SMP_CASE
test environment: SSC_T1_4
initial condition: BLE_DEINIT1
test point 2: BLE SMP use API in abnormal state
summary: BLE SMP use API when BLE not initialized, not enabled or not registered callback for BLUEDROID
steps: |
1. set security parameter
2. send security response
3. send passkey reply
4. send confirm reply
5. init BLE
6. set security parameter
7. send security response
8. send passkey reply
9. send confirm reply
10. init BLE
11. set security parameter
12. send security response
13. send passkey reply
14. send confirm reply
expected result: |
1. failed
2. failed
3. failed
4. failed
5. succeed
6. failed
7. failed
8. failed
9. failed
10. succeed
11. failed
12. failed
13. failed
14. failed
cmd set:
- ""
- - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
- ['P SSC1 C +BLESMP:ERROR']
- - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
- ['P SSC1 C +BLESMP:ERROR']
- - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
- ['P SSC1 C +BLESMP:ERROR']
- - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
- ['P SSC1 C +BLESMP:ERROR']
- - SSC SSC1 bt -D -z init
- ['R SSC1 C +BT:']
- - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
- ['P SSC1 C +BLESMP']
- - SSC SSC1 bt -D -z enable
- ['R SSC1 C +BT:']
- - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
- ['P SSC1 C +BLESMP']
- - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
- ['P SSC1 C +BLESMP']
- ID: BLUEDROID_SMP_07002
<<: *SMP_CASE
test point 2: BLE SMP no bond test and repairing
summary: BLE SMP just work pairing and reboot for BLUEDROID
steps: |
1. DUT1 and DUT2 SMP with just work pair
2. DUT1 reboot
3. DUT1 connect to DUT2
4. DUT2 send auth request
expected result: |
1. succeed
2. succeed
3. succeed
4. failed
cmd set:
- ""
- *config_just_work
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
- - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
- - "SSC SSC1 reboot"
- ['P SSC2 C +BLECONN:GapDisconnect,OK']
- - "SSC SSC1 ble -R"
- ['R SSC1 C +BLE:']
- - "SSC SSC2 bleadv -D -z start"
- ['R SSC2 C +BLEADV:OK']
- *slave_passkey_entry_pair
- ID: BLUEDROID_SMP_07005
<<: *SMP_CASE
test point 2: BLE SMP no bond test and repairing
summary: BLE SMP initiator with master passkey entry and reconnect for BLUEDROID
steps: |
1. DUT1 and DUT2 SMP with master passkey entry
2. DUT1 disconnect
3. DUT1 connect to DUT2
4. DUT2 send auth request
expected result: |
1. succeed
2. succeed
3. connect succeed
4. succeed
cmd set:
- ""
- *config_master_passkey_entry
- *master_passkey_entry_pair
- *disconnect
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLE:GapConnect,OK', 'P SSC2 C +BLE:GapConnect']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
- ID: BLUEDROID_SMP_07006
<<: *SMP_CASE
test point 2: BLE SMP no bond test and repairing
summary: BLE SMP initiator with master passkey entry and reboot for BLUEDROID
steps: |
1. DUT1 and DUT2 SMP bond with lagecy pairing
2. DUT1 reboot
3. DUT1 connect to DUT2
4. DUT2 send auth requst
expected result: |
1. succeed
2. succeed
3. connect succeed
4. fail
cmd set:
- ""
- *config_master_passkey_entry
- *master_passkey_entry_pair
- - "SSC SSC1 reboot"
- ['P SSC2 C +BLECONN:GapDisconnect,OK']
- - "SSC SSC1 ble -R"
- ['R SSC1 C +BLE:']
- - "SSC SSC2 bleadv -D -z start"
- ['R SSC2 C +BLEADV:OK']
- *numberic_comparision_pair
- ID: BLUEDROID_SMP_07007
<<: *SMP_CASE
test point 2: BLE SMP no bond test and repairing
summary: BLE SMP initiator numberic comparision and reconnect for BLUEDROID
steps: |
1. DUT1 and DUT2 SMP with numberic comparision
2. DUT1 disconnect
3. DUT1 connect to DUT2
4. DUT2 send auth requst
expected result: |
1. succeed
2. succeed
3. connect succeed
4. succeed
cmd set:
- ""
- *config_numberic_comparision
- *numberic_comparision_pair
- *disconnect
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
- ['P SSC1 C +BLE:GapConnect,OK', 'P SSC2 C +BLE:GapConnect']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
- ID: BLUEDROID_SMP_07008
<<: *SMP_CASE
test point 2: BLE SMP no bond test and repairing
summary: BLE SMP initiator numberic comparision and reboot for BLUEDROID
steps: |
1. DUT1 and DUT2 SMP with numberic comparision
2. DUT1 disconnect
3. DUT1 and DUT2 reboot
4. DUT2 send auth requst
expected result: |
1. succeed
2. succeed
3. connect succeed
4. failed
cmd set:
- ""
- *config_numberic_comparision
- *numberic_comparision_pair
- - "SSC SSC1 reboot"
- ['P SSC2 C +BLECONN:GapDisconnect,OK']
- - "SSC SSC1 ble -R"
- ['R SSC1 C +BLE:']
- - "SSC SSC2 bleadv -D -z start"
- ['R SSC2 C +BLEADV:OK']
- *numberic_comparision_pair
- ID: BLUEDROID_SMP_08001
<<: *SMP_CASE
test point 2: BLE SMP bond item management test
summary: BLE SMP get bond list and number without bond device for BLUEDROID
steps: |
1. DUT1 get bond list
2. DUT1 get bond number
expected result: |
1. succeed
2. succeed
cmd set:
- ""
- - "SSC SSC1 blesmp -B -z getlist -n 1"
- ['P SSC1 C +BLESMP:GetBondList,OK,0']
- - "SSC SSC1 blesmp -B -z getnum"
- ['P SSC1 C +BLESMP:GetBondNum,0']
- ID: BLUEDROID_SMP_08002
<<: *SMP_CASE
test point 2: BLE SMP bond item management test
summary: BLE SMP remove bond after connected
steps: |
1. DUT2 set AuthReqMode and RspKey
2. pairing
3. remove bond
expected result: |
1. Succeed
2. Succeed
3. Succeed
cmd set:
- ""
- *config_bond_device
- - "SSC SSC2 bleadv -D -z start"
- ['R SSC2 C +BLEADV:Start,OK']
- *connect
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
- - "SSC SSC1 blesmp -B -z getnum"
- ['P SSC1 C +BLESMP:GetBondNum,1']
- - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
- ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
- ID: BLUEDROID_SMP_08003
<<: *SMP_CASE
test point 2: BLE SMP bond item management test
summary: BLE SMP get bond list and number when pairing and after reboot for BLUEDROID
steps: |
1. all slaves set AuthReqMode and RspKey
2. do pairing
3. master and slave get bond list and num
4. reboot
5. master and slave get bond list and num
6. slave remove bond device
expected result: |
1. Succeed
2. Succeed
3. Succeed
4. succeed
5. succeed
6. succeed
test environment: SSC_T5_1
initial condition: BLE_INIT_SMP5
allow fail: 3/5
cmd set:
- ""
- - "SSC SSC[2-5] blesmp -S -z AuthReqMode -v 0x01"
- ['P SSC[2-5] C +BLESMP:OK']
- - "SSC SSC[2-5] blesmp -S -z IOCAP -v 0x03"
- ['P SSC[2-5] C +BLESMP:OK']
- - "SSC SSC[2-5] blesmp -S -z RspKey -v 0x03"
- ['P SSC[2-5] C +BLESMP:OK']
- - LOOP 4 4 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
- ""
- - "SSC SSC{%d} bleadv -D -z start"
- ['R SSC{%d} C +BLEADV:Start,OK']
- - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC{%d} C +BLECONN:GapConnect']
- - "SSC SSC{%d} blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC1 C +BLESMP:SecReq']
- - "SSC SSC1 blesmp -R -a 1 -r <dut{%d}_bt_mac>"
- ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC{%d} C +BLESMP:AuthComplete,Success,0']
- - "SSC SSC1 blesmp -B -z getlist -n 4"
- ['P SSC1 C +BLESMP:GetBondList,OK,4']
- - "SSC SSC1 blesmp -B -z getnum"
- ['P SSC1 C +BLESMP:GetBondNum,4']
- - "SSC SSC2 blesmp -B -z getnum"
- ['P SSC2 C +BLESMP:GetBondNum,1']
- - "SSC SSC[1-2] reboot"
- ['R SSC[1-2] C !!!ready!!!']
- - "SSC SSC[1-2] ble -R"
- ["R SSC[1-2] C +BLE:OK"]
- - "SSC SSC1 blesmp -B -z getnum"
- ['P SSC1 C +BLESMP:GetBondNum,4']
- - "SSC SSC2 blesmp -B -z getnum"
- ['P SSC2 C +BLESMP:GetBondNum,1']
- - "SSC SSC2 blesmp -B -z remove -r <dut1_bt_mac>"
- ['P SSC2 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut1_bt_mac>)']
- ID: BLUEDROID_SMP_08004
<<: *SMP_CASE
test point 2: BLE SMP bond item management test
summary: BLE SMP remove bond which not bond for BLUEDROID
steps: |
1. DUT1 remove bond
expected result: |
1. failed
cmd set:
- ""
- - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
- ['P SSC1 C +BLESMP:RemoveBond,Fail']
- ID: BLUEDROID_SMP_08005
<<: *SMP_CASE
test point 2: BLE SMP remove bond
summary: BLE SMP bond 15/16 devices and get list
steps: |
1. DUT2 set AuthReqMode and RspKey
2. DUT2 set static random address
3. DUT1 and DUT2 do pairing
4. loop step 2 and step3 16 times
5. get bond list and bond num
6. DUT2 set static random address
7. DUT1 and DUT2 do pairing
8. get bond list and bond num
expected result: |
1. Succeed
2. Succeed
3. Succeed
4. succeed
5. succeed
6. succeed
7. succeed
8. succeed
cmd set:
- ""
- - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x01"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x03"
- ['P SSC[1-2] C +BLESMP:OK']
- - "SSC SSC[1-2] blesmp -S -z RspKey -v 0x03"
- ['P SSC[1-2] C +BLESMP:OK']
- - LOOP 15 7 "range(0,15)" "range(0,15)" "range(0,15)"
- ""
- - "SSC SSC2 bleadv -D -z stop"
- ['R SSC2 C +BLEADV:Stop,OK']
- - "SSC SSC2 ble -S -z randAddr -a c0:9b:0e:36:6d:7{%x} -r 1"
- ["R SSC2 C +BLECONN:SetRandAddr,OK"]
- - "SSC SSC2 bleadv -D -z start -o 1"
- ['R SSC2 C +BLEADV:Start,OK']
- - "SSC SSC1 bleconn -C -p 0x10 -a c0:9b:0e:36:6d:7{%x} -r 1"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC1 C +BLESMP:SecReq']
- - "SSC SSC1 blesmp -R -a 1 -r c0:9b:0e:36:6d:7{%x}"
- ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
- - "SSC SSC1 bleconn -D -z all"
- ['P SSC1 C +BLE:CLOSE', 'P SSC2 C +BLECONN:GapDisconnect,OK']
- - "SSC SSC1 blesmp -B -z getlist -n 16"
- ['P SSC1 C +BLESMP:GetBondList,OK,15']
- - "SSC SSC2 ble -S -z randAddr -a c1:0a:d3:25:7a:cf -r 1"
- ["R SSC2 C +BLECONN:SetRandAddr,OK"]
- - "SSC SSC2 bleadv -D -z stop"
- ['R SSC2 C +BLEADV:Stop,OK']
- - "SSC SSC2 bleadv -D -z start -o 1"
- ['R SSC2 C +BLEADV:Start,OK']
- - "SSC SSC1 bleconn -C -p 0x10 -a c1:0a:d3:25:7a:cf -r 1"
- ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
- - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
- ['P SSC1 C +BLESMP:SecReq']
- - "SSC SSC1 blesmp -R -a 1 -r c1:0a:d3:25:7a:cf"
- ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
- - "SSC SSC1 blesmp -B -z getlist -n 16"
- ['P SSC1 C +BLESMP:GetBondList,OK,15']
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,529 +0,0 @@
.MISC_CASE: &MISC_CASE
SDK: ESP32_IDF
Test App: SSC_BLE_WIFI
auto test: 'Yes'
category: Function
test point 1: basic function
initial condition: BLE_DEINIT1
test environment: SSC_T1_1
execution time: 0
module: BT Stack
sub module: Misc
version: v1 (2016-12-31)
CI ready: 'Yes'
level: Integration
allow fail: ''
test cases:
- ID: BTSTK_MISC_0101
<<: *MISC_CASE
test point 2: bt host init and enable
summary: correct host init and deinit flow
steps: |
1. disable and deinit bt
2. init bt
3. deinit bt
4. init and enable bt
5. disable and deinit bt
expected result: |
1. succeed
2. succeed
3. succeed
4. succeed
5. succeed
cmd set:
- ""
- - "SSC SSC1 bt -D -z stop"
- ["R SSC1 C +BT"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z start"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z stop"
- ["R SSC1 C +BT:OK"]
- ID: BTSTK_MISC_0102
<<: *MISC_CASE
test point 2: bt host init and enable
summary: incorrect host deinit disable flow
steps: |
1. disable and deinit bt
2. init and enable bt
3. deinit bt
4. disable bt
5. disable bt
6. deinit bt
7. deinit bt
8. disable bt
expected result: |
1. succeed
2. succeed
3. fail
4. succeed
5. fail
6. succeed
7. fail
8. fail
cmd set:
- ""
- - "SSC SSC1 bt -D -z stop"
- ["R SSC1 C +BT"]
- - "SSC SSC1 bt -D -z start"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z disable"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z disable"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z disable"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_0103
<<: *MISC_CASE
test point 2: bt host init and enable
summary: incorrect host init enable flow
steps: |
1. disable and deinit bt
2. enable bt
3. init bt
4. init bt
5. enable bt
6. enable bt
7. init bt
expected result: |
1. succeed
2. fail
3. succeed
4. fail
5. succeed
6. fail
7. fail
cmd set:
- ""
- - "SSC SSC1 bt -D -z stop"
- ["R SSC1 C +BT"]
- - "SSC SSC1 bt -D -z enable"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z enable"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z enable"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_0201
<<: *MISC_CASE
test point 2: bt controller init test
summary: bt controller init test
steps: |
1. bt controller init
expected result: |
1. OK
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- ID: BTSTK_MISC_0202
<<: *MISC_CASE
test point 2: bt controller deinit test
summary: bt controller deinit test
steps: |
1. bt controller init
2. bt controller deinit
expected result: |
1. OK
2. OK
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z deinit"
- ["R SSC1 C +BTC:OK"]
- ID: BTSTK_MISC_0203
<<: *MISC_CASE
test point 2: bt host init test
summary: bt host init test
steps: |
1. bt controller init
2. bt controller enable
3. bt host init
expected result: |
1. +BTC:OK
2. +BTC:OK
3. +BT:OK
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- ID: BTSTK_MISC_0204
<<: *MISC_CASE
test point 2: bt host deinit test
summary: bt host deinit test
steps: |
1. bt controller init
2. bt controller enable
3. bt host init
4. bt host deinit
expected result: |
1. OK
2. OK
3. OK
4. OK
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:OK"]
- ID: BTSTK_MISC_0301
<<: *MISC_CASE
test point 2: heap size unchanged after bt controller stop
summary: heap size unchanged after bt controller stop
steps: |
1.get current heap size
2.bt controller init
3.enable bt controller
4.bt host init
5.enable bt host
6.disable bt host
7.bt host deinit
8.disable bt controller
9.bt controller deinit
10.check current heap size
expected result: |
1. +FREEHEAP
2.OK
3.OK
4.OK
5.OK
6.OK
7.OK
8.OK
9.OK
10.heap size unchanged
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 ram -Q"
- ['R SSC1 A <heapsize>:\+FREEHEAP:(\d+)\r\n']
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z enable"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z disable"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z deinit"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 btc -D -z disable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z deinit"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 ram -Q"
- ['R SSC1 P <heapsize>']
- ID: BTSTK_MISC_0401
<<: *MISC_CASE
test point 2: bt controller init and enable
summary: incorrect controller init enable flow
steps: |
1. disable and deinit btc
2. enable btc
3. init btc
4. init btc
5. enable btc
6. enable btc
7. init btc
expected result: |
1. succeed
2. fail
3. succeed
4. fail
5. succeed
6. fail
7. fail
initial condition: WIFIBTSTOP
cmd set:
- ""
- - "SSC SSC1 btc -D -z stop"
- ["R SSC1 C +BTC"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:ERROR"]
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:ERROR"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:ERROR"]
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:ERROR"]
- ID: BTSTK_MISC_0402
<<: *MISC_CASE
test point 2: bt controller init and enable
summary: correct controller init and deinit flow
steps: |
1. disable and deinit btc
2. init btc
3. deinit btc
4. init and enable btc
5. disable and deinit btc
expected result: |
1. succeed
2. succeed
3. succeed
4. succeed
5. succeed
cmd set:
- ""
- - "SSC SSC1 btc -D -z stop"
- ["R SSC1 C +BTC"]
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z deinit"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z start"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z stop"
- ["R SSC1 C +BTC:OK"]
- ID: BTSTK_MISC_0403
<<: *MISC_CASE
test point 2: bt controller init and enable
summary: incorrect controller deinit disable flow
steps: |
1. disable and deinit btc
2. init and enable btc
3. deinit btc
4. disable btc
5. disable btc
expected result: |
1. succeed
2. succeed
3. fail
4. succeed
5. fail
cmd set:
- ""
- - "SSC SSC1 btc -D -z stop"
- ["R SSC1 C +BTC"]
- - "SSC SSC1 btc -D -z start"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z deinit"
- ["R SSC1 C +BTC:ERROR"]
- - "SSC SSC1 btc -D -z disable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z disable"
- ["R SSC1 C +BTC:ERROR"]
- ID: BTSTK_MISC_0501
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT memory
steps: |
1. DUT1 release BT mem
2. DUT1 init and enable btc
expected result: |
1. succeed
2. fail
initial condition: BTC_DEINIT1
cmd set:
- ""
- - "SSC SSC1 bt -R -m 1"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 btc -D -z start -m 2"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z start -m 1"
- ["R SSC1 C +BTC:ERROR"]
- ID: BTSTK_MISC_0502
<<: *MISC_CASE
test point 2: bt mem release
summary: release BLE memory
steps: |
1. DUT1 release BT mem
2. DUT1 init and enable btc
expected result: |
1. succeed
2. fail
initial condition: BTC_DEINIT1
cmd set:
- ""
- - "SSC SSC1 bt -R -m 2"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 btc -D -z start -m 1"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z start -m 2"
- ["R SSC1 C +BTC:ERROR"]
- ID: BTSTK_MISC_0503
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT and BLE memory
steps: |
1. DUT1 release BT mem
2. DUT1 init and enable btc
expected result: |
1. succeed
2. fail
initial condition: BTC_DEINIT1
cmd set:
- ""
- - "SSC SSC1 bt -R -m 3"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 btc -D -z start -m 3"
- ["R SSC1 C +BTC:ERROR"]
- ID: BTSTK_MISC_0504
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT memory after bt controller init
initial condition: BTC_DEINIT1
steps: |
1. DUT1 init bt controller
2. DUT1 release BT memory
3. DUT1 release BLE memory
4. DUT1 release BT and BLE memory
expected result: |
1. succeed
2. fail
3. fail
4. fail
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 bt -R -m 1"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 2"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 3"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_0505
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT memory after bt controller enable and bluedriod disable
initial condition: BTC_DEINIT1
steps: |
1. DUT1 init and enable bt controller
2. DUT1 release BT memory
3. DUT1 release BLE memory
4. DUT1 release BT and BLE memory
expected result: |
1. succeed
2. fail
3. fail
4. fail
cmd set:
- ""
- - "SSC SSC1 btc -D -z init"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 btc -D -z enable"
- ["R SSC1 C +BTC:OK"]
- - "SSC SSC1 bt -R -m 1"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 2"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 3"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_0506
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT memory after bt controller enable and bluedriod init
steps: |
1. DUT1 init bluedriod
2. DUT1 release BT memory
3. DUT1 release BLE memory
4. DUT1 release BT and BLE memory
expected result: |
1. succeed
2. fail
3. fail
4. fail
cmd set:
- ""
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -R -m 1"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 2"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 3"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_0507
<<: *MISC_CASE
test point 2: bt mem release
summary: release BT memory after bt controller enable and bluedriod enable
steps: |
1. DUT1 init and enable bluedriod
2. DUT1 release BT memory
3. DUT1 release BLE memory
4. DUT1 release BT and BLE memory
expected result: |
1. succeed
2. fail
3. fail
4. fail
cmd set:
- ""
- - "SSC SSC1 bt -D -z init"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -D -z enable"
- ["R SSC1 C +BT:OK"]
- - "SSC SSC1 bt -R -m 1"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 2"
- ["R SSC1 C +BT:ERROR"]
- - "SSC SSC1 bt -R -m 3"
- ["R SSC1 C +BT:ERROR"]
- ID: BTSTK_MISC_5001
<<: *MISC_CASE
category: Performance
test point 1: performance + stress
test point 2: BT Controller Performance test
summary: bt controller init and deinit Performance test
execution time: 6
steps: |
1.get current heap size
2.bt controller init
3.enable bt controller
4.bt host init
5.enable bt host
6.disable bt host
7.bt host deinit
8.disable bt controller
9.bt controller deinit
10.loop step1 to step 9
expected result: |
1. +FREEHEAP
2.OK
3.OK
4.OK
5.OK
6.OK
7.OK
8.OK
9.OK
10.heap size unchanged
cmd set:
- "BLEStress/BLEInitDeinitPerformance"
- - "test_time = 420"
- ""
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,867 +0,0 @@
.MESH_CASE: &MESH_CASE
SDK: ESP32_IDF
Test App: SSC_MESH
auto test: 'Yes'
category: Function
test point 1: basic function
initial condition: MESH_DEINIT_STA
test environment: SSC_T50_MESH1
execution time: 0.0
module: Mesh
sub module: Misc
version: v1 (2018-08-15)
CI ready: 'No'
level: Integration
allow fail: ''
.set_softap_dut1: &set_softap_dut1
LIST_MERGE:
- - 'SSC SSC1 op -S -o 2'
- ['P SSC1 C +MODE:OK']
- - 'SSC SSC1 ap -S -s <target_ssid> -p <target_password> -n <router_channel> -t <target_auth_enum>'
- ['P SSC1 C +SAP:OK']
- - 'SSC SSC1 dhcp -E -o 2'
- ['R SSC1 C +DHCP:AP,OK']
- - 'SSC SSC1 ip -S -o 2 -i 192.168.123.1'
- ['R SSC1 C +IP:OK']
- - 'SSC SSC1 dhcp -S -o 2'
- ['R SSC1 C +DHCP:AP,OK']
test cases:
- ID: MESH_MISC_0101
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -I -o 1
- - P SSC1 C +MESH:DEINIT,OK
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 init/config mesh
2. dut1 deinit mesh
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: 1 dut mesh deinit after mesh configured
test point 2: mesh deinit/stop test
CI ready: 'Yes'
- ID: MESH_MISC_0102
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - DELAY 1 5
- - ''
- - SSC SSC1 mesh -I -o 1
- - P SSC1 C +MESH:DEINIT,OK
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh
2. dut1 deinit mesh
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: 1 dut mesh deinit after mesh started
test point 2: mesh deinit/stop test
CI ready: 'Yes'
- ID: MESH_MISC_0103
<<: *MESH_CASE
cmd set:
- ''
- - MSSC SSC[1-<node_num>] mesh -I
- - P SSC[1-<node_num>] C +MESH:INIT,OK
- - MSSC SSC[1-<node_num>] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-<node_num>] C +MESHSET:CFG,OK
- - MSSC SSC[1-<node_num>] mesh -T
- - P SSC[1-<node_num>] C +MESH:START,OK
- - DELAY 1 5
- - ''
- - MSSC SSC[1-<node_num>] mesh -T -o 1
- - P SSC[1-<node_num>] C +MESH:STOP,OK
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh
2. dut1 stop mesh
initial condition: MESH_DEINIT_STA
test environment: SSC_T6_MESH1
summary: 6 duts mesh stop after mesh started
test point 2: mesh deinit/stop test
CI ready: 'Yes'
- ID: MESH_MISC_0104
<<: *MESH_CASE
cmd set:
- ''
- - MSSC SSC[1-<node_num>] mesh -T -o 2
- - P SSC[1-<node_num>] C +MESH:START,OK
- - DELAY <delay_time>
- - ''
- - MSSC SSC[1-<node_num>] mesh -Q -o 2
- - P SSC[1-<node_num>] T topo
- - MESHTREE
- - R PC_COM RE "MESHTREE:%%s"%%(<node_num>)
- - SSC MNODE(0) meshsend -S -d <MNODE(0,-1)_mac> -l 1000 -c 20 -b 20 -f 2
- - P MNODE(0) C +MESHTXPKT,OK C +MESHSEND,OK
- P MNODE(0,-1) C +MESHRXPKT,OK
- - SSC MNODE(0,-1) meshsend -S -d <server_mac> -l 1000 -c 20 -b 20 -f 8
- - P MNODE(0,-1) C +MESHTXPKT,OK C +MESHSEND,OK
- P MNODE(0) C TODS_PKT,OK
- - SSC MNODE(0) mesh -R -o 1
- - P MNODE(0) C +MESHRX:STOP,OK
- - SSC MNODE(0,-1) meshsend -S -d <server_mac> -l 1000 -c 100 -b 20 -f 8
- - ''
- - DELAY 10
- - P PC_COM C DELAYDONE
- P MNODE(0,-1) C +MESHTXPKT,OK NC +MESHTXPKT,FAIL NC +MESHSEND,OK
- - SSC MNODE(0) mesh -R -o 0
- - P MNODE(0) C +MESHRX:START,OK C TODS_PKT,OK
- P MNODE(0,-1) C +MESHSEND,OK
expected result: |-
1. restart mesh and establish network
2. root send packet to leaf
3. leaf send packet tods
4. stop recv task on root
5. leaf send packet tods, blocked
5. start recv task on root, leaf send out all packet
steps: |-
1. dut1 start mesh
2. dut1 stop mesh
initial condition: MESH_INIT1
test environment: SSC_T6_MESH1
summary: mesh restart and send packet test
test point 2: mesh deinit/stop test
CI ready: 'No'
- ID: MESH_MISC_0201
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - DELAY 10
- - P SSC1 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
expected result: |-
1. succeed
2. succeed
steps: |-
1. start dut1 and connect to router
2. check MESH_EVENT_ROOT_GOT_IP
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: MESH_EVENT_CHILD_CONNECTED and MESH_EVENT_ROOT_GOT_IP test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0202
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC[1-2] mesh -I
- - P SSC[1-2] C +MESH:INIT,OK
- - SSC SSC[1-2] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-2] C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - DELAY 10
- - P SSC1 C MESH_EVENT_CONNECTED,1
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK C MESH_EVENT_CONNECTED,2
- P SSC1 C MESH_EVENT_CHILD_CONNECTED C MESH_EVENT_ROUTING_TABLE_ADD
expected result: |-
1. succeed
2. succeed
steps: |-
1. start dut1 to be root first
2. start another and check event on dut1
initial condition: MESH_DEINIT_STA
test environment: SSC_T2_MESH1
summary: MESH_EVENT_CHILD_CONNECTED and MESH_EVENT_ROUTING_TABLE_ADD test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0203
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC[1-3] mesh -I
- - P SSC[1-3] C +MESH:INIT,OK
- - SSC SSC[1-3] meshset -G -o 0 -m <mesh_id2> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t 1 -e <map_password> -i <ie_encrypt>
- - P SSC[1-3] C +MESHSET:CFG,OK
- - SSC SSC[1-2] mesh -T
- - P SSC[1-2] C +MESH:START,OK
- - DELAY 10
- - P SSC[1-2] C MESH_EVENT_CONNECTED
- - SSC SSC3 mesh -T
- - P SSC3 C +MESH:START,OK C MESH_EVENT_CONNECTED,3
- P SSC[1-2] C MESH_EVENT_ROUTING_TABLE_ADD
expected result: |-
1. succeed
2. succeed
steps: |-
1. set max_connect=1 and two duts start mesh and establish network
2. start another and check event on dut1
initial condition: MESH_DEINIT_STA
test environment: SSC_T3_MESH1
summary: MESH_EVENT_ROUTING_TABLE_ADD test (layer3 join)
test point 2: mesh event test
CI ready: 'Yes'
#TODO: wrong password should not find MESH_EVENT_ROUTING_TABLE_ADD
- ID: MESH_MISC_0205
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0,0) reboot
- - P MNODE(0,0) C !!!ready!!!
- P MNODE(0) C MESH_EVENT_CHILD_DISCONNECTED
- P MNODE(0) C MESH_EVENT_ROUTING_TABLE_REMOVE
expected result: |-
1. succeed
2. succeed
steps: |-
1. reboot root
2. layer2 disconnected and then become new root
initial condition: MESH_INIT1
test environment: SSC_T2_MESH1
summary: MESH_EVENT_CHILD_DISCONNECTED and MESH_EVENT_ROUTING_TABLE_REMOVE test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0206
<<: *MESH_CASE
cmd set:
- ''
- - FREBOOT MNODE(0,0)
- - P MNODE(0,0) C !!!ready!!!
- - DELAY 10
- - P MNODE(0) C MESH_EVENT_CHILD_DISCONNECTED
- P MNODE(0) C MESH_EVENT_ROUTING_TABLE_REMOVE
expected result: |-
1. succeed
2. succeed
steps: |-
1. reboot root
2. layer2 disconnected and then become new root
initial condition: MESH_INIT1
test environment: SSC_T2_MESH1
summary: MESH_EVENT_CHILD_DISCONNECTED and MESH_EVENT_ROUTING_TABLE_REMOVE test (power reset)
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0207
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0,0) mesh -I -o 1
- - P MNODE(0,0) C MESH:DEINIT,OK
- P MNODE(0) C MESH_EVENT_CHILD_DISCONNECTED
- P MNODE(0) C MESH_EVENT_ROUTING_TABLE_REMOVE
expected result: |-
1. succeed
2. succeed
steps: |-
1. reboot root
2. layer2 disconnected and then become new root
initial condition: MESH_INIT1
test environment: SSC_T2_MESH1
summary: MESH_EVENT_CHILD_DISCONNECTED and MESH_EVENT_ROUTING_TABLE_REMOVE test (mesh deinit)
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0208
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0,0,0) reboot
- - P MNODE(0,0,0) C !!!ready!!!
- P MNODE(0,0) C MESH_EVENT_ROUTING_TABLE_REMOVE
- P MNODE(0) C MESH_EVENT_ROUTING_TABLE_REMOVE
expected result: |-
1. succeed
2. succeed
steps: |-
1. reboot root
2. layer2 disconnected and then become new root
initial condition: MESH_INIT1
test environment: SSC_T12_MESH1
summary: MESH_EVENT_ROUTING_TABLE_REMOVE test (layer3 leave)
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0209
<<: *MESH_CASE
cmd set:
- ''
- - LOOP 2 1 "[1,0]" "[1,0]"
- - ''
- - SSC MNODE(0) mesh -O -t {%d}
- - P MNODE(0) C +MESH_POST_STATE,OK
- P SSC[1-<node_num>] C MESH_EVENT_TODS_STATE,{%d}
- - SSC MNODE(0) mesh -O -t 0
- - P MNODE(0) C +MESH_POST_STATE,OK
- - DELAY 5
- - P PC_COM C DELAYDONE
- P SSC[1-<node_num>] NC MESH_EVENT_TODS_STATE
expected result: |-
1. succeed
2. succeed
3. succeed
steps: |-
1. establish mesh network
2. root post toDS state
3. check MESH_EVENT_TODS_STATE on all dut
initial condition: MESH_INIT1
test environment: SSC_T2_MESH1
summary: MESH_EVENT_TODS_STATE test when root post state
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0210
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC[1-2] mesh -I
- - P SSC[1-2] C +MESH:INIT,OK
- - SSC SSC[1-2] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-2] C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - DELAY 10
- - P SSC1 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
- - SSC SSC1 mesh -O -t 1
- - P SSC1 C +MESH_POST_STATE,OK
- P SSC1 C MESH_EVENT_TODS_STATE,1
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK MESH_EVENT_CONNECTED,2
- P SSC2 C MESH_EVENT_TODS_STATE,1
- - SSC SSC1 reboot
- - P SSC2 C MESH_EVENT_DISCONNECTED
- P SSC2 C MESH_EVENT_NETWORK_STATE,1
expected result: |-
1. succeed
2. succeed
3. succeed
steps: |-
1. establish mesh network
2. root post toDS state
3. check MESH_EVENT_TODS_STATE on all dut
initial condition: MESH_DEINIT_STA
test environment: SSC_T2_MESH1
summary: MESH_EVENT_TODS_STATE test when layer2 connected and root disappear
test point 2: mesh event test
CI ready: 'Yes'
# TODO: not work on v3.1
- ID: MESH_MISC_0211
<<: *MESH_CASE
cmd set:
- ''
- - LOOP 2 1 "[1,0]" "[1,0]"
- - ''
- - SSC MNODE(0) mesh -O -t {%d}
- - P MNODE(0) C +MESH_POST_STATE,OK
- P SSC[1-<node_num>] C MESH_EVENT_TODS_STATE,{%d}
expected result: |-
1. succeed
2. succeed
3. succeed
steps: |-
1. establish mesh network
2. root post toDS state
3. check MESH_EVENT_TODS_STATE on all duts
initial condition: MESH_INIT1
test environment: SSC_T50_MESH1
summary: multiple nodes, MESH_EVENT_TODS_STATE test
test point 2: mesh event test
CI ready: 'No'
- ID: MESH_MISC_0212
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C MESH_EVENT_STARTED
- - DELAY 5
- - ''
- - SSC SSC1 mesh -T -o 1
- - P SSC1 C MESH_EVENT_STOPPED
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh
2. check MESH_EVENT_STARTED on dut1
2. dut1 stop mesh
2. check MESH_EVENT_STOPPED on dut1
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: MESH_EVENT_STARTED and MESH_EVENT_STOPPED test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0213
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<wrong_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - DELAY 10
- - P SSC1 C MESH_EVENT_NO_PARENT_FOUND
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh
2. check MESH_EVENT_STARTED on dut1
2. dut1 stop mesh
2. check MESH_EVENT_STOPPED on dut1
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: MESH_EVENT_NO_PARENT_FOUND test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0214
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 meshset -O -o 0 -n 0 -t 0
- - P SSC1 C +MESHSET:SELF_ORG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - SSC SSC1 sta -S -n <router_channel>
- - P SSC1 C MESH_EVENT_SCAN_DONE
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh self_organized=false
2. wifi scan
2. check MESH_EVENT_SCAN_DONE on dut1
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: MESH_EVENT_SCAN_DONE test
test point 2: mesh event test
CI ready: 'No'
#TODO: need discussion
- ID: MESH_MISC_0215
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0) mesh -W -o 1
- - P MNODE(0) C +MESH:VOTE,OK
- P SSC[1-<node_num>] C MESH_EVENT_VOTE_STARTED
- - DELAY 10
- - P SSC[1-<node_num>] C MESH_EVENT_VOTE_STOPPED
expected result: |-
1. succeed
2. succeed
steps: |-
1. root vote
2. check all duts start vote
initial condition: MESH_INIT1
test environment: SSC_T6_MESH1
summary: MESH_EVENT_VOTE_STARTED and MESH_EVENT_VOTE_STOPPED test
test point 2: mesh event test
CI ready: 'No'
- ID: MESH_MISC_0216
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0) mesh -W -o 1
- - P MNODE(0) C +MESH:VOTE,OK
- P SSC[1-<node_num>] C MESH_EVENT_VOTE_STARTED
- - SSC MNODE(0) reboot
- - P MNODE(0) !!!ready!!!
- - DELAY 30
- - ''
- - SSC SSC[1-<node_num>] mesh -W -o 2
- - P SSC[1-<node_num>] C VOTE_START_STOP_EQUAL
expected result: |-
1. succeed
2. succeed
steps: |-
1. dut1 start mesh self_organized=false
2. wifi scan
2. check MESH_EVENT_SCAN_DONE on dut1
initial condition: MESH_INIT1
test environment: SSC_T50_MESH1
summary: multiple nodes, MESH_EVENT VOTE_STARTED and VOTE_STOPPED equal test
test point 2: mesh event test
CI ready: 'No'
#TODO: need discussion
- ID: MESH_MISC_0217
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0) mesh -W -o 1
- - P MNODE(0) C +MESH:VOTE,OK
- P SSC[1-<node_num>] C MESH_EVENT_VOTE_STARTED
- - DELAY 10
- - P SSC[1-<node_num>] C MESH_EVENT_VOTE_STOPPED
expected result: |-
1. succeed
2. succeed
steps: |-
1. root vote
2. check all duts start vote
initial condition: MESH_INIT1
test environment: SSC_T50_MESH1
summary: multiple nodes, MESH_EVENT_VOTE_STARTED and MESH_EVENT_VOTE_STOPPED test
test point 2: mesh event test
- ID: MESH_MISC_0218
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0) meshset -X -o 0 -i 1
- - P MNODE(0) C +MESHSET:FIX_ROOT,OK
- P SSC[1-<node_num>] C MESH_EVENT_ROOT_FIXED,1
- - SSC MNODE(0) meshset -X -o 0 -i 0
- - P MNODE(0) C +MESHSET:FIX_ROOT,OK
- P SSC[1-<node_num>] C MESH_EVENT_ROOT_FIXED,0
expected result: |-
1. succeed
2. succeed
steps: |-
1. set root fix on root
2. check all duts MESH_EVENT_ROOT_FIXED
initial condition: MESH_INIT1
test environment: SSC_T6_MESH1
summary: stable network, MESH_EVENT_ROOT_FIXED test
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0219
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC[1-2] mesh -I
- - P SSC[1-2] C +MESH:INIT,OK
- - SSC SSC[1-2] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-2] C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- P SSC1 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
- - SSC SSC1 meshset -X -o 0 -i 1
- - P SSC1 C +MESHSET:FIX_ROOT,OK C MESH_EVENT_ROOT_FIXED,1
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK
- P SSC2 C MESH_EVENT_CONNECTED,2 C MESH_EVENT_ROOT_FIXED,1
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
steps: |-
1. set dut1 fix root first
2. dut2 connected with dut1
3. check MESH_EVENT_ROOT_FIXED on dut2
initial condition: MESH_DEINIT_STA
test environment: SSC_T2_MESH1
summary: MESH_EVENT_ROOT_FIXED when connected with parent
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0220
<<: *MESH_CASE
cmd set:
- ''
- - SSC MNODE(0) meshset -X -o 0 -i 1
- - P MNODE(0) C +MESHSET:FIX_ROOT,OK
- P SSC[1-<node_num>] C MESH_EVENT_ROOT_FIXED,1
- - SSC MNODE(0) meshset -X -o 0 -i 0
- - P MNODE(0) C +MESHSET:FIX_ROOT,OK
- P SSC[1-<node_num>] C MESH_EVENT_ROOT_FIXED,0
expected result: |-
1. succeed
2. succeed
steps: |-
1. set root fix on root
2. check all duts MESH_EVENT_ROOT_FIXED
initial condition: MESH_INIT1
test environment: SSC_T50_MESH1
summary: multiple nodes, MESH_EVENT_ROOT_FIXED test
test point 2: mesh event test
CI ready: 'No'
- ID: MESH_MISC_0221
<<: *MESH_CASE
cmd set:
- ''
- - SSC SSC[1-2] mesh -I
- - P SSC[1-2] C +MESH:INIT,OK
- - SSC SSC[1-2] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-2] C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- P SSC1 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
- - SSC SSC1 ap -Q
- - R SSC1 A <meshap_ssid>:\+APCONFIG:(\w+),
- - SSC SSC2 meshset -U -o 0 -m <mesh_id2> -s <meshap_ssid> -p <map_password> -n <router_channel> -t 2 -l 2
- - P SSC2 C +MESHSET:PARENT,OK
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK
- P SSC2 C MESH_EVENT_DISCONNECTED,103
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
steps: |-
1. mesh init/config
2. start dut1 and check it connected with router
3. dut2 parent set to dut1 with wrong mesh_id
4. start dut2 and check disconnected rason DIFF_ID
test environment: SSC_T2_MESH1
summary: test MESH_EVENT_DISCONNECTED, reason DIFF_ID(103)
test point 2: mesh event test
CI ready: 'Yes'
- ID: MESH_MISC_0301
<<: *MESH_CASE
cmd set:
- ''
- - SOC SOC1 LISTEN <test_tcp_port1>
- - R SOC_COM L OK
- - SSC MNODE(0) soc -B -t TCP -p <test_tcp_port1>
- - P MNODE(0) A <sock_id>:\+BIND:(\d+),OK
- - SSC MNODE(0) soc -C -s <sock_id> -i <pc_ip> -p <test_tcp_port1>
- - P MNODE(0) RE \+CONNECT:\d+,OK
- - SOC SOC1 ACCEPT SOC2
- - R SOC_COM L OK
- - SSC MNODE(0) soc -S -s <sock_id> -l 1460 -n 10 -j 20
- - P MNODE(0) RE \+SEND:\d+,OK
- - SOC SOC2 SEND 1460
- - R MNODE(0) SL <sock_id>+1460
expected result: |-
1. succeed
2. succeed
steps: |-
1. root connect to pc
2. root send pecket to pc
initial condition: MESH_INIT1
test environment: SSC_T1_MESH2
summary: use socket TCP between root and pc
test point 2: socket after mesh start
- ID: MESH_MISC_0302
<<: *MESH_CASE
cmd set:
- ''
- - SOC SOC1 BIND <test_udp_port1> <pc_ip>
- - R SOC_COM L OK
- - SSC MNODE(0) ip -Q
- - P MNODE(0) A <sta_ip>:\+STAIP:(\d+.\d+.\d+.\d+)
- - SSC MNODE(0) soc -B -t UDP -i <sta_ip> -p <test_udp_port1>
- - P MNODE(0) A <sock1>:\+BIND:(\d+),OK
- - SSC MNODE(0) soc -S -s <sock1> -l 1460 -n 10 -i <pc_ip> -p <test_udp_port1> -j 20
- - P MNODE(0) RE \+SEND:\d+,OK
- P SOC1 UL 14600
- - DELAY 5
- ''
- - SOC SOC1 SENDTO 1460 <test_udp_port1> <sta_ip>
- - R MNODE(0) RE "RECVFROM:%%s,1460,%%s,%%u"%%(<sock1>,<pc_ip>,<test_udp_port1>)
expected result: |-
1. succeed
2. succeed
steps: |-
1. root connect to pc
2. root send pecket to pc
initial condition: MESH_INIT1
test environment: SSC_T1_MESH2
summary: use socket UDP between root and pc
test point 2: socket after mesh start
CI ready: 'No'
- ID: MESH_MISC_0303
<<: *MESH_CASE
cmd set:
- ''
- *set_softap_dut1
- - SSC SSC2 mesh -I
- - P SSC2 C +MESH:INIT,OK
- - SSC SSC2 meshset -G -o 0 -m <mesh_id> -s <target_ssid> -p <target_password> -n
<router_channel> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC2 C +MESHSET:CFG,OK
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK
- P SSC2 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
- - SSC SSC1 ip -Q
- - P SSC1 A <ssc1_ip>:\+APIP:(\d+.\d+.\d+.\d+)
- - SSC SSC[1-2] soc -T
- - P SSC[1-2] C +CLOSEALL
- - SSC SSC1 soc -B -t TCP -p <test_tcp_port1>
- - P SSC1 A <sock_id>:\+BIND:(\d+),OK
- - SSC SSC1 soc -L -s <sock_id>
- - P SSC1 RE \+LISTEN:\d+,OK
- - SSC SSC2 soc -B -t TCP
- - P SSC2 A <client_sock>:\+BIND:(\d+),OK
- - SSC SSC2 soc -C -s <client_sock> -i <ssc1_ip> -p <test_tcp_port1>
- - P SSC2 RE \+CONNECT:\d+,OK
- P SSC1 A <server_sock>:\+ACCEPT:(\d+)
- - SSC SSC1 soc -S -s <server_sock> -l 1460 -n 10
- - P SSC1 RE \+SEND:\d+,OK
- - SSC SSC2 soc -S -s <client_sock> -l 1460 -n 10
- - P SSC2 RE \+SEND:\d+,OK
expected result: |-
1. succeed
2. succeed
steps: |-
1. set dut1 softAP
2. dut2 start mesh and connect to dut1
3. use TCP between dut1 and dut2
initial condition: MESH_DEINIT_STA
test environment: SSC_T2_MESH1
summary: use socket TCP between root and esp32 softAP
test point 2: socket after mesh start
CI ready: 'Yes'
- ID: MESH_MISC_0304
<<: *MESH_CASE
cmd set:
- ''
- *set_softap_dut1
- - SSC SSC2 mesh -I
- - P SSC2 C +MESH:INIT,OK
- - SSC SSC2 meshset -G -o 0 -m <mesh_id> -s <target_ssid> -p <target_password> -n
<router_channel> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC2 C +MESHSET:CFG,OK
- - SSC SSC2 mesh -T
- - P SSC2 C +MESH:START,OK
- P SSC2 C MESH_EVENT_CONNECTED,1 C MESH_EVENT_ROOT_GOT_IP
- - SSC SSC1 ip -Q
- - P SSC1 A <ssc1_ip>:\+APIP:(\d+.\d+.\d+.\d+)
- - SSC SSC2 ip -Q
- - P SSC2 A <ssc2_ip>:\+STAIP:(\d+.\d+.\d+.\d+)
- - SSC SSC[1-2] soc -T
- - P SSC[1-2] C +CLOSEALL
- - SSC SSC1 soc -B -t UDP -i <ssc1_ip> -p <test_udp_port1>
- - P SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC2 soc -B -t UDP -i <ssc2_ip> -p <test_udp_port1>
- - P SSC2 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC1 soc -S -s <sock1> -l 1460 -n 10 -i <ssc2_ip> -p <test_udp_port1>
- - P SSC1 RE \+SEND:\d+,OK
- - SSC SSC2 soc -S -s <sock2> -l 1460 -n 10 -i <ssc1_ip> -p <test_udp_port1>
- - P SSC2 RE \+SEND:\d+,OK
expected result: |-
1. succeed
2. succeed
3. succeed
steps: |-
1. set dut1 softAP
2. dut2 start mesh and connect to dut1
3. use UDP between dut1 and dut2
initial condition: MESH_DEINIT_STA
test environment: SSC_T2_MESH1
summary: use socket UDP between root and esp32 softAP
test point 2: socket after mesh start
CI ready: 'Yes'
- ID: MESH_MISC_5001
<<: *MESH_CASE
category: Stress
cmd set:
- ''
- - SSC SSC1 ram
- - R SSC1 C +FREEHEAP
- - LOOP 300 8
- - ''
- - SSC SSC1 mesh -I
- - P SSC1 C +MESH:INIT,OK
- - SSC SSC1 meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC1 C +MESHSET:CFG,OK
- - SSC SSC1 mesh -T
- - P SSC1 C +MESH:START,OK
- - SSC SSC1 ram
- - R SSC1 C +FREEHEAP
- - DELAY 1 15
- - ''
- - SSC SSC1 mesh -T -o 1
- - P SSC1 C +MESH:STOP,OK
- - DELAY 2
- - ''
- - SSC SSC1 ram
- - R SSC1 C +FREEHEAP
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
5. succeed
6. succeed
7. succeed
steps: |-
1. mesh init
2. mesh config
3. mesh start
4. check heap size
5. mesh stop
6. check heap size
7. loop
initial condition: MESH_DEINIT_STA
test environment: SSC_T1_MESH1
summary: cycle calling mesh_stop/mesh_start, check heap size
test point 2: mesh deinit/stop test
- ID: MESH_MISC_5002
<<: *MESH_CASE
category: Stress
cmd set:
- ''
- - SSC SSC[1-6] ram
- - R SSC[1-6] C +FREEHEAP
- - LOOP 200 8
- - ''
- - SSC SSC[1-6] mesh -I
- - P SSC[1-6] C +MESH:INIT,OK
- - SSC SSC[1-6] meshset -G -o 0 -m <mesh_id> -s <router_ssid> -p <router_password> -n
<router_channel> -b <router_bssid> -t <max_connect> -e <map_password> -i <ie_encrypt>
- - P SSC[1-6] C +MESHSET:CFG,OK
- - SSC SSC[1-6] mesh -T
- - P SSC[1-6] C +MESH:START,OK
- - SSC SSC[1-6] ram
- - R SSC[1-6] C +FREEHEAP
- - DELAY 5 30
- - ''
- - SSC SSC[1-6] mesh -T -o 1
- - P SSC[1-6] C +MESH:STOP,OK
- - DELAY 2
- - ''
- - SSC SSC[1-6] ram
- - R SSC[1-6] C +FREEHEAP
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
steps: |-
1. all duts start mesh
2. check heap size
3. mesh stop and check heap size
4. loop
initial condition: MESH_DEINIT_STA
test environment: SSC_T6_MESH1
summary: 6 duts cycle eatablish network and stop mesh, check heap size
test point 2: mesh deinit/stop test
@@ -1,81 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: SYS_MISC_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 reboot
- - R SSC1 C !!!ready!!!
execution time: 0.0
expected result: 重启成功
initial condition: None
level: Integration
module: System
steps: 系统重启
sub module: Misc
summary: test reboot function
test environment: SSC_T1_4
test point 1: basic function
test point 2: sw reboot
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: SYS_MISC_0201
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ram -H
- - R SSC1 RE FREEHEAP:\d+\r\n
execution time: 0.0
expected result: |2
可以查询到一个数值
initial condition: None
level: Integration
module: System
steps: 查询空闲ram
sub module: Misc
summary: get heap size test
test environment: SSC_T1_4
test point 1: basic function
test point 2: 'get heap size '
version: v1 (2016-8-15)
- CI ready: 'No'
ID: SYS_MISC_5001
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set: ''
execution time: 12.0
expected result: 4.target1正常运行,无异常
initial condition: None
level: Integration
module: System
steps: |-
1.target1、target2通过UART与PC相连接
2.target1的晶振为40MHz晶振,烧录SDK的时候选择26MHz晶振
3.target2的GPIO PIN脚通过排线与target1的电源相连接,target1与target2 GND通过排线连接
4.PC发送命令控制target2使GPIO不停的拉高拉低
sub module: Misc
summary: random reboot to confirm default init data bin will not overwrite user
config
test environment: SSC_T1_InitData
test point 1: stress
test point 2: reboot when using user defined init data bin
version: v1 (2016-8-15)
@@ -1,57 +0,0 @@
test cases:
- CI ready: SpecialJob
ID: SYS_NVS_01001
SDK: ESP32_IDF
Test App: SSC_BLE_WIFI
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- NVSTest/NVSCompatibleWiFi
- - nvs_path = "nvs_bin_folder"
- - ''
execution time: 0
expected result: |
1. succeed
2. succeed
3. succeed
4. succeed
initial condition: None
level: Integration
module: System
steps: |
1. get NVS data from earlier released branches and last master
2. download each NVS data to target
3. check if auto connected to the same AP
4. check if SoftAP config is correct
sub module: NVS
summary: use old NVS data WIFI function test
test environment: SSC_T1_5
test point 1: compatiable test
test point 2: test if latest SDK work with pervious version of NVS data
version: v1 (2017-06-01)
- CI ready: 'No'
ID: SYS_NVS_5001
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: Reboot
auto test: 'Yes'
category: Stress
cmd set: ''
execution time: 12.0
expected result: 3.无异常发生
initial condition: None
level: Integration
module: System
steps: |-
1.target1、target2通过UART与PC相连接
2.target2的GPIO PIN脚通过排线与target1的电源相连接,target1与target2 GND通过排线连接
3.PC发送命令控制target2使GPIO不停的拉高拉低
sub module: NVS
summary: random reboot when access NVS
test environment: NVS_T1_1
test point 1: stress
test point 2: reboot when accessing NVS
version: v1 (2016-8-15)
@@ -1,995 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: TCPIP_DHCP_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -E -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 ip -S -i 0.0.0.0
- - R SSC1 C +IP
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - ''
- - DELAY 20
- - P PC_COM C +DELAYDONE
- P SSC1 NC +JAP:CONNECTED
- - SSC SSC1 dhcp -S -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 ip -Q
- - R SSC1 C +STAIP:0.0.0.0
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 C +JAP:CONNECTED
- - SSC SSC1 ip -Q
- - R SSC1 RE "\+STAIP:%%s"%%(<target_ip>)
execution time: 0.0
expected result: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1
打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
initial condition: STAM1
level: Integration
module: TCPIP
steps: "1.target1 关闭DHCP OK\n2.target1 设置ip add OK\n3.target1 连接AP fail\n4.target1
打开DHCP OK\n5.查询到sta ip \n6.target1 连接AP ok\n7.查询到sta ip 为target_ip"
sub module: DHCP
summary: dhcp client function test
test environment: SSC_T1_5
test point 1: basic function
test point 2: DHCP client function test
version: v2 (2016-10-19)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0103
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 op -S -o 3
- - R SSC1 C +MODE:OK
- - SSC SSC1 dhcp -S -o 3
- - R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK
- - SSC SSC1 dhcp -Q -o 3
- - R SSC1 C +DHCP:STA,STARTED C +DHCP:AP,STARTED
- - SSC SSC1 dhcp -Q -o 1
- - R SSC1 C +DHCP:STA,STARTED NC +DHCP:AP,STARTED
- - SSC SSC1 dhcp -Q -o 2
- - R SSC1 NC +DHCP:STA,STARTED C +DHCP:AP,STARTED
- - SSC SSC1 dhcp -E -o 3
- - R SSC1 C +DHCP:AP,OK C +DHCP:STA,OK
- - SSC SSC1 dhcp -Q -o 3
- - R SSC1 C +DHCP:STA,STOPPED C +DHCP:AP,STOPPED
execution time: 0.0
expected result: |-
1.OK
2.OK
3.STA&AP STARTED
4.STA STARTED
5.AP STARTED
6.OK
7.STA&AP STOPPED
initial condition: STAM1
level: Integration
module: TCPIP
steps: |-
1.target1 设置mode 为sta+softAP mode
2.target1 打开DHCP 3
3.target1 查询DHCP 状态
4.target1 查询sta DHCP 状态
5.target1 查询softAP DHCP 状态
6.target1 关闭 DHCP 3
7.target1 查询 DHCP 状态
sub module: DHCP
summary: dhcp status query
test environment: SSC_T1_4
test point 1: basic function
test point 2: DHCP client function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0201
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
- - R SSC1 C +IP:OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -L -s 192.168.4.1 -e 192.168.4.10
- - R SSC1 C +DHCP:LEASE,ERROR
- - SSC SSC1 dhcp -L -s 192.168.4.5 -e 192.168.4.2
- - R SSC1 C +DHCP:LEASE,ERROR
- - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.5
- - R SSC1 C +DHCP:LEASE,ERROR
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
execution time: 0.0
expected result: |-
1.target1 关闭DHCP 2 OK
2.target1 设置ip 成功
3.设置dhcp 地址池 OK
4.ERROR
5.ERROR
6.ERROR
7.target1 打开DHCP ok
initial condition: APM1
level: Integration
module: TCPIP
steps: "1.target1 关闭DHCP 2 \n2.target1 设置ip \n3.设置dhcp 地址池\n4.设置dhcp错误的参数\n5.设置dhcp错误的参数\n6.设置dhcp错误的参数\n7.target1
打开DHCP ok"
sub module: DHCP
summary: server dhcp lease test
test environment: SSC_T1_4
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0202
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - LOOP 3 4 "['01','02','03']" "[2,3,4]"
- - ''
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.{%s}
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3,4: get IP from dhcp pool with correct sequence
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. config DHCP Server on Target1
3. target change mac, connect to Target1
4. Loop step3
sub module: DHCP
summary: dhcp server ip pool
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0203
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - LOOP 2 4 "['01','02']" "[2,3]"
- - ''
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.{%s}
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
- - R SSC2 C +MAC:STA,OK
- - DELAY 20
- - ''
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:0.0.0.0
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4.1 succeed
4.2 failed
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. config DHCP Server on Target1(.4.2 - .4.3)
3. target change mac, connect to Target1
4. Loop step3 twice
sub module: DHCP
summary: dhcp server ip pool empty
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0204
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.2
- - DELAY 90
- - ''
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.2
- - SSC SSC2 sta -D
- - R SSC2 C +JAP:DISCONNECTED
- - DELAY 60
- - ''
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.2
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. get IP 192.168.4.2
5. succeed
6. succeed
8. get IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. config DHCP timeout as 1 minute
3. target2 connect to target1
4. wait 90 seconds
5. check if target2 IP is same
6. target2 disconnect
7. wait 60s
8. target2 change mac and connect to target1
sub module: DHCP
summary: dhcp server timeout test
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0205
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.3 -t 1
- - P SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - P SSC1 C +DHCP:AP,OK
- P SSC2 C +JAP:DISCONNECTED
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. target2 wifi disconnected
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1
3. disable DHCP server, do config and enable
sub module: DHCP
summary: disconnect STA if config dhcp server
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0206
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - LOOP 4 4 "['01','02','03','01']" "[2,3,4,2]"
- - ''
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:{%s}
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.{%s}
execution time: 0.0
expected result: |-
1. succeed
2. succeed
4. get IP 192.168.4.2 - 192.168.4.4
5. get IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. disable DHCP server, do config and enable
3. target2 change mac, connect to softap, disconnect
4. Loop step3 twice
5. change to first mac, connect to softap
sub module: DHCP
summary: dhcp server assign same IP to same MAC when it's not released
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0207
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - WIFI <pc_wifi_nic> DISCONN2
- - R PC_COM NC ERROR C +WIFIDISCONN:OK
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.2
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. get IP 192.168.4.2
4. succeed
5. succeed
6. get IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. disable DHCP server, do config and enable
3. PC WIFI NIC connect to target1 softap
4. target2 connect to target1 softap and disnnect
5. PC release IP and disconnected
6. target2 change mac and connect to target1
sub module: DHCP
summary: dhcp server prefer assign released IP to new client
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0207
SDK: ESP32_IDF
Test App: SSC
allow fail: '1/2'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - WIFI <pc_wifi_nic> DISCONN2
- - R PC_COM NC ERROR C +WIFIDISCONN:OK
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC2 mac -S -o 1 -m 10:22:33:44:55:66
- - R SSC2 C +MAC:STA,OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 ip -Q -o 1
- - R SSC2 C +STAIP:192.168.4.2
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. get IP 192.168.4.2
4. succeed
5. succeed
6. succeed
7. get IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. disable DHCP server, do config and enable
3. PC WIFI NIC connect to target1 softap
4. target2 connect to target1 softap and disnnect
5. PC release IP and disconnected
6. disable DHCP server and enable
7. target2 change mac and connect to target1
sub module: DHCP
summary: dhcp server prefer assign released IP to new client
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0208
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - P SSC1 C +DHCP:AP,OK
- P SSC2 C +JAP:DISCONNECTED
- - SSC SSC2 sta -D
- - R SSC2 C +JAP:DISCONNECTED
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC1 ap -L
- - R SSC1 C 192.168.4.2 P <pc_wifi_nic_mac>
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. get IP 192.168.4.2
5. can only find target2 with IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1 softap
3. disable DHCP server, do config and enable
4. PC NIC connect to target1 softap
5. softap list connected station
sub module: DHCP
summary: dhcp server reconfig and new client able to get first IP in pool
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0208
SDK: ESP32_IDF
Test App: SSC
allow fail: '2/3'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - P SSC1 C +DHCP:AP,OK
- P SSC2 C +JAP:DISCONNECTED
- - SSC SSC2 sta -D
- - R SSC2 C OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC1 ap -L
- - R SSC1 C 192.168.4.2 P <pc_wifi_nic_mac>
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
5. succeed
6. succeed
7. can only find target2 with IP 192.168.4.2
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1 softap
3. disable DHCP server, do config and enable
4. target2 disconnect
5. disable DHCP server and enable
6. PC NIC connect to target1 softap
7. softap list connected station
sub module: DHCP
summary: dhcp server reconfig and new client able to get first IP in pool
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0209
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: '2/3'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - DELAY 20
- - ''
- - SSC SSC1 ap -L
- - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
5. find target2 and PC
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1 softap
3. disable DHCP server, do config and enable
4. PC NIC connect to target1 softap
5. softap list connected station
sub module: DHCP
summary: dhcp server reconfig, old client and new client able to get IP
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0210
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: '1/2'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - WIFI <pc_wifi_nic> CONN2 <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC1 ap -L
- - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
5. find target2 and PC
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1 softap
3. disable DHCP server, do config and enable
4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
5. softap list connected station
sub module: DHCP
summary: dhcp server reconfig, old client able to get IP (discover with requested
IP)
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0211
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: '1/2'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <random_string> -p <random_string> -t 4
- - R SSC1 C +SAP:OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.100
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - WIFI <pc_wifi_nic> CONN <random_string> <random_string> 192.168.4.2
- - R PC_COM NC ERROR C +WIFICONN:OK
- - SSC SSC2 sta -C -s <random_string> -p <random_string>
- - R SSC2 C +JAP:CONNECTED
- - DELAY 30
- - ''
- - SSC SSC1 ap -L
- - R SSC1 C 192.168.4.2 C 192.168.4.3 P <pc_wifi_nic_mac> P <target2_mac>
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. succeed
5. find target2 and PC
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. config softap to a random ssid
2. target2 connect to target1 softap
3. disable DHCP server, do config and enable
4. PC NIC connect to target1 softap try to renew IP 192.168.4.2
5. softap list connected station
sub module: DHCP
summary: dhcp server reconfig, old client able to renew IP (direct send request)
test environment: SSC_T2_2
test point 1: basic function
test point 2: DHCP server function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0212
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - ''
- - DELAY 20
- - P PC_COM C +DELAYDONE
- P SSC2 NC +JAP:CONNECTED
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - R SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target
1,FAIL \n4.target1 打开DHCP OK\n5.target2 jap target 1,ok"
initial condition: T2_1
level: Integration
module: TCPIP
steps: "1.target1 set AP OK \n2.target1 关闭DHCP OK\n3.target2 jap target 1,FAIL \n4.target1
打开DHCP OK\n5.target2 jap target 1,ok"
sub module: DHCP
summary: dhcp server function test
test environment: SSC_T2_5
test point 1: basic function
test point 2: DHCP server function test
version: v2 (2016-10-19)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0301
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -E -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 ip -S -i 192.168.123.123 -o 1
- - R SSC1 C +IP:OK
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 C +JAP:CONNECTED
- - SSC SSC1 ip -S -i 0.0.0.0 -o 1
- - R SSC1 C +IP
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - ''
- - DELAY 10
- - P PC_COM C +DELAYDONE
- P SSC1 NC +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.OK
2.OK
3.JAP CONNETED
4.OK
5.等待10sJAP fail
initial condition: STAM1
level: Integration
module: TCPIP
steps: |-
1.target1 关闭DHCP 1
2.target1 设置sta ip 192.168.123.123
4.target1 jap AP
5.target1 设置sta ip 0.0.0.0
6.target1 jap AP
sub module: DHCP
summary: sta dhcp static ip interaction
test environment: SSC_T1_5
test point 1: interaction
test point 2: static IP and DHCP interaction test
version: v2 (2016-10-19)
- CI ready: 'Yes'
ID: TCPIP_DHCP_0302
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 ip -S -i 192.168.123.123 -o 2
- - R SSC1 C +IP:ERROR
- - SSC SSC1 dhcp -L -s 192.168.2.2 -e 192.168.2.10
- - R SSC1 C +DHCP:LEASE,ERROR
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 ip -S -i 192.168.4.1 -o 2
- - R SSC1 C +IP:OK
- - SSC SSC1 dhcp -L -s 192.168.4.2 -e 192.168.4.10
- - R SSC1 C +DHCP:LEASE,OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - ''
- - DELAY 10
- - P PC_COM C +DELAYDONE
- P SSC2 NC +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.target 1 OK
2.target1 ERROR
3.target1 ERROR
4.target2 jap target1 OK
5.target1 OK
6.target1 OK
7.target1 OK
8.target2 jap target1 OK
initial condition: T2_1
level: Integration
module: TCPIP
steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n3.target1 设置地址池\n4.target1下设置ssid
和pwd 加密方式\n5.target2 连接target1 \n6.target1 关闭DHCP 2\n7.target1 设置softAP ip \n8.target1
设置正确的地址池\n9.target2 连接target1 "
sub module: DHCP
summary: ap dhcp static ip interaction
test environment: SSC_T2_5
test point 1: interaction
test point 2: static IP and DHCP interaction test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: TCPIP_DHCP_5001
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/SoftAPNSTA
- - sta_num = 4
- - dummy
- - max_sta = 3
- - ''
- - test_time = 300
- - ''
- - delay1 = [5, 60]
- - ''
- - delay2 = [1, 10]
- - ''
- - change_mac = False
- - ''
- - channel = 11
- - ''
execution time: 5.0
expected result: "1. succeed\n2. succeed\n3. JAP succeed except: \nsoftap reach
max connected AP \nor all address in dhcp pool not available"
initial condition: None
level: Integration
module: TCPIP
steps: |-
1. 1 target set to softap mode and rest set to sta mode
2. set a short dhcp server lease time
2. all sta set random mac, random join and disconnect from softap
Loop step 2
sub module: DHCP
summary: max sta connect to SotfAP and disconnect, sta number more than sta allowed
test environment: SSC_T5_1
test point 1: stress
test point 2: DHCP server stress test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: TCPIP_DHCP_5101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
auto test: 'No'
category: IOT
cmd set: ''
execution time: 0.1
expected result: |-
2. 成功
3. 成功
4. 断开连接并开始重连
5. WIFI连上但无法获取 IP,等大概1分钟后,发生 DHCP TIMEOUT,断开连接并重连,成功获取到 IP
initial condition: STAM1
level: Integration
module: TCPIP
steps: |-
1. 使用小米路由器青春版进行测试
2. 设置DHCP timeoutdhcp -T -n 6
3. target 连上 AP
4. 路由器断电
5. 路由器上电
sub module: DHCP
summary: DHCP timeout test on sepcial router
test environment: SSC_T1_IOT1
test point 1: interoperability
test point 2: DHCP timeout test
version: v1 (2016-8-15)
@@ -1,447 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: TCPIP_DNS_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: 1/2
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -H -d gbot.espressif.cn
- - R SSC1 C +HOSTIP:OK,118.31.185.120
execution time: 0.0
expected result: 1.OK
initial condition: STAM2
level: Integration
module: TCPIP
steps: 1. get host name "gbot.espressif.cn"
sub module: DNS
summary: get host by name test
test environment: SSC_T1_2
test point 1: basic function
test point 2: DNS function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_DNS_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: 1/2
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -H -d gbot.espressif.cn
- - R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n
- - SSC SSC1 soc -B -t TCP
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -C -s <sock1> -i <ip_addr> -p 9001
- - R SSC1 RE \+CONNECT:\d+,OK
- - SSC SSC1 soc -S -s <sock1> -l 10
- - P SSC1 RE \+SEND:\d+,OK
- P SSC1 SL <sock1>+10
execution time: 0.0
expected result: |-
1.OK
2.OK
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. get host name "gbot.espressif.cn"
2. connect, send, recv
sub module: DNS
summary: TCP connect to gbot.espressif.cn
test environment: SSC_T1_2
test point 1: basic function
test point 2: DNS function test
version: v2 (2016-10-19)
- CI ready: 'Yes'
ID: TCPIP_DNS_0103
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: 1/2
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -H -d gbot.espressif.cn
- - R SSC1 A <ip_addr>:\+HOSTIP:OK,(.+)\r\n
- - SSC SSC1 soc -B -t UDP
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -S -s <sock1> -i <ip_addr> -p 9003 -l 10 -n 3 -j 1000
- - P SSC1 RE \+SEND:\d+,OK
- P SSC1 SL <sock1>+10
execution time: 0.0
expected result: |-
1.OK
2.send OK and recv at least one echo
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. get host name "espressif.cn"
2. sendto echo server 3 times
sub module: DNS
summary: UDP send to gbot.espressif.cn
test environment: SSC_T1_2
test point 1: basic function
test point 2: DNS function test
version: v2 (2016-10-19)
- CI ready: 'No'
ID: TCPIP_DNS_0201
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'No'
category: Function
cmd set: ''
execution time: 0.1
expected result: 2. failed
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP的主、备用DNS server均设置为错误
2.target连接上AP 并访问正确的域名
sub module: DNS
summary: get host name with error DNS server
test environment: SSC_T1_2
test point 1: abnormal/special use
test point 2: use special DNS server config
version: v1 (2016-8-15)
- CI ready: 'No'
ID: TCPIP_DNS_0202
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'No'
category: Function
cmd set: ''
execution time: 0.1
expected result: 2. succeed
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP的主DNS server设置为错误,备用DNS server设置为正确
2.target连接上AP 并访问正确的域名
sub module: DNS
summary: get host name with error main DNS server and correct backup DNS server
test environment: SSC_T1_2
test point 1: abnormal/special use
test point 2: use special DNS server config
version: v1 (2016-8-15)
- CI ready: 'No'
ID: TCPIP_DNS_0301
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "fallback_main_backup_dns_all_error"
- ['']
- - fallback_dns_option = "error"
- ['']
- - test_option = "main_backup_error"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "1.1.1.1"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
2.mode set ok
3.connect ap sucess
4.set fallback dns ok
5.get dns ip fail
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main,backup DNS all error
2.set SSC1 to sta mode
3.SSC1 connect to ap
4.set SSC1 fallback DNS
5.SSC1 get website dns IP
sub module: DNS
summary: DNS fallback main backup DNS all error test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0302
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "fallback_dns_error_mian_backup_dns_right"
- ['']
- - fallback_dns_option = "error"
- ['']
- - test_option = "main_backup_right"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "2.2.2.2"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
2.mode set ok
3.connect ap sucess
4.set fallback dns ok
5.get dns ip ok
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main,backup DNS all right
2.set SSC1 to sta mode
3.SSC1 connect to ap
4.set SSC1 fallback DNS
5.SSC1 get website dns IP
sub module: DNS
summary: DNS fallback DNS error main backup DNS right test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0303
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "fallback_main_dns_error_backup_dns_right"
- ['']
- - fallback_dns_option = "error"
- ['']
- - test_option = "backup_right"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "1.1.1.1"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
2.mode set ok
3.connect ap sucess
4.set fallback dns ok
5.get dns ip ok
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main DNS error,backup DNS right
2.SSC1 set as sta mode
3.SSC1 connect to ap
4.set SSC1 fallback DNS
5.SSC1 get website dns IP
sub module: DNS
summary: DNS fallback main DNS error backup DNS right test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0304
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "fallback_main_backup_dns_all_right"
- ['']
- - fallback_dns_option = "right"
- ['']
- - test_option = "main_backup_right"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "208.67.222.222"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
2.mode set ok
3.connect ap sucess
4.set fallback dns ok
5.get dns IP ok
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main ,backup DNS right
2.SSC1 set as sta mode
3.SSC1 connect to ap
4.set SSC1 fallback DNS
5.SSC1 get website dns IP
sub module: DNS
summary: DNS fallback main backup DNS all right test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0305
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "fallback_dns_right_main_backup_error"
- ['']
- - fallback_dns_set = "right"
- ['']
- - fallback_dns_option = "right"
- ['']
- - test_option = "main_backup_error"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "208.67.222.222"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
2.mode set ok
3.connect ap sucess
4.set fallback dns ok
5.get dns IP ok
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main ,backup DNS all error
2.SSC1 set as mode
3.SSC1 connect to ap
4.set SSC1 fallback DNS
5.SSC1 get website dns IP
sub module: DNS
summary: DNS fallback DNS right main backup error test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0306
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "dns_dhcp_option"
- ['']
- - test_count = 20
- [dummy]
- - fallback_dns = "208.67.222.222"
- ['']
- - website_dns = "www.baidu.com"
- ['']
execution time: 0.3
expected result: |-
1.ap set ok
2.set sta mode ok
3.jap ok
4.disable dhcp ok
5.set static ip addr suc
6.set fallback dns suc
7.get dns ip suc
8.dhcp start suc
9.get dns ip ok
11.jap ok
12.get dns ip ok
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.AP main ,backup DNS all right
2.set SSC1 to sta mode
3.SSC1 connect to ap
4.SSC1 disable dhcp
5.SSC1 set static ip addr
6.SSC1 set fallback dns
7.SSC1 get website dns IP
8.SSC1 start dhcp
9.SSC1 get website dns IP
10.SSC1 disconnect with ap
11.SSC1 reconnet ap
12.SSC1 get website dns IP
sub module: DNS
summary: DNS DHCP option test
test environment: SSC_T1_DNS
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
- CI ready: 'No'
ID: TCPIP_DNS_0307
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stable
cmd set:
- DNSTest/DNSTest
- - test_mode = "softap_dns_test"
- ['']
- - test_count = 20
- [dummy]
- - main_dns = "208.67.222.222"
- ['']
execution time: 0.3
expected result: |-
1.set mode ok
2.set mode ok
3.sta connect softap suc
4.disable dhcp ok
5.set dns server suc
6.set main dns suc
7.SSC2 main dns must the same as SSC1
initial condition: None
level: Integration
module: TCPIP
steps: |-
1.SSC1 set as softap
2.SSC2 set as sta
3.SSC2 connected softap
4.SSC1 disable dhcp
5.SSC1 dhcp action dns server
6.SSC1 set main dns
7.check SSC2 main dns server
sub module: DNS
summary: DNS softap DNS test
test environment: SSC_T2_1
test point 1: stress + function
test point 2: DNS stress test
version: v2 (2016-10-23)
@@ -1,68 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: TCPIP_ICMP_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: 1/5
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ping -i <pc_ip>
- - R SSC1 C +PING:OK
- - SSC SSC1 ping -i <pc_ip> -c 2
- - R SSC1 C +PING:OK
execution time: 0.0
expected result: |-
1.ok
2.ok
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1.ping -i <pc_ip>
2.ping -i <pc_ip> -c 2
sub module: ICMP
summary: ping function test
test environment: SSC_T1_5
test point 1: basic function
test point 2: ping function test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: TCPIP_ICMP_5001
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- TCPIPStress/PingStress
- - test_time = 300
- - dummy
- - test_freq = 0.2
- - ''
- - ping_len = 64
- - ''
- - target_mode = "STA"
- - ''
execution time: 5.0
expected result: |-
1. send succeed
2. recv ping reply
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. PC send ping request to target
2. PC check if received ping reply
sub module: ICMP
summary: ping target and check for ping reply
test environment: SSC_T1_1
test point 1: stress
test point 2: ICMP ping stress test
version: v1 (2016-11-15)
@@ -1,719 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: TCPIP_IGMP_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -J -h <target_ip> -m 223.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h <target_ip> -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |-
1. success
2. failed
3. failed
4. failed
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. join group with correct host addr and multicast addr
2. join group with correct host addr and wrong multicast addr
3. join group with wrong host addr and correct multicast addr
4. join group with wrong host addr and wrong multicast addr
sub module: IGMP
summary: station IGMP join group address check
test environment: SSC_T1_5
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.2
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. success
2. failed
3. failed
4. failed
5. succeed
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. join group with correct host addr and multicast addr
2. leave group with correct host addr and wrong multicast addr
3. leave group with wrong host addr and correct multicast addr
4. leave group with wrong host addr and wrong multicast addr
5. leave group with correct host addr and correct multicast addr
sub module: IGMP
summary: station IGMP leave group address check
test environment: SSC_T1_5
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0103
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 223.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h 192.168.237.77 -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -J -h 192.168.237.77 -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |-
1. success
2. failed
3. failed
4. failed
initial condition: APM2
level: Integration
module: TCPIP
steps: |-
1. join group with correct host addr and multicast addr
2. join group with correct host addr and wrong multicast addr
3. join group with wrong host addr and correct multicast addr
4. join group with wrong host addr and wrong multicast addr
sub module: IGMP
summary: softAP IGMP join group address check
test environment: SSC_T1_8
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0104
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.2
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h 192.168.237.77 -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h 192.168.237.77 -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. success
2. failed
3. failed
4. failed
5. succeed
initial condition: APM2
level: Integration
module: TCPIP
steps: |-
1. join group with correct host addr and multicast addr
2. leave group with correct host addr and wrong multicast addr
3. leave group with wrong host addr and correct multicast addr
4. leave group with wrong host addr and wrong multicast addr
5. leave group with correct host addr and correct multicast addr
sub module: IGMP
summary: softAP IGMP leave group address check
test environment: SSC_T1_7
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0201
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SOC SOC1 BIND <test_udp_port1>
- - R SOC_COM L OK
- - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
- - R SSC1 SL <sock1>+1
- - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. able to recv packet
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. join group
2. create UDP socket using multicast addr
3. PC send UDP packet to multicast addr
sub module: IGMP
summary: station IGMP recv packets
test environment: SSC_T1_6
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0202
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 op -S -o 1
- - R SSC2 C +MODE:OK
- - SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 igmp -J -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC2 soc -B -t UDP -p <random_port>
- - R SSC2 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 SL <sock1>+1
- - SSC SSC1 igmp -L -h <target_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. target1 recv multicast packet
initial condition: STAM2
level: Integration
module: TCPIP
steps: |-
1. target2 set to sta mode and join AP
2. target1 join group and create UDP socket using multicast addr
3. target2 create UDP socket
4. target2 send to multicast addr
sub module: IGMP
summary: station send multicast packets
test environment: SSC_T2_4
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0203
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
- - R SSC1 A <sock1>:BIND:(\d+),OK
- - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
- - R SOC_COM L OK
- - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
- - R SSC1 SL <sock1>+1
- - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. able to recv packet
initial condition: APM2
level: Integration
module: TCPIP
steps: |-
1. join group
2. create UDP socket using multicast addr
3. PC send UDP packet to multicast addr
sub module: IGMP
summary: softAP IGMP recv packets
test environment: SSC_T1_8
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0204
SDK: |-
8266_NonOS
8266_RTOS
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 igmp -J -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -i 224.1.1.1 -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC2 soc -B -t UDP -p <test_udp_port1>
- - R SSC2 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 SL <sock1>+1
- - SSC SSC1 igmp -L -h <target_ap_ip> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
execution time: 0.0
expected result: |-
1. succeed
2. succeed
3. succeed
4. target1 recv multicast packet
initial condition: T2_1
level: Integration
module: TCPIP
steps: |-
1. target2 join SoftAP
2. target1 join group and create UDP socket using multicast addr
3. target2 create UDP socket
4. target2 send to multicast addr
sub module: IGMP
summary: softAP send multicast packets
test environment: SSC_T2_4
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0101
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -J -s <sock1> -m 223.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 soc -J -s <sock1> -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. ERROR
5. ERROR
initial condition: STAM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group with correct multicast addr
3. leave group with correct multicast addr
4. join group with wrong multicast addr
5. join group with wrong multicast addr
sub module: IGMP
summary: station IGMP join group address check
test environment: SSC_T1_6
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0102
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -p <random_port>
- - R SSC1 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock2> -m 224.1.1.2
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock2> -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. OK
5. OK
6. ERROR
initial condition: STAM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group with correct multicast addr
3. leave group with correct multicast addr
4. create UDP socket
5. join group with correct multicast addr
6. leave group with wrong multicast addr
sub module: IGMP
summary: station IGMP leave group address check
test environment: SSC_T1_5
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0103
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -J -s <sock1> -m 223.1.1.1
- - R SSC1 C +IGMP:ERROR
- - SSC SSC1 soc -J -s <sock1> -m 240.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. ERROR
5. ERROR
initial condition: APM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group with correct multicast addr
3. leave group with correct multicast addr
4. join group with wrong multicast addr
5. join group with wrong multicast addr
sub module: IGMP
summary: softAP IGMP join group address check
test environment: SSC_T1_8
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0104
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -B -t UDP -p <random_port>
- - R SSC1 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock2> -m 224.1.1.2
- - R SSC1 C +IGMP:OK
- - SSC SSC1 soc -G -s <sock2> -m 224.1.1.1
- - R SSC1 C +IGMP:ERROR
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. OK
5. OK
6. ERROR
initial condition: APM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group with correct multicast addr
3. leave group with correct multicast addr
4. create UDP socket
5. join group with correct multicast addr
6. leave group with wrong multicast addr
sub module: IGMP
summary: softAP IGMP leave group address check
test environment: SSC_T1_7
test point 1: basic function
test point 2: IGMP API parameter check
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0201
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: '1/5'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port2>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SOC SOC1 BIND <test_udp_port2>
- - R SOC_COM L OK
- - SOC SOC1 SENDTO 1 <test_udp_port2> 224.1.1.1
- - R SSC1 SL <sock1>+1
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SOC SOC1 SENDTO 1 <test_udp_port2> 224.1.1.1
- - R SSC1 NC +RECVFROM
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. able to recv packet
5. OK
6. not able to recv packet
initial condition: STAM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group with correct multicast addr
3. PC上 SOC1 UDP 传输,bing <test_udp_port2> <pc_ip>
4. PC send UDP packet to multicast addr
5. leave group with correct multicast addr
6. PC send UDP packet to multicast addr
sub module: IGMP
summary: station IGMP recv packets
test environment: SSC_T1_6
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0202
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: '1/5'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 op -S -o 1
- - R SSC2 C +MODE:OK
- - SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC2 soc -T
- - R SSC2 C +CLOSEALL
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC2 soc -B -t UDP -p <random_port>
- - R SSC2 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 SL <sock1>+1
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 NC +RECVFROM
- - SSC SSC2 soc -T -s <sock2>
- - R SSC2 RE CLOSE:\d+,OK
execution time: 0.0
expected result: |
1. OK
2. target2 connect succeed
3. CLOSEALL
4. OK
5. OK
6. OK
7. able to recv packet
8. OK
9. not able to recv packet
10. OK
initial condition: STAM2
level: Integration
module: TCPIP
steps: |
1. target2 set to sta mode
2. target2 join AP
3. target2 close socket
4. target1 create UDP socket
5. target1 join group using multicast addr
6. target2 create UDP socket
7. target2 send to multicast addr
8. target1 leave group with correct multicast addr
9. target2 send to multicast addr
10. target2 close socket
sub module: IGMP
summary: station send multicast packets
test environment: SSC_T2_4
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0203
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SOC SOC1 BIND <test_udp_port1> <pc_ip_wifi>
- - R SOC_COM L OK
- - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
- - R SSC1 SL <sock1>+1
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SOC SOC1 SENDTO 1 <test_udp_port1> 224.1.1.1
- - R SSC1 NC +RECVFROM
execution time: 0.0
expected result: |
1. OK
2. OK
3. OK
4. able to recv packet
5. OK
6. not able to recv packet
initial condition: APM2
level: Integration
module: TCPIP
steps: |
1. create UDP socket
2. join group using multicast addr
3. PC上 SOC1 UDP 传输,bing <test_udp_port1> <pc_ip_wifi>
4. PC send UDP packet to multicast addr
5. leave group with correct multicast addr
6. PC send UDP packet to multicast addr
sub module: IGMP
summary: softAP IGMP recv packets
test environment: SSC_T1_8
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IGMP_0204
SDK: 'ESP32_IDF'
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - R SSC2 C +JAP:CONNECTED
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:\+BIND:(\d+),OK
- - SSC SSC1 soc -J -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC2 soc -B -t UDP -p <random_port>
- - R SSC2 A <sock2>:\+BIND:(\d+),OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 SL <sock1>+1
- - SSC SSC1 soc -G -s <sock1> -m 224.1.1.1
- - R SSC1 C +IGMP:OK
- - SSC SSC2 soc -S -s <sock2> -i 224.1.1.1 -p <test_udp_port1> -l 10
- - R SSC1 NC +RECVFROM
- - SSC SSC2 soc -T -s <sock2>
- - R SSC2 RE CLOSE:\d+,OK
execution time: 0.0
expected result: |
1. target2 connect succeed
2. OK
3. OK
4. OK
5. target1 able to recv packet
6. OK
7. target1 not able to recv packet
8. OK
initial condition: APM2
level: Integration
module: TCPIP
steps: |
1. target2 join AP
2. target1 create UDP socket
3. target1 join group using multicast addr
4. target2 create UDP socket
5. target2 send to multicast addr
6. target1 leave group with correct multicast addr
7. target2 send to multicast addr
8. target2 close socket
sub module: IGMP
summary: softAP send multicast packets
test environment: SSC_T2_4
test point 1: basic function
test point 2: IGMP send/recv test
version: v1 (2016-8-15)
@@ -1,85 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: TCPIP_IP_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -S -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 ip -S -o 1 -i 192.168.123.123
- - R SSC1 C +IP:ERROR
- - SSC SSC1 dhcp -E -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 ip -S -o 1 -i 192.168.123.123
- - R SSC1 C +IP:OK
- - SSC SSC1 ip -Q -o 1
- - R SSC1 C +STAIP:192.168.123.123
execution time: 0.0
expected result: |-
1.OK
2.ERROR
3.OK
4.OK
5.STAIP:192.168.123.123
initial condition: STAM1
level: Integration
module: TCPIP
steps: "1.target1 打开DHCP 1\n2.target1 设置sta ip 192.168.123.123\n4.target1 关闭DHCP
1\n5.target1 设置sta ip 192.168.123.123\n6.target1 查询 当前sta ip "
sub module: IP
summary: sta set and query static ip test
test environment: SSC_T1_4
test point 1: basic function
test point 2: set and query static IP
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: TCPIP_IP_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 dhcp -S -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 ip -S -o 2 -i 192.168.123.123
- - R SSC1 C +IP:ERROR
- - SSC SSC1 dhcp -E -o 2
- - R SSC1 C +DHCP:AP,OK
- - SSC SSC1 ip -S -o 2 -i 192.168.123.123
- - R SSC1 C +IP:OK
- - SSC SSC1 ip -Q -o 2
- - R SSC1 C +APIP:192.168.123.123
- - SSC SSC1 ip -S -o 2 -i <target_ap_ip>
- - R SSC1 C +IP:OK
execution time: 0.0
expected result: |-
1.OK
2.ERROR
3.OK
4.OK
5.APIP:192.168.123.123
6.OK
initial condition: APM1
level: Integration
module: TCPIP
steps: "1.target1 打开DHCP 2\n2.target1 设置softAP ip 192.168.123.123\n4.target1 关闭DHCP
2\n5.target1 设置softAP ip 192.168.123.123\n6.target1 查询 当前sta ip \n7.target1 设置softAP
ip 为target_ap_ip"
sub module: IP
summary: ap set and query static ip test
test environment: SSC_T1_4
test point 1: basic function
test point 2: set and query static IP
version: v1 (2016-8-15)
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,99 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: WIFI_ADDR_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 op -S -o 3
- - R SSC1 C +MODE:OK
- - SSC SSC1 mac -S -o 1 -m 44:55:66:77:88:99
- - R SSC1 C +MAC:STA,OK
- - SSC SSC1 mac -S -o 2 -m 22:33:44:55:66:77
- - R SSC1 C +MAC:AP,OK
- - SSC SSC1 mac -Q -o 3
- - R SSC1 C +STAMAC:44:55:66:77:88:99 C +APMAC:22:33:44:55:66:77
- - SSC SSC1 mac -S -o 1 -m <target_mac>
- - R SSC1 C +MAC:STA,OK
- - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
- - R SSC1 C +MAC:AP,OK
execution time: 0.0
expected result: |-
1.OK
2.ok
3.ok
4.ok
5.ok
6.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: "1.target1 设置mode 为sta+softAP mode\n2.target1 设置sta mode 下的mac \n3.target1
设置softAP mode 下的mac\n4.target1 查询softAP+sta 下的mac\n5.target1 设置sta mode 下的mac
为target1_mac\n6.target1 设置softAP mode 下的mac 为target1_ap_mac\n"
sub module: MAC Address
summary: set mac, query mac
test environment: SSC_T2_5
test point 1: basic function
test point 2: mac address function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_ADDR_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 mac -S -o 2 -m 44:55:66:77:88:99
- - R SSC1 C +MAC:AP,OK
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - ''
- - SSC SSC2 sta -S -b 44:55:66:77:88:99
- - R SSC2 RE \+SCAN:.+,44:55:66:77:88:99,
- - SSC SSC1 mac -S -o 2 -m <target_ap_mac>
- - R SSC1 C +MAC:AP,OK
- - SSC SSC2 mac -Q -o 1
- - R SSC2 A <target2_mac_tmp>:\+STAMAC:(.+)\r\n
- - SSC SSC2 mac -S -o 1 -m 22:33:44:55:66:77
- - R SSC2 C +MAC:STA,OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC1 ap -L
- - R SSC1 C +LSTA:22:33:44:55:66:77
- - SSC SSC2 mac -S -o 1 -m <target2_mac>
- - R SSC2 C +MAC:STA,OK
execution time: 0.0
expected result: |-
1.OK
2.ok
3.ok
4.ok
5.ok
6.ok
7.ok
8.ok
9.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: "1.target1 设置sta mode下的mac 44:55:66:77:88:99\n2.target1下设置ssid 和pwd 加密方式\n3.target2
查询mac为44:55:66:77:88:99的ssid\n4.target1 设置sta mode下的mac target_ap_mac\n5.target2
查询sta mode 下的mac 为target2_mac_tmp\n6.target2 设置sta mode 下的mac 为22:33:44:55:66:77\n7.target2
jap target1\n8.target1 查询连接到的sta \n9.target2 设置sta mode 下的mac 为 target2_mac\n"
sub module: MAC Address
summary: set mac and do scan/JAP/SAP
test environment: SSC_T2_5
test point 1: basic function
test point 2: mac address function test
version: v1 (2016-8-15)
@@ -1,29 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: WIFI_AMSDU_5001
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- TCPStress/TCPAMSDUsendrecv
- - delay_config = [0, 0.01, 0.1, 0.5, 1]
- - dummy
- - send_count = 1000
- - ''
- - test_time = 300
- - ''
execution time: 12.0
expected result: 1. do not disconnect
initial condition: STAM2
level: Integration
module: WIFI MAC
steps: |-
1. PC and SSC1 connected to 天猫魔盒,do TCP pkts send/recv for a long time.
2.Loop executing step 1
sub module: A-MSDU
summary: test AMSDU send/rev
test environment: SSC_T1_AMSDU
test point 1: function + stress
test point 2: AMSDU send recv
version: v2 (2016-11-15)
File diff suppressed because it is too large Load Diff
@@ -1,135 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: WIFI_MODE_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC1 op -S -o 1
- - R SSC1 C +MODE:OK
- - SSC SSC1 dhcp -S -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
- - SSC SSC2 sta -S
- - R SSC2 NP <target_ssid> C +SCANDONE
- - SSC SSC1 sta -D
- - R SSC1 C +QAP:OK
execution time: 0.0
expected result: |-
1.target1下设置ssid 和pwd 、加密方式成功
2.修改target 1的mode 为sta mode
3.target1的dhcp打开
4.target1成功连接上AP
5.target2上不能查询到target_ssid
6.target1断开AP
initial condition: T2O_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.修改target1的mode 为sta mode
3.target1的dhcp打开
4.target1连接AP
5.target2查询target_ssid
6.target1断开AP
sub module: WIFI Mode
summary: mode switch test (sta mode)
test environment: SSC_T2_3
test point 1: basic function
test point 2: wifi mode fucntion
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_MODE_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -S
- - R SSC2 P <target_ssid>
- R SSC2 C +SCANDONE
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 C +JAP:ERROR
- - SSC SSC1 sta -D
- - R SSC1 C +QAP:ERROR
execution time: 0.0
expected result: |-
1. target1 set AP
2.target 2 上查询到target_ssid
3. target1 can't join AP
4. target1 can't QAP
initial condition: T2O_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.target 2 上查询target_ssid
3.target1 join AP
4.target1 DISCONN AP
sub module: WIFI Mode
summary: mode switch test (AP mode)
test environment: SSC_T2_3
test point 1: basic function
test point 2: wifi mode fucntion
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_MODE_0103
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 op -S -o 3
- - R SSC1 C +MODE:OK
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC1 dhcp -S -o 1
- - R SSC1 C +DHCP:STA,OK
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 RE "\+JAP:CONNECTED,%%s"%%(<ap_ssid>)
- - SSC SSC2 sta -S
- - R SSC2 P <target_ssid>
- R SSC2 C +SCANDONE
execution time: 0.0
expected result: |-
1.target1 change to AP mode
2.target1 set AP
3.target 1 的dhcp 打开
4.target 1 成功连接上AP
5.target 2 上查询到target_ssid
initial condition: T2O_1
level: Integration
module: WIFI MAC
steps: |-
1.target1 change to AP mode
2.target1下设置ssid 和pwd 加密方式
3.target1 的dhcp 打开
4.target1 连接AP
5.target2 上查询target_ssid
sub module: WIFI Mode
summary: mode switch test (STA+AP mode)
test environment: SSC_T2_3
test point 1: basic function
test point 2: wifi mode fucntion
version: v1 (2016-8-15)
@@ -1,931 +0,0 @@
test cases:
- CI ready: 'Yes'
ID: WIFI_SCAN_0101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 sta -S -s .,juhg123
- - 'R SSC2 NC +SCAN: C +SCANDONE'
- - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -S -s <target_tmp_ssid>
- - 'R SSC2 C +SCAN:'
- R SSC2 P <target_tmp_ssid>
- 'R SSC2 NC +SCAN: C +SCANDONE'
execution time: 0.0
expected result: |-
1.target 2上不能scan .,juhg123
2.target1 set AP
3.target2上查询到<target_tmp_ssid>
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target 2 scan .,juhg123
2.target1下设置ssid 和pwd 加密方式
3.target2 scan <target_tmp_ssid>
sub module: WIFI Scan
summary: scan with scan config ssid
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan with different config
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0102
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC2 sta -S -b ff:ff:ff:ff:ff:11
- - 'R SSC2 NC +SCAN: C +SCANDONE'
- - SSC SSC2 sta -S -b <target_ap_mac>
- - R SSC2 RE "\+SCAN:.+,%%s"%%(<target_ap_mac>)
- 'R SSC2 NC +SCAN: C +SCANDONE'
execution time: 0.0
expected result: |-
1.target2 上不能查询到此mac
2.target2上查询到<target_ap_mac>
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target2 上查询此macff:ff:ff:ff:ff:11
2.target2上查询<target_ap_mac>
sub module: WIFI Scan
summary: scan with scan config bssid
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan with different config
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0103
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 sta -D
- - 'R SSC1 C +QAP:'
- - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -n 6
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -S -n 5
- - R SSC2 NP <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -n 6
- - 'R SSC2 C +SCAN:'
- R SSC2 P <target_tmp_ssid>
execution time: 0.0
expected result: |-
1.target1 QAP
2. target1 set AP,set channel 6
3.target2 上scan不到 channel 5
4.target2 上查询channel 6的<target_tmp_ssid>
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1 断开连接AP
2.target1下设置ssid 和pwd 加密方式,set channel 6
3.target2 上scan channel 5
4.target2 上查询channel 6的<target_tmp_ssid>
sub module: WIFI Scan
summary: scan with scan config channel
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan with different config
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0104
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -D
- - R SSC2 C OK
- - SSC SSC2 sta -S -h 0
- - R SSC2 P <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -h 1
- - R SSC2 P <target_tmp_ssid> C +SCANDONE
- - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -h 1
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -S -h 0
- - R SSC2 NP <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -h 1
- - R SSC2 P <target_ap_mac> C +SCANDONE
execution time: 0.0
expected result: |-
1.target1 set AP,set ssid broad cast
2.target 2上scan <target_tmp_ssid>
3.target 2上scan <target_tmp_ssid>
4.target1 set AP,set ssid hidden,
5.target 2上不能查询到 <target_tmp_ssid>
6.target 2上查询到<target_ap_mac>
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式,set ssid broad cast
2.target 2上scan <target_tmp_ssid>
3.target 2上scan <target_tmp_ssid>
4.target1下设置ssid 和pwd 加密方式,set ssid hidden,
5.target 2上查询 <target_tmp_ssid>
6.target 2上查询<target_ap_mac>
sub module: WIFI Scan
summary: scan with scan config show hidden
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan with different config
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0105
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 sta -D
- - 'R SSC1 C +QAP:'
- - SSC SSC1 ap -S -s <target_tmp_ssid> -p 123456789 -t 3 -h 0 -n 11
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 11
- - R SSC2 P <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -s <target_ssid> -b <target_ap_mac> -n 11
- - R SSC2 NP <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -s <target_tmp_ssid> -b ff:ff:ff:ff:ff:11 -n 11
- - R SSC2 P <target_tmp_ssid>
- R SSC2 NP <target_tmp_ssid> C +SCANDONE
- - SSC SSC2 sta -S -s <target_tmp_ssid> -b <target_ap_mac> -n 10
- - R SSC2 P <target_tmp_ssid>
- R SSC2 NP <target_tmp_ssid> C +SCANDONE
execution time: 0.0
expected result: |-
1.target1 QAP
2. target1 set AP,set ssid broad cast,set channel 11
3.target2 上查询到<target_tmp_ssid>
4.target2 上查询不到<target_tmp_ssid>
5.target2 上查询不到<target_tmp_ssid>
6.target2 上查询不到<target_tmp_ssid>
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1 QAP
2. target1 set AP,set ssid broad cast,set channel 11
3.target2 上查询到<target_tmp_ssid>
4.target2 上查询不到<target_tmp_ssid>
5.target2 上查询不到<target_tmp_ssid>
6.target2 上查询不到<target_tmp_ssid>
sub module: WIFI Scan
summary: scan with several configs
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan with different config
version: v1 (2016-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0201
SDK: ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 phy -S -o 1 -m b
- - R SSC1 C +SPHY:protocol
- - SSC SSC1 sta -S
- - R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_20> P <ap_ssid_11n_40>
- - SSC SSC1 phy -S -o 1 -m g
- - R SSC1 C +SPHY:protocol
- - SSC SSC1 sta -S
- - R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_20> P <ap_ssid_11n_40>
- - SSC SSC1 phy -S -o 1 -m n -b 20
- - R SSC1 C +SPHY:protocol
- - SSC SSC1 sta -S
- - R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_20> P <ap_ssid_11n_40>
- - SSC SSC1 phy -S -o 1 -m n -b 40
- - R SSC1 C +SPHY:protocol
- - SSC SSC1 sta -S
- - R SSC1 P <ap_ssid_11b> P <ap_ssid_11g> P <ap_ssid_11n_20> P <ap_ssid_11n_40>
execution time: 0.0
expected result: |-
3. find all 3 ext APs
5. find all 3 ext APs
7. find all 3 ext APs
9. find all 3 ext APs
initial condition: STAM1
level: Integration
module: WIFI MAC
steps: |-
1. 3 ext APs in 11b, 11g, 11n mode
2. STA in 11b mode
3. do all channel scan
4. STA in 11g mode
5. do all channel scan
6. STA in 11n ht20 mode
7. do all channel scan
8. STA in 11n ht40 mode
9. do all channel scan
sub module: WIFI Scan
summary: STA in differnt PHY mode to scan AP in different PHY mode
test environment: SSC_T2_PhyMode
test point 1: basic function
test point 2: Scan in different mode and channel
version: v1 (2015-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0202
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -d 0 -b <target1_ap_mac>
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -d 1 -b <target1_ap_mac>
- - P SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.OK
2.ok
3.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.target2 jap
3.target2 conn target1 by bssid
sub module: WIFI Scan
summary: do scan/JAP/SAP with bssid set config
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan function test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0203
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 3
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 0
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 1
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 2
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 3
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -j 5
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 1
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 2
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 3
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 0
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -j 4
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 3 -j 0
- - P SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.OK 2.ok
3.ok
4.ok
5.ok
7.ok
8.ok
9.ok
10.ok
12.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.target2 fast scan and jap target1
3.target2 jap target1 except open encrypt
4.target2 jap target1 except open and wep encrypt
5.target2 jap target1 only wpa2 encrypt can be connect
6.target2 scan all channel jap target1 except open encrypt
7.target2 scan all channel jap target1 except open encrypt
8.target2 scan all channel jap target1 except open and wep encrypt
9.target2 scan all channel jap target1 only wpa2 encrypt can be connected
10.target2 scan all channel jap target1
11.target2 scan all channel jap target1
12.target2 jap target1
sub module: WIFI Scan
summary: do scan/JAP/SAP with scan method and weakest auth mode
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan function test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0204
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 2
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 0
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 128
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 0 -q 80
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 128
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 0
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -q 80
- - P SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.OK
2.no exception
3.no exception
4.ok
5.no exception
6.no exception
7.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.target2 fast scan and jap target1 rssi>-1
3.target2 fast scan and jap rssi>-127
4.target2 scan all channel and jap target1 rssi>-80
5.target2 scan all channel and jap rssi > -127
6.target2 scan all channel and jap rssi > -1
7.target2 scan all channel and jap target1 rssi > -80
sub module: WIFI Scan
summary: do scan/JAP/SAP with scan method and weakest rssi
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan function test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0205
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t 3
- - R SSC1 C +SAP:OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 0
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 1
- - P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password> -f 1 -x 2
- - P SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
1.OK
2.ok
3.ok
4.ok
initial condition: T2_1
level: Integration
module: WIFI MAC
steps: |-
1.target1下设置ssid 和pwd 加密方式
2.target2 scan ap all channel and jap target1 by rssi sort
3.target2 scan ap all channel and jap target1 by auth
4.target2 scan ap all channel jap target1 by auth
sub module: WIFI Scan
summary: do scan/JAP/SAP with scan method and sort method
test environment: SSC_T2_5
test point 1: basic function
test point 2: scan function test
version: v1 (2016-8-15)
- CI ready: 'No'
ID: WIFI_SCAN_0206
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 op -S -o 1
- - P SSC1 C +MODE:OK
- - SSC SSC1 op -Q
- - P SSC1 C +CURMODE:1
- - SSC SSC1 sta -S -t 0 -l 0 -m 0
- - 'R SSC1 C +SCAN: C +SCANDONE'
- - SSC SSC1 sta -S -t 0 -l 1000 -m 100
- - 'R SSC1 C +SCAN: C +SCANDONE'
- - SSC SSC1 sta -S -t 1 -k 0
- - 'R SSC1 C +SCAN: C +SCANDONE'
- - SSC SSC1 sta -S -t 1 -k 2000
- - 'R SSC1 C +SCAN: C +SCANDONE'
- - SSC SSC1 sta -S -t 5 -k 100
- - 'R SSC1 C +SCAN: C +SCANDONE'
execution time: 0.0
expected result: |-
1.OK
2.ok
3.scan ok
4.scan ok
5.scan ok
6.scan ok
7.scan ok
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1.target set as sta
2.check target1 work mode
3.target1 active scan max and min time set to 0ms
4.target1 active scan max time 1000ms min time 100ms
5.target1 passive scan scan time 0ms
6.target passive scan scan time 10000ms
7.target1 scan type set to 5
sub module: WIFI Scan
summary: do active/passive scan
test environment: SSC_T1_4
test point 1: basic function
test point 2: scan function test
version: v1 (2016-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0301
SDK: ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 sta -S
- - ''
- - SSC SSC1 sta -S
- - P SSC1 C +SCANFAIL
- 'P SSC1 C +SCAN:'
- R SSC1 C +SCANDONE
execution time: 0.0
expected result: |-
1. second scan failed
2. first scan succeed
initial condition: STAM1
level: Integration
module: WIFI MAC
steps: |-
1. do all channel scan
2. do scan before scan finished
sub module: WIFI Scan
summary: reject scan request before scan finished
test environment: SSC_T1_5
test point 1: interaction
test point 2: Scan interact with other WiFi operation
version: v1 (2015-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0302
SDK: ESP32_IDF
Test App: SSC
allow fail: '2/3'
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 C +JAP:CONNECTED
- - SSC SSC1 soc -B -t UDP -p <test_udp_port1>
- - R SSC1 A <sock1>:BIND:(\d+),OK
- - SSC SSC1 soc -S -s <sock1> -i <pc_ip> -p <test_udp_port1> -n 1000000 -j 5
- - ''
- - SSC SSC2 phy -S -o 1 -m b
- - R SSC2 C +SPHY:protocol
- - SSC SSC2 sta -S -n <ap_channel>
- - R SSC2 P <ap_ssid>
- - SSC SSC2 phy -S -o 1 -m g
- - R SSC2 C +SPHY:protocol
- - SSC SSC2 sta -S -n <ap_channel>
- - R SSC2 P <ap_ssid>
- - SSC SSC2 phy -S -o 1 -m n -b 20
- - R SSC2 C +SPHY:protocol
- - SSC SSC2 sta -S -n <ap_channel>
- - R SSC2 P <ap_ssid>
- - SSC SSC2 phy -S -o 1 -m n -b 40
- - R SSC2 C +SPHY:protocol
- - SSC SSC2 sta -S -n <ap_channel>
- - R SSC2 P <ap_ssid>
execution time: 0.0
expected result: 3. target 2 able to scan AP
initial condition: T2_2
level: Integration
module: WIFI MAC
steps: |-
1. target 1 connect to AP
2. target 1 start sending UDP packets
3. target 2 scan in AP channel in 11b.g,n,ht40 mode
sub module: WIFI Scan
summary: scan in congest channel
test environment: SSC_T2_4
test point 1: interaction
test point 2: Scan interact with other WiFi operation
version: v1 (2015-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0303
SDK: ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - R SSC1 C +JAP:OK
- - SSC SSC1 sta -S
- - P SSC1 C +SCANDONE
- P SSC1 C +JAP:CONNECTED
- - SSC SSC1 sta -D
- - R SSC1 C +QAP:OK
- - SSC SSC1 sta -S
- - ''
- - SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>
- - P SSC1 C +SCANDONE
- P SSC1 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
2. scan succeed, JAP succeed
5. JAP succeed, scan succeed
initial condition: STAM1
level: Integration
module: WIFI MAC
steps: |-
1. target 1 STA join AP
2. target 1 STA scan before JAP succeed
3. target 1 quite AP
4. target 1 scan
5. target 1 JAP before scan succeed
sub module: WIFI Scan
summary: scan during JAP
test environment: SSC_T1_5
test point 1: interaction
test point 2: Scan interact with other WiFi operation
version: v1 (2015-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_0304
SDK: ESP32_IDF
Test App: SSC
allow fail: ''
auto test: 'Yes'
category: Function
cmd set:
- ''
- - SSC SSC1 ap -S -s <target_ssid> -p <target_password> -t <target_auth_enum>
- - R SSC1 C +SAP:OK
- - SSC SSC1 sta -D
- - R SSC1 C OK
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - R SSC2 C +JAP:OK
- - SSC SSC1 sta -S
- - P SSC1 C +SCANDONE
- P SSC2 C +JAP:CONNECTED
- - SSC SSC2 sta -D
- - R SSC2 C +QAP:OK
- - SSC SSC1 sta -S
- - ''
- - SSC SSC2 sta -C -s <target_ssid> -p <target_password>
- - P SSC1 C +SCANDONE
- P SSC2 C +JAP:CONNECTED
execution time: 0.0
expected result: |-
2. scan succeed, JAP succeed
5. JAP succeed, scan succeed
initial condition: T2_2
level: Integration
module: WIFI MAC
steps: |-
1. target 2 STA join target 1 SoftAP
2. target 1 STA scan before target 2 JAP succeed
3. target 2 STA QAP
4. target 1 STA scan
5. target 2 STA JAP before target 1 STA scan succeed
sub module: WIFI Scan
summary: scan during ext STA join SoftAP
test environment: SSC_T2_5
test point 1: interaction
test point 2: Scan interact with other WiFi operation
version: v1 (2015-8-15)
- CI ready: 'Yes'
ID: WIFI_SCAN_5101
SDK: |-
8266_NonOS
8266_RTOS
ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiSCANTime
- - test_time = 300
- - ''
- - active_scan_max_time = 120
- - ''
- - active_scan_min_time = 20
- - ''
- - passive_scan_max_time = 100
- - ''
- - scan_mode_list = ["active_scan","passive_scan"]
- - ''
execution time: 5.0
expected result: "1. succeed\n3. scan time less than 1.15 test time "
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. 1 target set to sta mode
2. set scan mode
3. start scan ap and check scan time
sub module: WIFI Scan
summary: test differnt scan mode scan time
test environment: SSC_T1_1
test point 1: stress
test point 2: Sta active/passive scan stress test
version: v2 (2017-05-10)
- CI ready: 'No'
ID: WIFI_SCAN_5201
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "conn_by_bssid"
- - ''
execution time: 0.2
expected result: |-
1. all routers configure correctly
3. connect success
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. Manually configure the two routers with the same ssid ,password and security mode
2. SSC1 target connect PC by Uart.
3. SSC target connect ap by the specified bssid
sub module: WIFI Scan
summary: connect specify ap test
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: connect ap by bssid
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5202
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "conn_max_rssi_ap"
- - ''
execution time: 0.2
expected result: |-
1. configure ap right
3. connect success
4. rssi value is the largest of the four routers
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. Manually configure the four routers with the same ssid ,password and security mode
2. 1 SSC target connect PC by Uart.
3. SSC connect max rssi ap.
4. check connection ap's rssi value
sub module: WIFI Scan
summary: connect max rssi ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: connect max rssi ap
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5203
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "conn_most_security_ap"
- - ''
execution time: 0.2
expected result: |-
1. the routers are configured correctly
3. connect success
4. encryption mode is the highest in four routers
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. Manually configure the four routers with the same ssid ,password and different security mode
2. target1 connect PC by Uart.
3. target1 connect the highest encryption mode ap
4. check connection ap's security mode
sub module: WIFI Scan
summary: connect most security ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: connect most security ap
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5204
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "conn_setting_ap"
- - ''
execution time: 0.2
expected result: |-
1. the routers are configured correctly
3. connect success
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. Manually configure the four routers with the same ssid different password
2. target1 connect PC by Uart.
3. target1 connect setting ap
sub module: WIFI Scan
summary: connect setting ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: connect setting ap
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5205
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "reconn_same_ssid_ap"
- - ''
- - apc_num_list = [1,3]
- - ''
execution time: 0.5
expected result: |-
1. the routers are configured correctly
3. ap1 power on
4. connect success
5. ap2 power on and ap1 power off
6. connect success
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. Manually configure the two routers with the same ssid ,password different security mode
2. target1 connect PC by Uart.
3. ap1 power on by apc
4. atrget1 connect ap
5. ap1 power off and ap2 power on
6. atrget1 auto connect ap2.
sub module: WIFI Scan
summary: reconnect same ssid ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: reconnect same ssid ap
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5206
SDK: ESP32_IDF
Test App: SSC
auto test: 'Yes'
category: Stress
cmd set:
- WiFiStress/WifiScanOptimize
- - test_times = 10
- - ''
- - test_mode = "quick_conn_ap"
- - ''
- - rssi_threshold = 60
- - ''
- - low_rssi_num = 1
- - ''
execution time: 0.3
expected result: |-
1. the routers are configured correctly
3. connect success
4. connect to the correct ap
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. manuall configure two routers with the same ssid password and below rssi_threshold ap's channel at the front
2. target1 connect PC by Uart.
3. atrget1 connect ap
4. check connection ap's bssid
sub module: WIFI Scan
summary: quick connect ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function + stress
test point 2: quick connect ap
version: v2 (2016-11-15)
- CI ready: 'No'
ID: WIFI_SCAN_5207
SDK: ESP32_IDF
Test App: SSC
auto test: 'No'
category: Stress
cmd set: ''
execution time: 0.3
expected result: |-
1. the routers are configured correctly
3. set suc
5. burn suc
6. set mode ok and SSC connected to the open security mode ap auto
initial condition: None
level: Integration
module: WIFI MAC
steps: |-
1. configure four router with the same ssid and one of them security mode is open
2. target1 connect PC by Uart.
3. set the ssid of the router in the manuconfig but not the password
4. save the setting and compile
5. burn bin files
6. set target1 to sta mode
7. loop 1,2,3,4 ten times
sub module: WIFI Scan
summary: connect open security ap
test environment: SSC_T1_SCANSPECIFIED
test point 1: function
test point 2: connect open security mode ap
version: v2 (2016-11-15)
@@ -1,474 +0,0 @@
.TEST_ENV: &TEST_ENV
PC OS: ''
Special: N
test script: EnvBase
test environment:
- tag: SSC_T1_1
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC has 2 wired NIC connected to AP.
PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
- tag: ETH_T1_1
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC connected to AP by wired NIC.
1 ETH DUT connect with PC by UART, connect to AP by wired NIC.
- tag: SSC_T1_2
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
Able to access WAN after connect to AP.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_3
<<: *TEST_ENV
Target Count: 1
test environment detail: PC has one BT adapter (dongle). 1 SSC DUT connect with
PC by UART.
- tag: SSC_T1_4
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_5
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
AP placed near DUT.
- tag: SSC_T1_6
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
AP placed near DUT.
PC has 1 wired NIC connected to AP.
- tag: SSC_T1_7
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
PC has 1 WiFi NIC.
AP placed near DUT and PC.
- tag: SSC_T1_8
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
AP placed near DUT and PC.
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
- tag: SSC_T1_9
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC has 2 wired NIC connected to AP.
1 SSC DUT connected to AP.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_10
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_ARP
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC (linux) has 1 wired NIC connected to AP.
AP is configured as update group key every 30s.
PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_8089
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
PC has 1 wired NIC connected to AP.
1 8089 tablet able to run iperf test placed near SSC1.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_ADC
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
PC has 1 wired NIC connected to AP.
Analog input connect to SSC1 TOUT.
Multimeter connect to input, able to measure input voltage.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_AMSDU
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
1 SSC DUT connect PC by UART.
PC 无线网卡和 SSC DUT 均连接到天猫魔盒AP.
- tag: SSC_T1_APC
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 wired NIC connected to APC (static IP within the same subnet with APC).
APC control AP power supply.
PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_Enterprise
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: "AP use WPA2-Etherprise is placed near SSC1. \n1 SSC DUT
connect with PC by UART."
- tag: SSC_T1_IOT1
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
AP todo IOT test are placed near SSC1.
- tag: SSC_T1_MESH1
Special: Y
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T1_MESH2
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
1 SSC target connect with PC by UART.
PC has 1 wired NIC connected to a fixed channel Router.
- tag: SSC_T1_InitData
<<: *TEST_ENV
Special: Y
Target Count: 2
test environment detail: |-
2 SSC DUT connect with PC by UART.
SSC1 use 40M crystal oscillator.
SSC2 use normal 26M crystal oscillator.
SSC2 GPIO connect to SSC1 power control pin.
- tag: SSC_T1_SCANSPECIFIED
<<: *TEST_ENV
Special: N
Target Count: 1
test environment detail: 1 SSC DUT connect with PC by UART. All APs power on.
- tag: SSC_T1_ShieldBox
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
refer to figure.
All APs and APC should be set to the same IP subnet.
PC wired NIC should set static IP address within the same subnet with AP.
Must use onboard wired NIC.
- tag: SSC_T1_Sleep1
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
AP support DTIM placed with AT DUT.
SSC DUT connect with Raspberry Pi by UART.
Multimeter connect with Raspberry Pi via GPIB.
Series multimeter between GND and VCC of SSC1.
SSC1's light sleep wakeup pin and wakeup indication connect with Raspberry Pi's GPIO.
SSC1's XPD connect with RSTB.
- tag: SSC_T1_Sleep2
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
AP support DTIM placed with AT DUT.
SSC DUT connect with Raspberry Pi by UART.
Multimeter connect with Raspberry Pi via GPIB.
Series multimeter between GND and VCC of SSC1.
SSC1's RSTB pin connect with Raspberry Pi's GPIO.
- tag: SSC_T1_Sleep3
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
AP support DTIM placed with AT DUT.
SSC DUT connect with Raspberry Pi by UART.
Multimeter connect with Raspberry Pi via GPIB.
Series multimeter between GND and VCC of SSC1.
- tag: SSC_T1_Sniffer
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
PC has 1 wired NIC connected to AP. PC has 1 WiFi NIC.
1 SSC DUT connect with PC by UART.
- tag: SSC_T1_TempBox
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
Put SSC DUT to temperature box.
- tag: SSC_T1_VDD33
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
Multimeter connect to VDD33, able to measure voltage.
- tag: SSC_T1_WEP
<<: *TEST_ENV
Target Count: 1
test environment detail: |-
1 SSC DUT connect with PC by UART.
One WEP share key AP placed near SSC1.
- tag: SSC_T2_1
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
2 SSC DUTs connect with PC by UART.
- tag: SSC_T2_2
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
PC has 1 WiFi NIC.
2 SSC DUTs connect with PC by UART.
- tag: SSC_T2_3
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
2 SSC DUTs connect with PC by UART.
AP placed near SSC DUTs
- tag: SSC_T2_4
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
PC has 1 wired NIC connected to AP.
AP placed near SSC DUTs and PC.
2 SSC DUTs connect with PC by UART.
- tag: SSC_T2_5
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
2 SSC DUTs connect with PC by UART.
- tag: SSC_T2_JAP
<<: *TEST_ENV
Target Count: 2
test environment detail: |-
PC has 1 wired NIC connected to APC.
APC control the power supply of multiple APs.
2 SSC DUT connect with PC by UART.
- tag: SSC_T2_PhyMode
<<: *TEST_ENV
PC OS: 'linux'
Target Count: 2
test environment detail: |-
2 SSC DUT connect with PC by UART.
PC has one WiFi NIC support capture wlan packet using libpcap.
Set 4 AP with phy mode 11b, 11g, 11n HT20, 11n HT40.
Put 4 APs near SSC DUTs.
- tag: SSC_T2_ShieldBox
<<: *TEST_ENV
Special: Y
Target Count: 2
test environment detail: |-
2 SSC DUT connect with PC by UART.
Put them to Shield box.
- tag: SSC_T2_ShieldBox2
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |
refer to figure.
2 SSC DUT connect with PC by UART. Put DUT board to different Shield boxes.
2 shield boxes are connected with programmable attenuator.
- tag: SSC_T2_Sniffer
<<: *TEST_ENV
PC OS: 'linux'
Special: N
Target Count: 2
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
2 SSC DUT connect with PC by UART.
- tag: SSC_T2_TempBox
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |
refer to figure.
2 SSC DUT connect with PC by UART. Put 1 DUT board to temperature box.
- tag: SSC_T2_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 2
test environment detail: |-
2 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T3_1
<<: *TEST_ENV
Special: N
Target Count: 1
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
3 SSC DUT connect with PC by UART.
- tag: SSC_T3_2
<<: *TEST_ENV
Special: N
Target Count: 3
test environment detail: |-
3 SSC DUT connect with PC by UART.
- tag: SSC_T3_PhyMode
<<: *TEST_ENV
PC OS: 'linux'
Target Count: 3
test environment detail: |-
3 SSC DUT connect with PC by UART.
PC has one WiFi NIC support capture wlan packet using libpcap.
Set 4 AP with (HT20, channel1), (HT20, channel2), (HT40, channel1), (HT40, channel2).
Put 4 APs near SSC DUTs.
- tag: SSC_T3_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 3
test environment detail: |-
3 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T3_MESH2
<<: *TEST_ENV
Special: Y
Target Count: 3
test environment detail: |-
3 SSC target connect with PC by UART.
PC has 1 wired NIC connected to a fixed channel Router.
- tag: SSC_T5_1
<<: *TEST_ENV
Target Count: 5
test environment detail: 5 SSC DUT connect with PC by UART.
- tag: SSC_T5_IOT1
<<: *TEST_ENV
Special: Y
Target Count: 5
test environment detail: |-
5 SSC DUTs connect with PC by UART.
some Android smart phone are placed near SSC DUTs.
- tag: SSC_T6_1
<<: *TEST_ENV
Special: Y
Target Count: 6
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
6 SSC DUT connect with PC by UART.
- tag: SSC_T6_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 6
test environment detail: |-
6 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T6_MESH2
<<: *TEST_ENV
Special: Y
Target Count: 6
test environment detail: |-
6 SSC target connect with PC by UART.
PC has 1 wired NIC connected to a fixed channel Router.
- tag: SSC_T1_DNS
<<: *TEST_ENV
Target Count: 1
test environment detail: 1 SSC DUT connect with PC by UART,AP should Access to the Internet.
- tag: SSC_T1_SmartConfigIOT
<<: *TEST_ENV
Special: Y
Target Count: 1
test environment detail: |
1 SSC DUT connect with PC by UART.
PC has 1 wired NIC connect to Common AP.
Several AP are placed near AT DUT.
Several smart phone installed test APK are placed near SSC DUT.
- tag: SSC_T12_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 12
test environment detail: |-
12 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T12_MESH2
<<: *TEST_ENV
Special: Y
Target Count: 12
test environment detail: |-
12 SSC target connect with PC by UART.
PC has 1 wired NIC connected to a fixed channel Router.
- tag: SSC_T20_1
<<: *TEST_ENV
Special: Y
Target Count: 20
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
20 SSC DUT connect with PC by UART.
- tag: SSC_T35_1
<<: *TEST_ENV
Special: Y
Target Count: 35
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
37 SSC DUT connect with PC by UART.
- tag: SSC_T50_1
<<: *TEST_ENV
Special: Y
Target Count: 50
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
50 SSC DUT connect with PC by UART.
- tag: SSC_T50_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 50
test environment detail: |-
50 SSC target connect with PC by UART.
A router with fixed channel nearby
- tag: SSC_T60_1
<<: *TEST_ENV
Special: Y
Target Count: 60
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
60 SSC DUT connect with PC by UART.
- tag: SSC_T80_1
<<: *TEST_ENV
Special: Y
Target Count: 80
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
80 SSC DUT connect with PC by UART.
- tag: SSC_T100_1
<<: *TEST_ENV
Special: Y
Target Count: 100
test environment detail: |-
PC has 1 wired NIC connected to AP.
PC has 1 WiFi NIC.
100 SSC DUT connect with PC by UART.
- tag: SSC_T50_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 50
test environment detail: |-
50 SSC target connect with PC by UART.
- tag: SSC_T100_MESH1
<<: *TEST_ENV
Special: Y
Target Count: 100
test environment detail: |-
100 SSC target connect with PC by UART.
+53 -6
View File
@@ -55,6 +55,20 @@ config USE_ONLY_LWIP_SELECT
will be redirected to lwip_select(), therefore, select can be used
for sockets only.
config LWIP_SO_LINGER
bool "Enable SO_LINGER processing"
default n
help
Enabling this option allows SO_LINGER processing.
l_onoff = 1,l_linger can set the timeout.
If l_linger=0, When a connection is closed, TCP will terminate the connection.
This means that TCP will discard any data packets stored in the socket send buffer
and send an RST to the peer.
If l_linger!=0,Then closesocket() calls to block the process until
the remaining data packets has been sent or timed out.
config LWIP_SO_REUSE
bool "Enable SO_REUSEADDR option"
default y
@@ -91,18 +105,31 @@ config LWIP_DHCP_MAX_NTP_SERVERS
First argument of sntp_setserver/sntp_setservername functions
is limited to this value.
config LWIP_IP_FRAG
bool "Enable fragment outgoing IP packets"
config LWIP_IP4_FRAG
bool "Enable fragment outgoing IP4 packets"
default y
help
Enabling this option allows fragmenting outgoing IP packets if their size
Enabling this option allows fragmenting outgoing IP4 packets if their size
exceeds MTU.
config LWIP_IP_REASSEMBLY
bool "Enable reassembly incoming fragmented IP packets"
config LWIP_IP6_FRAG
bool "Enable fragment outgoing IP6 packets"
default y
help
Enabling this option allows fragmenting outgoing IP6 packets if their size
exceeds MTU.
config LWIP_IP4_REASSEMBLY
bool "Enable reassembly incoming fragmented IP4 packets"
default n
help
Enabling this option allows reassemblying incoming fragmented IP packets.
Enabling this option allows reassemblying incoming fragmented IP4 packets.
config LWIP_IP6_REASSEMBLY
bool "Enable reassembly incoming fragmented IP6 packets"
default n
help
Enabling this option allows reassemblying incoming fragmented IP6 packets.
config LWIP_STATS
bool "Enable LWIP statistics"
@@ -435,6 +462,13 @@ config LWIP_WND_SCALE
help
Enable this feature to support TCP window scaling.
config LWIP_TCP_RTO_TIME
int "Default TCP rto time"
default 3000
help
Set default TCP rto time for a reasonable initial rto.
In bad network environment, recommend set value of rto time to 1500.
endmenu # TCP
menu "UDP"
@@ -503,6 +537,19 @@ config TCPIP_TASK_AFFINITY
default 0x0 if TCPIP_TASK_AFFINITY_CPU0
default 0x1 if TCPIP_TASK_AFFINITY_CPU1
config LWIP_IPV6_MEMP_NUM_ND6_QUEUE
int "Max number of IPv6 packets to queue during MAC resolution"
range 3 20
default 3
help
Config max number of IPv6 packets to queue during MAC resolution.
config LWIP_IPV6_ND6_NUM_NEIGHBORS
int "Max number of entries in IPv6 neighbor cache"
range 3 10
default 5
help
Config max number of entries in IPv6 neighbor cache
menuconfig PPP_SUPPORT
bool "Enable PPP support (new/experimental)"
+39 -4
View File
@@ -157,18 +157,32 @@
--------------------------------
*/
/**
* IP_REASSEMBLY==1: Reassemble incoming fragmented IP packets. Note that
* IP_REASSEMBLY==1: Reassemble incoming fragmented IP4 packets. Note that
* this option does not affect outgoing packet sizes, which can be controlled
* via IP_FRAG.
*/
#define IP_REASSEMBLY CONFIG_LWIP_IP_REASSEMBLY
#define IP_REASSEMBLY CONFIG_LWIP_IP4_REASSEMBLY
/**
* IP_FRAG==1: Fragment outgoing IP packets if their size exceeds MTU. Note
* LWIP_IPV6_REASS==1: reassemble incoming IP6 packets that fragmented. Note that
* this option does not affect outgoing packet sizes, which can be controlled
* via LWIP_IPV6_FRAG.
*/
#define LWIP_IPV6_REASS CONFIG_LWIP_IP6_REASSEMBLY
/**
* IP_FRAG==1: Fragment outgoing IP4 packets if their size exceeds MTU. Note
* that this option does not affect incoming packet sizes, which can be
* controlled via IP_REASSEMBLY.
*/
#define IP_FRAG CONFIG_LWIP_IP_FRAG
#define IP_FRAG CONFIG_LWIP_IP4_FRAG
/**
* LWIP_IPV6_FRAG==1: Fragment outgoing IP6 packets if their size exceeds MTU. Note
* that this option does not affect incoming packet sizes, which can be
* controlled via IP_REASSEMBLY.
*/
#define LWIP_IPV6_FRAG CONFIG_LWIP_IP6_FRAG
/**
* IP_REASS_MAXAGE: Maximum time (in multiples of IP_TMR_INTERVAL - so seconds, normally)
@@ -376,6 +390,12 @@
#define TCP_RCV_SCALE CONFIG_TCP_RCV_SCALE
#endif
/**
* LWIP_TCP_RTO_TIME: TCP rto time.
* Default is 3 second.
*/
#define LWIP_TCP_RTO_TIME CONFIG_LWIP_TCP_RTO_TIME
/*
----------------------------------
---------- Pbuf options ----------
@@ -545,6 +565,11 @@
*/
#define LWIP_TCP_KEEPALIVE 1
/**
* LWIP_SO_LINGER==1: Enable SO_LINGER processing.
*/
#define LWIP_SO_LINGER CONFIG_LWIP_SO_LINGER
/**
* LWIP_SO_RCVBUF==1: Enable SO_RCVBUF processing.
*/
@@ -661,6 +686,15 @@
*/
#define LWIP_ND6_RDNSS_MAX_DNS_SERVERS 0
/**
* MEMP_NUM_ND6_QUEUE: Max number of IPv6 packets to queue during MAC resolution.
*/
#define MEMP_NUM_ND6_QUEUE CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE
/**
* LWIP_ND6_NUM_NEIGHBORS: Number of entries in IPv6 neighbor cache
*/
#define LWIP_ND6_NUM_NEIGHBORS CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS
/*
---------------------------------------
@@ -761,6 +795,7 @@
#define ESP_LWIP 1
#define ESP_LWIP_ARP 1
#define ESP_IPV6 1
#define ESP_PER_SOC_TCP_WND 0
#define ESP_THREAD_SAFE 1
#define ESP_THREAD_SAFE_DEBUG LWIP_DBG_OFF
@@ -81,6 +81,12 @@ low_level_init(struct netif *netif)
#endif
#endif
#if ESP_IPV6
#if LWIP_IPV6 && LWIP_IPV6_MLD
netif->flags |= NETIF_FLAG_MLD6;
#endif
#endif
#if !ESP_L2_TO_L3_COPY
netif->l2_buffer_free_notify = esp_wifi_internal_free_rx_buffer;
#endif
@@ -108,28 +108,39 @@ static void transport_simple_ble_read(esp_gatts_cb_event_t event, esp_gatt_if_t
{
static const uint8_t *read_buf = NULL;
static uint16_t read_len = 0;
static uint16_t max_read_len = 0;
esp_gatt_status_t status = ESP_OK;
ESP_LOGD(TAG, "Inside read w/ session - %d on param %d %d",
param->read.conn_id, param->read.handle, read_len);
if (!read_len && !param->read.offset) {
ESP_LOGD(TAG, "Reading attr value first time");
status = esp_ble_gatts_get_attr_value(param->read.handle, &read_len, &read_buf);
status = esp_ble_gatts_get_attr_value(param->read.handle, &read_len, &read_buf);
max_read_len = read_len;
} else if ((read_len + param->read.offset) > max_read_len) {
status = ESP_GATT_INVALID_OFFSET;
} else {
ESP_LOGD(TAG, "Subsequent read request for attr value");
}
esp_gatt_rsp_t gatt_rsp = {0};
gatt_rsp.attr_value.len = MIN(read_len, (protoble_internal->gatt_mtu - 1));
gatt_rsp.attr_value.handle = param->read.handle;
gatt_rsp.attr_value.offset = param->read.offset;
gatt_rsp.attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE;
if (gatt_rsp.attr_value.len && read_buf) {
memcpy(gatt_rsp.attr_value.value,
read_buf + param->read.offset,
gatt_rsp.attr_value.len);
if (status == ESP_GATT_OK) {
gatt_rsp.attr_value.len = MIN(read_len, (protoble_internal->gatt_mtu - 1));
gatt_rsp.attr_value.auth_req = ESP_GATT_AUTH_REQ_NONE;
if (gatt_rsp.attr_value.len && read_buf) {
memcpy(gatt_rsp.attr_value.value,
read_buf + param->read.offset,
gatt_rsp.attr_value.len);
}
read_len -= gatt_rsp.attr_value.len;
} else {
read_len = 0;
max_read_len = 0;
read_buf = NULL;
}
read_len -= gatt_rsp.attr_value.len;
esp_err_t err = esp_ble_gatts_send_response(gatts_if, param->read.conn_id,
param->read.trans_id, status, &gatt_rsp);
if (err != ESP_OK) {
+11 -9
View File
@@ -34,18 +34,20 @@ typedef struct {
static int resolve_dns(const char *host, struct sockaddr_in *ip) {
struct hostent *he;
struct in_addr **addr_list;
he = gethostbyname(host);
if (he == NULL) {
return ESP_FAIL;
}
addr_list = (struct in_addr **)he->h_addr_list;
if (addr_list[0] == NULL) {
const struct addrinfo hints = {
.ai_family = AF_INET,
.ai_socktype = SOCK_STREAM,
};
struct addrinfo *res;
int err = getaddrinfo(host, NULL, &hints, &res);
if(err != 0 || res == NULL) {
ESP_LOGE(TAG, "DNS lookup failed err=%d res=%p", err, res);
return ESP_FAIL;
}
ip->sin_family = AF_INET;
memcpy(&ip->sin_addr, addr_list[0], sizeof(ip->sin_addr));
memcpy(&ip->sin_addr, &((struct sockaddr_in *)(res->ai_addr))->sin_addr, sizeof(ip->sin_addr));
freeaddrinfo(res);
return ESP_OK;
}
@@ -325,6 +325,7 @@ esp_err_t tcpip_adapter_down(tcpip_adapter_if_t tcpip_if)
for(int8_t i = 0 ;i < LWIP_IPV6_NUM_ADDRESSES ;i++) {
netif_ip6_addr_set(esp_netif[tcpip_if] ,i ,IP6_ADDR_ANY6);
netif_ip6_addr_set_state(esp_netif[tcpip_if], i, IP6_ADDR_INVALID);
}
netif_set_addr(esp_netif[tcpip_if], IP4_ADDR_ANY4, IP4_ADDR_ANY4, IP4_ADDR_ANY4);
netif_set_down(esp_netif[tcpip_if]);
+20 -22
View File
@@ -273,42 +273,40 @@ _out:
* provisioning, -1 if wps_a is considered more like, or 0 if no preference
*/
int wps_ap_priority_compar(const struct wpabuf *wps_a,
const struct wpabuf *wps_b)
const struct wpabuf *wps_b)
{
struct wps_parse_attr *attr_a, *attr_b;
struct wps_parse_attr *attr = NULL;
int sel_a, sel_b;
int ret = 0;
int ret = 0; /* No preference */
attr_a = (struct wps_parse_attr *)os_zalloc(sizeof(struct wps_parse_attr));
attr_b = (struct wps_parse_attr *)os_zalloc(sizeof(struct wps_parse_attr));
attr = os_zalloc(sizeof(*attr));
if (attr_a == NULL || attr_b == NULL) {
ret = 0;
goto _out;
if (!attr)
return ret;
if (wps_a == NULL || wps_parse_msg(wps_a, attr) < 0) {
ret = 1;
goto exit;
}
sel_a = attr->selected_registrar && *(attr->selected_registrar) != 0;
if (wps_a == NULL || wps_parse_msg(wps_a, attr_a) < 0)
return 1;
if (wps_b == NULL || wps_parse_msg(wps_b, attr_b) < 0)
return -1;
sel_a = attr_a->selected_registrar && *attr_a->selected_registrar != 0;
sel_b = attr_b->selected_registrar && *attr_b->selected_registrar != 0;
if (wps_b == NULL || wps_parse_msg(wps_b, attr) < 0) {
ret = -1;
goto exit;
}
sel_b = attr->selected_registrar && *(attr->selected_registrar) != 0;
if (sel_a && !sel_b) {
ret = -1;
goto _out;
goto exit;
}
if (!sel_a && sel_b) {
ret = 1;
goto _out;
goto exit;
}
_out:
if (attr_a)
os_free(attr_a);
if (attr_b)
os_free(attr_b);
exit:
os_free(attr);
return ret;
}
@@ -1689,6 +1689,7 @@ int wps_build_cred(struct wps_data *wps, struct wpabuf *msg)
if (random_get_bytes(r, sizeof(r)) < 0)
return -1;
os_free(wps->new_psk);
wps->new_psk = NULL;
//wps->new_psk = base64_encode(r, sizeof(r), &wps->new_psk_len);
if (wps->new_psk == NULL)
return -1;
+1 -1
View File
@@ -1,3 +1,3 @@
IDF_VERSION_MAJOR := 3
IDF_VERSION_MINOR := 2
IDF_VERSION_PATCH := 4
IDF_VERSION_PATCH := 5
+1 -1
View File
@@ -33,7 +33,7 @@ cmake_ver_minor=$(get_ver_from_cmake IDF_VERSION_MINOR)
cmake_ver_patch=$(get_ver_from_cmake IDF_VERSION_PATCH)
version_from_cmake="${cmake_ver_major}.${cmake_ver_minor}.${cmake_ver_patch}"
git_desc=$(git describe --tags)
git_desc=$(git describe)
git_desc_regex="^v([0-9]+)\.([0-9]+)(\.([0-9]+))?.*$"
if [[ ! ${git_desc} =~ ${git_desc_regex} ]]; then
echo "Could not determine the version from 'git describe' output: ${git_desc}"
+2 -2
View File
@@ -35,7 +35,7 @@ def target_branch_candidates(proj_name):
pass
# branch name read from IDF
try:
git_describe = subprocess.check_output(["git", "describe", "--tags", "HEAD"])
git_describe = subprocess.check_output(["git", "describe", "HEAD"])
match = IDF_GIT_DESCRIBE_PATTERN.search(git_describe.decode())
if match:
major_revision = match.group(1)
@@ -68,7 +68,7 @@ if __name__ == "__main__":
for candidate in candidate_branches:
try:
subprocess.check_call(["git", "checkout", candidate])
subprocess.check_call(["git", "checkout", "-f", candidate], stdout=subprocess.PIPE, stderr=subprocess.PIPE) # not print the stdout nor stderr
print("CI using ref {} for project {}".format(candidate, args.project))
break
except subprocess.CalledProcessError:
+1
View File
@@ -27,6 +27,7 @@ tools/ci/get-full-sources.sh
tools/ci/mirror-submodule-update.sh
tools/ci/mirror-synchronize.sh
tools/ci/push_to_github.sh
tools/ci/retry_failed.sh
tools/ci/test_build_system.sh
tools/ci/test_build_system_cmake.sh
tools/ci/test_configure_ci_environment.sh
+45
View File
@@ -0,0 +1,45 @@
#!/usr/bin/env bash
set -euo pipefail
#
# Retries a command RETRY_ATTEMPTS times in case of failure
#
# Inspired by https://stackoverflow.com/a/8351489
#
max_attempts=${RETRY_ATTEMPTS-3}
RETRY_TIMEWAIT=${RETRY_TIMEWAIT-1}
attempt=1
exitCode=0
whole_start=$(date +%s)
attempt_start=whole_start
while true; do
if "$@" ; then
exitCode=0
break
else
exitCode=$?
fi
if (( $attempt >= $max_attempts )) ; then
break
fi
echo "Failed! ("$@") Spent time $(( $(date '+%s') - ${attempt_start} )) sec. Retrying in ${RETRY_TIMEWAIT}..." 1>&2
sleep $RETRY_TIMEWAIT
attempt=$(( attempt + 1 ))
RETRY_TIMEWAIT=$(( RETRY_TIMEWAIT * 2 ))
attempt_start=$(date +%s)
done
if [[ $exitCode != 0 ]] ; then
echo -n "Totally failed! ("$@")" 1>&2
else
echo -n "Done ("$@")" 1>&2
fi
echo " Spent time $(( $(date '+%s') - ${whole_start} )) sec in total" 1>&2
exit $exitCode
+1 -2
View File
@@ -1,11 +1,10 @@
#! /bin/bash
# Regexp for matching job names which are incompatible with Python 3
# - assign_test, nvs_compatible_test, IT - auto_test_script causes the incompatibility
# - UT_009_ - multi-device tests are not compatible
# - UT_014_ - multi-device tests are not compatible
# - UT_017_ - multi-device tests are not compatible
py3_incomp='assign_test|nvs_compatible_test|IT|UT_009_|UT_013_|UT_014_|UT_017_'
py3_incomp='UT_009_|UT_013_|UT_014_|UT_017_'
if [ -z ${PYTHON_VER+x} ] || [[ $CI_JOB_NAME =~ $py3_incomp ]]; then
# Use this version of the Python interpreter if it was not defined before or
+1 -1
View File
@@ -1,3 +1,3 @@
set(IDF_VERSION_MAJOR 3)
set(IDF_VERSION_MINOR 2)
set(IDF_VERSION_PATCH 4)
set(IDF_VERSION_PATCH 5)