mirror of
https://github.com/espressif/esp-idf.git
synced 2026-06-17 01:13:56 +02:00
Compare commits
71 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8e8b76783b | |||
| 4b734a3de3 | |||
| 69d577abdd | |||
| ccd8c0a689 | |||
| d5bf3cfc5f | |||
| e7c1dda22d | |||
| 538bf6cbb3 | |||
| 5c67e1c946 | |||
| 94cca60872 | |||
| afb17229ef | |||
| 0a977ab54e | |||
| dcce508a7a | |||
| 6de91f9d19 | |||
| dc66e7a769 | |||
| 97a95fd160 | |||
| e2227d8c77 | |||
| 0a099b99b1 | |||
| 75cd0d14c2 | |||
| cc611a76c6 | |||
| 5cdbb9e7b1 | |||
| c9a075ad1b | |||
| c374008d22 | |||
| 0b94e9e47f | |||
| 3ebf6ec6e5 | |||
| be7ee1aa53 | |||
| 8cd3209f74 | |||
| d38a28c577 | |||
| a0c2b942c2 | |||
| 209f7bc041 | |||
| 6ccba01bb3 | |||
| ec0030609e | |||
| bb1cdfa118 | |||
| 121e20aa25 | |||
| 6d3afb3a18 | |||
| c8b09c650d | |||
| c3b9f6b9e3 | |||
| 3c3d6d7299 | |||
| ebf7dd5dcc | |||
| b5bb9b7bbd | |||
| afc55aec43 | |||
| 890b0ff16d | |||
| 6fc081956f | |||
| 6a2609997c | |||
| 7f86d81083 | |||
| 993da2b282 | |||
| 5f9908874a | |||
| 688c623156 | |||
| 5d8c4143ef | |||
| 6710912670 | |||
| 608179caf1 | |||
| 205f345696 | |||
| f2b8bb6dae | |||
| f19da37212 | |||
| 460e04f4ff | |||
| f5e7ed9835 | |||
| ce955de719 | |||
| 364fb4d284 | |||
| 3f35383544 | |||
| 5c9a5e6b80 | |||
| 548325c01f | |||
| 7dd3f60f17 | |||
| 2fcb579748 | |||
| ae86aff61b | |||
| 001be802c6 | |||
| 0eb17e7601 | |||
| 8ada763bee | |||
| 595be5a143 | |||
| d16831cf81 | |||
| 94353c411e | |||
| 4228e2e62e | |||
| 5b6bc8c5ed |
+73
-226
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
|
||||
/*******************************************************************************
|
||||
**
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
|
||||
@@ -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.
|
||||
|
||||
+1
-1
Submodule components/bt/lib updated: 3305ff336e...6e86026dbd
@@ -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
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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]")
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
*
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
Submodule components/esp32/lib updated: 396d8a29d1...0a56a79ebe
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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)) {
|
||||
|
||||
@@ -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.等待10s,JAP 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 timeout(dhcp -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
@@ -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)"
|
||||
|
||||
+1
-1
Submodule components/lwip/lwip updated: da2740fa8d...95710c4276
@@ -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) {
|
||||
|
||||
@@ -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]);
|
||||
|
||||
@@ -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
@@ -1,3 +1,3 @@
|
||||
IDF_VERSION_MAJOR := 3
|
||||
IDF_VERSION_MINOR := 2
|
||||
IDF_VERSION_PATCH := 4
|
||||
IDF_VERSION_PATCH := 5
|
||||
|
||||
@@ -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}"
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
Executable
+45
@@ -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,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,3 +1,3 @@
|
||||
set(IDF_VERSION_MAJOR 3)
|
||||
set(IDF_VERSION_MINOR 2)
|
||||
set(IDF_VERSION_PATCH 4)
|
||||
set(IDF_VERSION_PATCH 5)
|
||||
|
||||
Reference in New Issue
Block a user