]> granicus.if.org Git - esp-idf/commitdiff
CI: add BLE test cases to CI
authorHe Yin Ling <heyinling@espressif.com>
Fri, 23 Jun 2017 10:06:30 +0000 (18:06 +0800)
committerHe Yin Ling <heyinling@espressif.com>
Tue, 27 Jun 2017 02:35:33 +0000 (10:35 +0800)
components/idf_test/integration_test/IT_BTSTK_COEXIST.yml [new file with mode: 0644]
components/idf_test/integration_test/IT_BTSTK_GAP.yml [new file with mode: 0644]
components/idf_test/integration_test/IT_BTSTK_GATT.yml [new file with mode: 0644]
components/idf_test/integration_test/IT_BTSTK_MISC.yml [new file with mode: 0644]
components/idf_test/integration_test/InitialConditionAll.yml
components/idf_test/integration_test/KnownIssues
components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py [new file with mode: 0644]
components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py [new file with mode: 0644]
components/idf_test/integration_test/TestEnvAll.yml

diff --git a/components/idf_test/integration_test/IT_BTSTK_COEXIST.yml b/components/idf_test/integration_test/IT_BTSTK_COEXIST.yml
new file mode 100644 (file)
index 0000000..79afba2
--- /dev/null
@@ -0,0 +1,302 @@
+test cases:
+- ID: BTSTK_COEXIST_0101
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE advertise co-exist with WIFI
+  summary: BLE advertise co-exist with wifi scan
+  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
+    2. DUT2 do wifi scan and DUT1 do BLE scan
+    3. DUT2 BLE do advertise in range (0x400 - 0x800)
+    4. DUT2 do wifi scan and DUT1 do BLE scan'
+  expected result: '1. succeed
+    2. external AP in wifi scan result,  and DUT2 in BLE scan result
+    3. succeed
+    4. external AP in wifi scan result,  and DUT2 in BLE scan result'
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x20-0x40"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 op -S -o 1"
+    - ["R SSC2 C +MODE:OK"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -D -z start -t 2"
+    - [""]
+  - - "SSC SSC2 sta -S"
+    - ["P SSC2 P <ap_ssid>", "P SSC1 P <dut2_bt_mac> C Complete"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC1 blescan -D -z start -t 2"
+    - [""]
+  - - "SSC SSC2 sta -S"
+    - ["P SSC2 P <ap_ssid>", "P SSC1 P <dut2_bt_mac>"]
+- ID: BTSTK_COEXIST_0102
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE advertise co-exist with WIFI
+  summary: BLE advertise co-exist with wifi join AP
+  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
+    2. DUT2 do wifi JAP and DUT1 do BLE scan
+    3. DUT2 BLE do advertise in range (0x400 - 0x800)
+    4. DUT2 do wifi JAP and DUT1 do BLE scan'
+  expected result: '1. succeed
+    2. JAP succeed,  and DUT2 in BLE scan result
+    3. succeed
+    4. JAP succeed,  and DUT2 in BLE scan result'
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 op -S -o 1"
+    - ["R SSC2 C +MODE:OK"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
+    - [""]
+  - - "SSC SSC1 blescan -D -z start -t 5"
+    - ["P SSC2 C +JAP:CONNECTED", "P SSC1 P <dut2_bt_mac> C Complete"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
+    - [""]
+  - - "SSC SSC1 blescan -D -z start -t 5"
+    - ["P SSC2 C +JAP:CONNECTED", "P SSC1 P <dut2_bt_mac> C Complete"]
+- ID: BTSTK_COEXIST_0103
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE advertise co-exist with WIFI
+  summary: BLE advertise co-exist with wifi connected with AP
+  steps: '1. DUT2 BLE do advertise in range (0x20 - 0x40)
+    2. DUT2 do wifi JAP
+    3. DUT1 do BLE scan
+    4. DUT2 BLE do advertise in range (0x400 - 0x800)
+    5. DUT2 do wifi JAP
+    6. DUT1 do BLE scan'
+  expected result: '1. succeed
+    2. JAP succeed
+    3. STA not disconnected with AP and DUT2 in BLE scan result
+    4. succeed
+    5. JAP succeed
+    6. STA not disconnected with AP and DUT2 in BLE scan result'
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 op -S -o 1"
+    - ["R SSC2 C +MODE:OK"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
+    - ["P SSC2 C +JAP:CONNECTED"]
+  - - "SSC SSC1 blescan -D -z start -t 10"
+    - ["P SSC2 NC DISCONNECT", "P SSC1 P <dut2_bt_mac> C Complete"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z start -c 0 -i 0x400-0x800"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 sta -C -s <ap_ssid> -p <ap_password>"
+    - ["P SSC2 C +JAP:CONNECTED"]
+  - - "SSC SSC1 blescan -D -z start -t 10"
+    - ["P SSC2 NC DISCONNECT", "P SSC1 P <dut2_bt_mac> C Complete"]
+- ID: BTSTK_COEXIST_0201
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE send recv co-exist with WIFI
+  summary: BLE send recv co-exist with wifi scan
+  steps: '1. DUT1 BLE read long with interval 50 ms
+    2. DUT1 do wifi scan
+    3. DUT1 BLE read long with interval 5 ms
+    4. DUT1 do wifi scan'
+  expected result: '1. succeed
+    2. external AP in wifi scan result, read succeed
+    3. succeed
+    4. external AP in wifi scan result, read succeed'
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 op -S -o 1"
+    - ["R SSC1 C +MODE:OK"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20 -j 50"
+    - ["P SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 sta -S"
+    - ["P SSC1 P <ap_ssid>", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20 -j 5"
+    - ["P SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 sta -S"
+    - ["P SSC1 P <ap_ssid>", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+- ID: BTSTK_COEXIST_0202
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE send recv co-exist with WIFI
+  summary: BLE send recv co-exist with wifi join AP
+  steps: '1. DUT1 BLE read long with interval 50 ms
+    2. DUT1 do wifi JAP
+    3. DUT1 BLE read long with interval 5 ms
+    4. DUT1 do wifi JAP'
+  expected result: '1. succeed
+    2. JAP succeed, read succeed
+    3. succeed
+    4. JAP succeed, read succeed'
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 op -S -o 1"
+    - ["R SSC1 C +MODE:OK"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
+    - ["P SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
+    - ["P SSC1 C +JAP:CONNECTED", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
+    - ["P SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
+    - ["P SSC1 C +JAP:CONNECTED", "P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+- ID: BTSTK_COEXIST_0203
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE send recv co-exist with WIFI
+  summary: BLE send recv co-exist with wifi join AP
+  steps: '1. DUT1 do wifi JAP
+    2. DUT1 BLE read long with interval 50 ms
+    3. DUT1 do wifi JAP
+    4. DUT1 BLE read long with interval 5 ms'
+  expected result: '1. succeed
+    2. JAP succeed, read succeed
+    3. succeed
+    4. JAP succeed, read succeed'
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 op -S -o 1"
+    - ["R SSC1 C +MODE:OK"]
+  - - "SSC SSC1 sta -C -s <ap_ssid> -p <ap_password>"
+    - ["P SSC1 C +JAP:CONNECTED", ""]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
+    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
+    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+- ID: BTSTK_COEXIST_0301
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE co-exist with WIFI on all channels
+  summary: BLE co-exist with wifi when join AP on different channels
+  steps: '1. DUT1 set to AP mode, DUT2 set to STA mode, config AP on a specific channel
+    2. DUT1 starts read long char
+    3. DUT2 join DUT1 soft AP
+    4. Loop step 1-3 for all 13 channels'
+  expected result: '1. succeed
+    2. succeed
+    3. succeed
+    4. succeed'
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0.3
+  module: BT Stack
+  sub module: Coexist
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] op -S -o [2,1]"
+    - ["P SSC[1-2] C +MODE:OK"]
+  - - 'LOOP 13 3 "range(1,14)"'
+    - [""]
+  - - "SSC SSC1 ap -S -s <target_ssid> -p <target_password> -n {%d}"
+    - ["P SSC1 C +SAP:OK"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 20"
+    - [""]
+  - - "SSC SSC2 sta -C -s <target_ssid> -c <target_password>"
+    - ["P SSC1 C +GATTC:Read,OK,0010,A000,C101", "P SSC2 C +JAP:CONNECTED"]
diff --git a/components/idf_test/integration_test/IT_BTSTK_GAP.yml b/components/idf_test/integration_test/IT_BTSTK_GAP.yml
new file mode 100644 (file)
index 0000000..7f28095
--- /dev/null
@@ -0,0 +1,1780 @@
+test cases:
+- ID: BTSTK_GAP_01001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP param device name test
+  summary: ble set ascii device name
+  steps: |
+    1. DUT1 set ascii device name
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. device name in scan result
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name>"]
+- ID: BTSTK_GAP_01002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP param device name test
+  summary: ble set non-ascii device name
+  steps: |
+    1. DUT1 set non-ascii device name
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. device name in scan result
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_hex>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name_hex>"]
+- ID: BTSTK_GAP_01003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP param device name test
+  summary: ble set long device name
+  steps: |
+    1. DUT1 set 32 byte device name A
+    2. stop advertising
+    3. config scan response and start advertising
+    4. DUT2 do active scan
+    5. DUT1 set 33 bytes device name
+    6. stop advertising
+    7. config scan response and start advertising
+    8. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. DUT1 mac in scan result (device name is too long)
+    5. failed
+    6. succeed
+    7. succeed
+    8. DUT1 mac in scan result (device name is too long)
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_32>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_bt_mac>"]
+  - - "SSC SSC1 ble -S -z name -n 123456789012345678901234567890123"
+    - ["R SSC1 C +BLE:ERROR"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_bt_mac>"]
+- ID: BTSTK_GAP_02001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response include name
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set include device name for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set not include device name for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get complete device name in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. do not have complete device name in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -n 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.NameComplete=<dut1_ble_name>)'
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.NameComplete)'
+- ID: BTSTK_GAP_02002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response include Tx power
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set include Tx power for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set not include Tx power for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get Tx power in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. do not have Tx power in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -x 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.TxPower="")'
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -x 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.TxPower)'
+- ID: BTSTK_GAP_02003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response adv interval
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set max interval 0x40 min interval 0x20 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set max interval 0x400 min interval 0x200 for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get interval 0x40 0x20 in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. get interval 0x400 0x200 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x20-0x40 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0020-0x0040")'
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x200-0x400 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.SlaveConnIntervalRange="0x0200-0x0400")'
+- ID: BTSTK_GAP_02004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response appearance
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set appearance to 0 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+    5. DUT1 stop advertising
+    6. DUT1 set appearance to 1 for adv data and scan response
+    7. DUT1 start advertising
+    8. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. do not have appearance in ADV_IND and SCAN_RSP
+    5. succeed
+    6. succeed
+    7. succeed
+    8. get appearance 1 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -a 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(!HCIEvent.data_0.Appearance)'
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -a 1 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Appearance="0x01")'
+- ID: BTSTK_GAP_02005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response manufacturer data
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 set manufacturer to 0x12345678 for adv data and scan response
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get manufacturer data 0x12345678 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -m 0x12345678 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ManufacturerSpecificData="0x12345678")'
+- ID: BTSTK_GAP_02006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response service data
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response service data 0x1234123456 and not include device name
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get ServiceData16BitUUID 0x1234123456 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -d 0x1234123456 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.ServiceData16BitUUID="1234123456")'
+- ID: BTSTK_GAP_02007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP config advertising data
+  summary: ble set advertising data / scan response service uuid list
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set advertising data and scan response not include name, service uuid list 0xABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000
+    3. DUT1 start advertising
+    4. PC do active scan and capture advertising report
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get Complete16BitServiceUUID 0xABCD Complete32BitServiceUUID 0xABCDDCBA
+    and Complete128BitServiceUUID 0x12349B5F8000008000100000ABCD0000 in ADV_IND and SCAN_RSP
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v2 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -n 0 -x 0 -i 0x00-0x00 -s ABCD,ABCDDCBA,12349B5F8000008000100000ABCD0000 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_RSP")(HCIEvent.address_0=<dut1_bt_mac>)(HCIEvent.data_0.Complete16BitServiceUUID="ABCD")(HCIEvent.data_0.Complete32BitServiceUUID="ABCDDCBA")(HCIEvent.data_0.Complete128BitServiceUUID="12349B5F8000008000100000ABCD0000")'
+- ID: BTSTK_GAP_03001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter adv_type
+  steps: |
+    1. DUT1 stop advertise and set short device name
+    2. DUT1 start adv with adv_type ADV_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_HIGH
+    5. repeat step 1-3 with adv_type ADV_TYPE_SCAN_IND
+    6. repeat step 1-3 with adv_type ADV_TYPE_NONCONN_IND
+    7. repeat step 1-3 with adv_type ADV_TYPE_DIRECT_IND_LOW
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_DIRECT_IND with DUT1 BT MAC
+    5. get ADV_SCAN_IND with DUT1 BT MAC
+    6. get ADV_NONCONN_IND with DUT1 BT MAC
+    7. can not get ADV_DIRECT_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start -t 0"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z start -t 1 -y 0 -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_DIRECT_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x00B0-0x0200 -t 3"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start -t 2 -i 0x00B0-0x0200"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z start -t 3 -i 0x00B0-0x0200"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x0640-0x0780 -t 3"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start -t 4 -i 0x0640-0x0780 -y 0 -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 3 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0!=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter channel map
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv on channel 37
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with channel map 38, 39, all
+    4. repeat step 1-3 with channel map not valid
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_IND with DUT1 BT MAC
+    5. can not get ADV_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - LOOP 6 3 "[1,2,4,7,8,9]" "['=']*4+['!=']*2"
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start -t 0 -h {%d}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.address_0{%s}<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter own address type
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with own address type public
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with own address type random, rpa_public, rpa_random
+    5. repeat step 1-3 with channel map not valid
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 BT MAC
+    4. get ADV_IND with DUT1 BT MAC
+    5. can not get ADV_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - LOOP 4 3 "[0,2,1,3]" "['PDU','PDU','NPDU','NPDU']"
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start -t 0 -o {%d}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="ADV_IND")(HCIEvent.data_0.NameComplete=<dut1_ble_name>)(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter peer address and peer address type
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with adv type DIRECT_IND_HIGH, peer address type public and peer address as <hci_nic_mac>
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv type DIRECT_IND_HIGH, peer address type random and peer address as <hci_nic_mac>
+  expected result: |
+    1. succeed
+    2. succeed
+    3. get ADV_IND with DUT1 name DUT1 BT MAC
+    4. get ADV_IND with DUT1 name and DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - LOOP 2 2 "[0,1]" "['=','!=']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 1 -y {%d} -b <hci_nic_mac>"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC PDU (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.address_0{%s}<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter adv interval
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 start adv with adv interval 0x20-0x20 on channel 1
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with adv interval 0x40-0x40, 0x60-0x60
+  expected result: |
+    1. succeed
+    2. succeed
+    3. calculate adv intervals, within the interval range in adv param
+    4. calculate adv intervals, within the interval range in adv param
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - "BLEFunction/AdvInterval"
+  - - interval_list = ["0x0020-0x0020", "0x0040-0x0040", "0x0060-0x0060"]
+    - ['']
+  - - deviation = 0.3
+    - ['']
+- ID: BTSTK_GAP_03006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for SCAN_IND
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set incorrect adv interval for SCAN_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with correct adv interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. can not get SCAN_IND with DUT1 BT MAC
+    4. get SCAN_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 2 -i {%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="SCAN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_03007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for NONCONN_IND
+  steps: |
+    1. DUT1 stop advertise
+    2. DUT1 set incorrect adv interval for NONCONN_IND
+    3. PC do active scan and capture advertising report
+    4. repeat step 1-3 with correct adv interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. can not get SCAN_IND with DUT1 BT MAC
+    4. get SCAN_IND with DUT1 BT MAC
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_3
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-03-01)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+    - ['R PC_COM C +NIC_START:OK']
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['NPDU','PDU']"
+    - [""]
+  - - "SSC SSC1 bleadv -D -z start -t 3 -i {%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "HCITOOL 2 -i <hci_nic> lescan"
+    - - 'P PC_COM C +HCITOOL:OK'
+      - 'P BLENIC {%s} (HCIEvent.le_sub_event_code="LEAdvReport")(HCIEvent.event_type_0="NONCONN_IND")(HCIEvent.address_0=<dut1_bt_mac>)'
+- ID: BTSTK_GAP_04001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set scan param
+  summary: ble set scan type
+  steps: |
+    1. stop advertise and set short device name
+    2. DUT1 set adv data with manufacturer data A
+    3. DUT1 set scan response data with manufacturer data B
+    4. DUT2 do passive scan
+    5. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. get manufacturer data A
+    5. get manufacturer data B
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB"
+    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0 -s 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3 -e 2"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'R SSC2 NRE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>) C Complete'
+  - - "SSC SSC2 blescan -D -z stop"
+    - ['R SSC2 C +BLESCAN']
+  - - "SSC SSC2 blescan -L -c 0 -s 1"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_04002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set scan param
+  summary: ble set scan own address type (not test if own address work as expected)
+  steps: |
+    1. DUT1 start advertising
+    2. DUT2 set own addr type (public, random, rpa_public, rpa_random)
+    3. DUT2 do active scan
+    4. DUT2 set invalid own addr type
+  expected result: |
+    1. succeed
+    2. succeed
+    3. able to scan DUT1
+    4. error
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - LOOP 4 2 "[0,1,2,3]"
+    - ['']
+  - - "SSC SSC2 blescan -L -c 0 -s 1 -o {%d}"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ['R SSC2 P <dut1_bt_mac> C Complete']
+  - - "SSC SSC2 blescan -L -c 0 -o 4"
+    - ["R SSC2 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_04003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set scan param
+  summary: ble set scan interval (will not test if scan interval work as expected)
+  steps: |
+    1. DUT2 start advertising
+    2. DUT1 set scan interval 0x0004
+    3. DUT1 set scan interval 0x4000
+    4. DUT1 set invalid scan interval
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. error
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleadv -D -z start"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0004"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4000"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x0003"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+  - - "SSC SSC1 blescan -L -c 0 -s 1 -i 0x4001"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_04004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP set scan param
+  summary: ble set scan window (will not test if scan window work as excepted)
+  steps: |
+    1. DUT2 set scan interval 0x0004
+    2. DUT2 set scan interval 0x4000
+    3. DUT2 set scan interval 0x0003
+    4. DUT2 set scan interval 0x4001
+  expected result: |
+    1. succeed
+    2. succeed
+    3. fail
+    4. fail
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 blescan -L -c 0 -w 0x0004"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x4000"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x0003"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+  - - "SSC SSC1 blescan -L -c 0 -w 0x4001"
+    - ["R SSC1 C +BLESCAN:SetScanParam,ERROR"]
+- ID: BTSTK_GAP_05001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP start stop adv / scan
+  summary: stop and start adv in wrong state
+  steps: |
+    1. DUT1 stop adv
+    2. DUT1 stop adv
+    3. DUT2 do passive scan
+    4. DUT1 start adv
+    5. DUT1 start adv
+    6. DUT2 do passive scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 not in scan result
+    4. succeed
+    5. succeed
+    6. DUT1 in scan result
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ["R SSC2 NP <dut1_bt_mac> C Complete"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1"
+    - ["R SSC2 P <dut1_bt_mac> C Complete"]
+- ID: BTSTK_GAP_05002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP start stop adv / scan
+  summary: cancel scan when scanning or not scanning
+  steps: |
+    1. DUT1 start scanning for 3 seconds
+    2. DUT1 stop scanning
+    3. DUT1 stop scanning
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC1 blescan -D -z start -t 3"
+    - ["R SSC1 C +BLESCAN:OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:OK"]
+  - - "SSC SSC1 blescan -D -z stop"
+    - ["R SSC1 C +BLESCAN:OK"]
+- ID: BTSTK_GAP_06001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect as "client" and "server"
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 disconnected with DUT2
+    3. DUT1 start gatt server app
+    4. DUT1 connect to DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
+    - ['R SSC1 C +BLE:GattsConnect']
+- ID: BTSTK_GAP_06002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP connect / disconnect
+  summary: ble disconnect as "client" and "server"
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 disconnected with DUT2 as "client"
+    3. DUT1 start gatt server app
+    4. DUT1 connect to DUT2 as client
+    5. DUT1 disconnect with DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+- ID: BTSTK_GAP_06003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect to same connection multiple times
+  steps: |
+    1. DUT1 connect to DUT2 as "client"
+    2. DUT1 start gatt server app
+    3. DUT1 connect to DUT2 as "client" again
+    4. DUT1 connect to DUT2 as "server"
+    5. DUT1 disconnected with DUT2 as "client"
+    6. DUT1 disconnected with DUT2 as "server"
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcOpen,OK']
+  - - "SSC SSC1 bleconn -C -p 0xA0 -a <dut2_bt_mac> -z server"
+    - ['R SSC1 C +BLE:GattsConnect']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['R SSC1 RE +BLE:GattsClose,OK']
+- ID: BTSTK_GAP_06004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect to invalid address
+  steps: |
+    1. DUT1 connect to invalid address
+    2. DUT1 connect to DUT2
+  expected result: |
+    1. failed
+    2. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a 24:0a:c4:04:26:50"
+    - ['R SSC1 C +BLECONN:OK']
+  - - DELAY 30
+    - ['R SSC1 C +BLE:GattcOpen,ERROR']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+- ID: BTSTK_GAP_06005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect event to active app
+  steps: |
+    1. DUT1, DUT2 create gatts app
+    2. DUT1 connect to DUT2 as "client"
+    3. DUT1 do disconnect as "server"
+  expected result: |
+    1. succeed
+    2. succeed, DUT1 and DUT2 gatts get connect event
+    3. DUT1 and DUT2 gatts get disconnect event
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] gatts -S -z load -p 0xA0"
+    - ['R SSC[1-2] C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect C +BLE:GattsConnect', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['P SSC1 C +BLE:GattsClose']
+- ID: BTSTK_GAP_07001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by master
+  steps: |
+    1. DUT1 update connection parameters
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:OK']
+- ID: BTSTK_GAP_07002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by slave
+  steps: |
+    1. DUT2 update connection parameters
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -S -a <dut1_bt_mac>"
+    - ['R SSC2 C +BLECONN:OK']
+- ID: BTSTK_GAP_07003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters
+  steps: |
+    1. DUT1 update invalid interval
+    2. DUT1 update invalid latency
+    3. DUT1 update invalid timeout
+  expected result: |
+    1. fail
+    2. fail
+    3. fail
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -a <dut2_bt_mac> -i 0-0xFFFF"
+    - ['R SSC1 C +BLECONN:ERROR']
+  - - "SSC SSC1 bleconn -S -a <dut2_bt_mac> -l 0x1F4"
+    - ['R SSC1 C +BLECONN:ERROR']
+  - - "SSC SSC1 bleconn -S -a <dut2_bt_mac> -t 0x08"
+    - ['R SSC1 C +BLECONN:ERROR']
+  - - "SSC SSC1 bleconn -S -a <dut2_bt_mac> -t 0xC81"
+    - ['R SSC1 C +BLECONN:ERROR']
+- ID: BTSTK_GAP_08001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name when BT is deinit
+  steps: |
+    1. DUT1 do adv
+    2. DUT1 do scan
+    3. DUT2 do set name
+  expected result: |
+    1. fail
+    2. fail
+    3. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_08002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name, conn when BT is disable
+  steps: |
+    1. DUT1 do init
+    2. DUT1 do adv
+    3. DUT1 do scan
+    4. DUT2 do set name
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z init"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_08003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP operation without init/enable BT or register callback
+  summary: do adv, scan, set name, conn when BT is enable but no callback registered
+  steps: |
+    1. DUT1 do init and enable
+    2. DUT1 do adv
+    3. DUT1 do scan
+    4. DUT2 do set name
+  expected result: |
+    1. succeed
+    2. fail
+    3. fail
+    4. fail
+  initial condition: BLE_DEINIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bt -D -z start"
+    - ["R SSC1 C +BT:OK"]
+  - - "SSC SSC1 bleadv -L -c 0"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 blescan -L -c 0"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 blescan -D -z start"
+    - ["R SSC1 C +BLESCAN"]
+  - - "SSC SSC1 ble -S -z name -n abcde"
+    - ["R SSC1 C +BLE"]
+- ID: BTSTK_GAP_09001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP processing scan data
+  summary: process scan data txp, manufacturer data, interval range, appearence, flag
+  steps: |
+    1. DUT1 set raw adv data tx power, manufacturer data, interval range, apperaence, flag
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data 19
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x020AEB06FF1112131415051220004000021901020106"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1112131415"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP processing scan data
+  summary: process scan data service UUIDs
+  steps: |
+    1. DUT1 set raw adv 16 bit Complete UUID list
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data
+    4. repeat step 1-3 with 16 bit incomplete UUID, 32 bit complete/incomplete UUID, 128 bit complete/incomplete UUID
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+    4. scan with the correct adv data
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - LOOP 4 3 "['0302ABCD','0303ABCD','0504ABCDABCD','0505ABCDABCD',]" "['insrv16,0xABCD','srv16,0xABCD','insrv32,0xABCDABCD','srv32,0xABCDABCD']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - - LOOP 2 3 "['1106ABCDABCDABCDABCDABCDABCDABCDABCD','1107ABCDABCDABCDABCDABCDABCDABCDABCD']" "['insrv128,0xABCDABCDABCDABCDABCDABCDABCDABCD','srv128,0xABCDABCDABCDABCDABCDABCDABCDABCD']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP processing scan data
+  summary: process scan data service data
+  steps: |
+    1. DUT1 set raw adv 16 bit service data
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data
+    4. repeat step 1-3 with 32 bit service data, 128 bit service data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+    4. scan with the correct adv data
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - LOOP 3 3 "['0416ABCDEF','0620ABCDABCDEF','1221ABCDABCDABCDABCDABCDABCDABCDABCDEF',]" "['srvdata,0xABCDEF','srvdata32,0xABCDABCDEF','srvdata128,0xABCDABCDABCDABCDABCDABCDABCDABCDEF']"
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x{%s}"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,{%s}"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_09004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GAP processing scan data
+  summary: process combined adv data and scan response data
+  steps: |
+    1. DUT1 set raw adv data manufacturer data
+    2. DUT1 set scan response data tx power, interval range, apperaence, flag
+    2. DUT1 start adv
+    3. DUT2 do active scan with extended scan data 19
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x15FF1011121314151617181910111213141516171819"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -R -t 2 -r 0x020AEB051220004000021901020106"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,man,0x1011121314151617181910111213141516171819"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,txp,0xEB"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,app,0x01"%%(<dut1_bt_mac>)'
+      - 'P SSC2 RE "\+BTSCANEXT:%%s,flag,0x06"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BTSTK_GAP_40001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'No'
+  category: Function
+  test point 1: function
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GAP only test
+  steps: |
+    1. download GAP only SSC bin on both DUT
+    2. DUT1 set ascii device name
+    3. stop advertising
+    4. config scan response and start advertising
+    5. DUT2 do active scan
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. device name in scan result
+  initial condition: None
+  test environment: SSC_T2_1
+  execution time: 5
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2017-05-19)
+  CI ready: 'No'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "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 ble -S -z name -n <dut1_ble_name>"
+    - ["R SSC1 C +BLE:OK"]
+  - - "SSC SSC1 bleadv -D -z stop"
+    - ["R SSC1 C +BLEADV"]
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK C +BLEADV:SetScanRes,OK"]
+  - - "SSC SSC1 bleadv -D -z start"
+    - ["R SSC1 C +BLEADV:OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ["R SSC2 C +BLEADV:OK"]
+  - - "SSC SSC2 blescan -L -c 0"
+    - ["R SSC2 C +BLESCAN:SetScanParam,OK"]
+  - - "SSC SSC2 blescan -D -z start -t 3"
+    - ["R SSC2 P <dut1_ble_name>"]
+- ID: BTSTK_GAP_50001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'No'
+  category: Stress
+  test point 1: stress
+  test point 2: BLE GAP stress test
+  summary: BLE Connect and disconnect stress test
+  steps: |
+    1. DUT1 disconnect with DUT2
+    2. DUT2 start advertising
+    3. DUT1 connect to DUT2
+    4. do service discovery
+    5. loop step 1-4
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 5
+  module: BT Stack
+  sub module: GAP
+  version: v1 (2017-05-19)
+  CI ready: 'No'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "LOOP 1000 5"
+    - ['']
+  - - "SSC SSC1 ram"
+    - ['R SSC1 A <heap_size>:(\d+)']
+  - - "SSC SSC1 bleconn -D -z all"
+    - ['P SSC1 C +BLE:CLOSE', 'P SSC2 C +BLE:GattsDisconnect']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000"]
diff --git a/components/idf_test/integration_test/IT_BTSTK_GATT.yml b/components/idf_test/integration_test/IT_BTSTK_GATT.yml
new file mode 100644 (file)
index 0000000..103a686
--- /dev/null
@@ -0,0 +1,2609 @@
+test cases:
+- ID: BTSTK_GATT_01001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT server create service
+  summary: create service, add char and descriptor and start service
+  steps: |
+    1. create preset service 0xA000
+  expected result: |
+    1. succeed
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ["R SSC1 C +GATTS:StartService,OK,A000"]
+- ID: BTSTK_GATT_01002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT server create service
+  summary: create service and include another service
+  steps: |
+    1. create preset service 0xA000
+    2. create preset service 0xA001
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ["R SSC1 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC1 gatts -S -z load -p 0xA1"
+    - ["R SSC1 C +GATTS:StartService,OK,A001"]
+- ID: BTSTK_GATT_20001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client discover primary service
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. found service 0xA000 and 0xA001
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - "SSC SSC1 gattc -F -r <dut2_bt_mac>"
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
+- ID: BTSTK_GATT_20002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client get included service
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+    5. DUT1 get included service 0xA000 from service 0xA001
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. get included service 0xA000 from service 0xA001
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - "SSC SSC1 gattc -F -r <dut2_bt_mac>"
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
+  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA001"
+    - ["R SSC1 C +GATTC:IncludedService,0010,A001,A000"]
+- ID: BTSTK_GATT_21001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short char
+  steps: |
+    1. DUT1 do discover
+    2. GATT client read 1 byte short char
+  expected result: |
+    1. succeed
+    2. read succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
+- ID: BTSTK_GATT_21002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read long char
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 GATT client read 256 bytes long char
+  expected result: |
+    1. succeed
+    2. read succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC101 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256", "R SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+- ID: BTSTK_GATT_21003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short descriptor
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client read short descriptor
+  expected result: |
+    1. succeed
+    2. read succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C107,2902,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C107,2902"]
+- ID: BTSTK_GATT_21004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read long descriptor
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client read long descriptor
+  expected result: |
+    1. succeed
+    2. read succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
+- ID: BTSTK_GATT_21005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short char of an included service
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do discover
+    5. GATT client read 1 byte short char
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
+- ID: BTSTK_GATT_21006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short descriptor or an included service
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do discover
+    5. GATT client read 1 byte short descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C107,2902,2", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C107,2902"]
+- ID: BTSTK_GATT_21007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read auto reply short char created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read auto reply short char
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C300"]
+- ID: BTSTK_GATT_21008
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read auto reply long char created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read auto reply long char
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
+- ID: BTSTK_GATT_21009
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read app reply short char created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read app reply short char
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC310 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C310"]
+- ID: BTSTK_GATT_21010
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read app reply long char created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read app reply long char
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC311 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C311"]
+- ID: BTSTK_GATT_21011
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read auto reply short descriptor created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read auto reply short descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C300,2901"]
+- ID: BTSTK_GATT_21012
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read auto reply long descriptor created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read auto reply long descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
+- ID: BTSTK_GATT_21013
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read app reply short descriptor created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read app reply short descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C310,2901"]
+- ID: BTSTK_GATT_21014
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read app reply long descriptor created by table
+  steps: |
+    1. DUT1 do discover
+    2. DUT1 read app reply long descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C311,2901"]
+- ID: BTSTK_GATT_22001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write with response to a short char with response
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write with response to short char with response
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
+- ID: BTSTK_GATT_22002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write without response to a short char without response
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write without response to short char without response
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC103 -p 0x10 -v 0x01 -w 1"
+    - - "P SSC1 C +GATTC:WriteOnce,0010,A000,C103"
+      - "P SSC2 C +GATTS:Write,OK,A000,C103"
+      - "P SSC1 C +GATTC:Write,OK,0010,A000,C103"
+- ID: BTSTK_GATT_22003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do execute
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC110 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
+- ID: BTSTK_GATT_22004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do cancel
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do cancel
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC110 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC110 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
+- ID: BTSTK_GATT_22005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to a short descriptor
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to short descriptor
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+- ID: BTSTK_GATT_22006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to long descriptor and execute
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to long descriptor and execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C100,2901"]
+- ID: BTSTK_GATT_22007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to long descriptor using write API
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to long descriptor and execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C100,2901"]
+- ID: BTSTK_GATT_22008
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to an included char
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do discover
+    5. GATT client write with response to short char with response
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
+- ID: BTSTK_GATT_22009
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to an included descriptor
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA001
+    3. DUT1 connect to DUT2
+    4. DUT1 do discover
+    5. GATT client write to short descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA0"
+    - ["R SSC2 C +GATTS:StartService,OK,A000"]
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:StartService,OK,A001"]
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLE:GattcConnect,OK,0010"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+- ID: BTSTK_GATT_22010
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write with response to auto reply short char with response created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write with response to auto reply short char with response created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C302", "R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
+- ID: BTSTK_GATT_22011
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write without response to auto reply short char without response created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write without response to auto reply short char without response created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01 -w 1"
+    - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C303"
+      - "P SSC2 C +GATTS:Write,OK,A002,C303"
+      - "P SSC1 C +GATTC:Write,OK,0010,A002,C303"
+- ID: BTSTK_GATT_22012
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do execute to auto reply char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do execute to auto reply char created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_22013
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do cancel to auto reply char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do cancel to auto reply char created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BTSTK_GATT_22014
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to auto reply short descriptor created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to auto reply short descriptor created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C300,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C300,2901"]
+- ID: BTSTK_GATT_22015
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to auto reply long descriptor created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to auto reply long descriptor created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
+- ID: BTSTK_GATT_22016
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to auto reply long descriptor created by table and cancel
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to auto reply long descriptor created by table and cancel
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
+- ID: BTSTK_GATT_22017
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write with response to app reply short char with response created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write with response to app reply short char with response created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC312 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C312", "R SSC1 C +GATTC:Write,OK,0010,A002,C312"]
+- ID: BTSTK_GATT_22018
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write without response to app reply short char without response created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write without response to app reply short char without response created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01 -w 1"
+    - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C313"
+      - "P SSC2 C +GATTS:Write,OK,A002,C313"
+      - "P SSC1 C +GATTC:Write,OK,0010,A002,C313"
+- ID: BTSTK_GATT_22019
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do execute to app reply char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do execute to app reply char created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
+- ID: BTSTK_GATT_22020
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do cancel to app reply char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do cancel to app reply char created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
+- ID: BTSTK_GATT_22021
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to app reply short descriptor created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to app reply short descriptor created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C310,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C310,2901"]
+- ID: BTSTK_GATT_22022
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to app reply long descriptor created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to app reply long descriptor created by table
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
+- ID: BTSTK_GATT_22023
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to app reply long descriptor created by table and cancel
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to app reply long descriptor created by table and cancel
+  expected result: |
+    1. succeed
+    2. write succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256 -e 0"
+    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
+- ID: BTSTK_GATT_23001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client register/unregister notify
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on notification char
+    3. DUT1 register notify on indication char
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - - "SSC SSC1 gattc -N -z unregister -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:UnRegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -N -z unregister -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:UnRegNotify,OK,0010,A000,C108"]
+- ID: BTSTK_GATT_23002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive notify
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on notification char and write to CCC
+    3. DUT2 do notify
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv notify
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
+    - ["R SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+- ID: BTSTK_GATT_23003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive indication
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on inidcation char and write to CCC
+    3. DUT2 do indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv indication
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC108 -d 0x2902 -p 0x10 -v 0x0002"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C108,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C108,2902"]
+  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
+    - ["R SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BTSTK_GATT_23004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client can't receive notification/indication without write to CCC
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on notify and inidcation char
+    3. DUT2 do notify and indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0000"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
+    - ["P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
+    - ["P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BTSTK_GATT_23005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive notify on auto reply notify char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on auto reply notification char and write to CCC
+    3. DUT2 do notify
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv notify
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC305 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C305,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C305,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC305 -p 0xA2 -v 0x01"
+    - ["R SSC1 C +GATTC:Notification,0010,A002,C305,1"]
+- ID: BTSTK_GATT_23006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive indication on auto reply indication char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on auto reply inidcation char and write to CCC
+    3. DUT2 do indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv indication
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC306 -d 0x2902 -p 0x10 -v 0x0002"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C306,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C306,2902"]
+  - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
+    - ["R SSC1 C +GATTC:Indication,0010,A002,C306,1"]
+- ID: BTSTK_GATT_23007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client can't receive notification/indication without write to CCC
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on notify and inidcation char
+    3. DUT2 do notify and indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC2 gatts -N -c 0xC305 -p 0xA2 -v 0x01"
+    - ["P SSC1 C +GATTC:Notification,0010,A002,C305,1"]
+  - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
+    - ["P SSC1 C +GATTC:Indication,0010,A002,C306,1"]
+- ID: BTSTK_GATT_23008
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive notify on app reply notify char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on app reply notification char and write to CCC
+    3. DUT2 do notify
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv notify
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC315 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C315,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C315,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC315 -p 0xA2 -v 0x01"
+    - ["R SSC1 C +GATTC:Notification,0010,A002,C315,1"]
+- ID: BTSTK_GATT_23009
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive indication on app reply indication char created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on app reply inidcation char and write to CCC
+    3. DUT2 do indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 recv indication
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C316"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC316 -d 0x2902 -p 0x10 -v 0x0002"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C316,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C316,2902"]
+  - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
+    - ["R SSC1 C +GATTC:Indication,0010,A002,C316,1"]
+- ID: BTSTK_GATT_23010
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client can't receive notification/indication without write to CCC
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 register notify on notify and inidcation char
+    3. DUT2 do notify and indication
+  expected result: |
+    1. succeed
+    2. succeed
+    3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C316"]
+  - - "SSC SSC2 gatts -N -c 0xC315 -p 0xA2 -v 0x01"
+    - ["P SSC1 C +GATTC:Notification,0010,A002,C315,1"]
+  - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
+    - ["P SSC1 C +GATTC:Indication,0010,A002,C316,1"]
+- ID: BTSTK_GATT_24001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a char without read property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to a char without read property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC103 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BTSTK_GATT_24002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a descriptor without read property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to a descriptor without read property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC102 -d 0x2901 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BTSTK_GATT_24003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a char without read property created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to auto reply char without read property create by table
+    3. DUT1 read to app reply char without read property create by table
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC302 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC312 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BTSTK_GATT_24004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a descriptor without read property created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to auto reply descriptor without read property created by table
+    3. DUT1 read to app reply descriptor without read property created by table
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC303 -d 0x2901 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC313 -d 0x2901 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BTSTK_GATT_25001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to a char without write property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write without response to a char without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write without response to a char without write property
+  expected result: |
+    1. succeed
+    2. succeed (write without response always succeed)
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+- ID: BTSTK_GATT_25003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write to a descriptor without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write to a descriptor without write property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25004
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a char without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to a char without write property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC100 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25005
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a descriptor without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to a descriptor without write property
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25006
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char not send response
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to a char not send response
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC103 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25007
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write without response to a char will send response
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write without response to a char will send response
+  expected result: |
+    1. succeed
+    2. succeed (write without response always succeed)
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v -x01 -w 1"
+    - ["P SSC1 C +GATTC:WriteOnce"]
+- ID: BTSTK_GATT_25008
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char without write property created by table
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to auto reply char without write property
+    3. DUT1 write with response to manual reply char without write property
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC310 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25009
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write without response to a char created by table without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write without response to auto reply char created by table without write property
+    3. DUT1 write without response to app reply char created by table without write property
+  expected result: |
+    1. succeed
+    2. succeed (write without response always succeed)
+    3. succeed (write without response always succeed)
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+- ID: BTSTK_GATT_25010
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write to a descriptor created by table without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write to auto reply descriptor create by table without write property
+    3. DUT1 write to app reply descriptor create by table without write property
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25011
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a char created by table without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to auto reply char created by table without write property
+    3. DUT1 prepare write to app reply char created by table without write property
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC300 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC310 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25012
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a descriptor created by table without write property
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to auto reply descriptor created by table without write property
+    3. DUT1 prepare write to app reply descriptor created by table without write property
+  expected result: |
+    1. succeed
+    2. failed
+    3. failed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25013
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char created by table not send response
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to auto reply char created by table not send response
+    3. DUT1 write with response to app reply char created by table not send response
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_25014
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write without response to a char created by table will send response
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write without response to auto reply char created by table will send response
+    3. DUT1 write without response to app reply char created by table will send response
+  expected result: |
+    1. succeed
+    2. succeed (write without response always succeed)
+    3. succeed (write without response always succeed)
+  initial condition: BLE_CONN3
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-02-09)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+- ID: BTSTK_GATT_25015
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client use write API write to a char won't reply prepare write event
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 use write API write to a char reply NULL for prepare write event
+  expected result: |
+    1. succeed
+    2. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-06-07)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BTSTK_GATT_26001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client config mtu
+  summary: GATT client config different mtu size
+  steps: |
+    1. config mtu size 22
+    2. config mtu size 23
+    3. config mtu size 517
+    4. config mtu size 518
+  expected result: |
+    1. failed
+    2. succeed
+    3. succeed
+    4. failed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -C -m 22 "
+    - ["R SSC1 C +GATTC:ERROR"]
+  - - "SSC SSC1 gattc -C -m 23"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 gattc -C -m 517"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 gattc -C -m 518"
+    - ["R SSC1 C +GATTC:ERROR"]
+- ID: BTSTK_GATT_26002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client config mtu
+  summary: GATT read write on mtu size 261
+  steps: |
+    1. config mtu size 261
+    2. do read
+    3. do write
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -C -m 261"
+    - ["P SSC1 C +GATTC:OK", "P SSC[1-2] C ConfigMTU,OK,261"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256"]
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
+  - - "SSC SSC1 gattc -W -z longChar -p 0x10 -s 0xA000 -c 0xC110 -l 512"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A000,C110", "P SSC2 C +GATTS:ReliableWrite,OK"]
+- ID: BTSTK_GATT_26003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: BLE GATT client config mtu
+  summary: GATT read write on mtu size 517
+  steps: |
+    1. config mtu size 517
+    2. do read
+    3. do write
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 0
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -C -m 517"
+    - ["P SSC1 C +GATTC:OK", "P SSC[1-2] C ConfigMTU,OK,517"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C101,256"]
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 512"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C109"]
+- ID: BTSTK_GATT_50001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Stress
+  test point 1: stress
+  test point 2: BLE GATT stress test
+  summary: GATT read char stress test
+  steps: |
+    1. update connection parameter for better performance
+    2. do primary service discovery
+    3. do read short char 500 times
+    4. do read long char 500 times
+    5. loop step 3-4
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. no error detected
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 6
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
+    - ["R SSC1 C OK"]
+  - - "DELAY 1"
+    - [""]
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "LOOP 1000 4"
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC100 -n 100"
+    - ["R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
+  - - "SSC SSC1 gattc -R -z char -p 0x10 -s 0xA000 -c 0xC101 -n 100"
+    - ["R SSC1 C +GATTC:Read,OK,0010,A000,C101"]
+- ID: BTSTK_GATT_50002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Stress
+  test point 1: stress
+  test point 2: BLE GATT stress test
+  summary: GATT write char stress test
+  steps: |
+    1. update connection parameter for better performance
+    2. do primary service discovery
+    3. do write short char 500 times
+    4. do prepare write char 500 times
+    5. loop step 3-5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. no error detected
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 6
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
+    - ["R SSC1 C OK"]
+  - - "DELAY 1"
+    - [""]
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "LOOP 1000 4"
+  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 1 -n 200"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A000,C109"]
+  - - "SSC SSC1 gattc -W -z longChar -p 0x10 -s 0xA000 -c 0xC110 -l 256 -n 100"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A000,C110"]
+- ID: BTSTK_GATT_50003
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Stress
+  test point 1: stress
+  test point 2: BLE GATT stress test
+  summary: GATT notify stress test
+  steps: |
+    1. update connection parameter for better performance
+    2. do primary service discovery
+    3. register notify
+    4. write to CCC
+    5. do notify
+    6. loop step 5
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. receive at least once
+    6. no error detected
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_1
+  execution time: 5
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -i 0x10-0x20 -l 0x10 -t 0x40"
+    - ["R SSC1 C OK"]
+  - - "DELAY 1"
+    - [""]
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100 -n 1"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "LOOP 5000 1"
+    - [""]
+  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01 -n 100"
+    - ["P SSC2 C +GATTS:OK", "P SSC2 C +GATTS:Done,Notify,A000,C107"]
+- ID: BTSTK_GATT_40001
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'No'
+  category: Function
+  test point 1: function
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GATTC only and GATTS only test
+  steps: |
+    1. download GATTC only bin to DUT1 and GATTS only bin to DUT2
+    2. DUT2 start adv, enable service 0xA000, DUT1 connect to DUT2
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+    5. DUT1 do read
+    6. DUT1 do read descriptor
+    7. DUT1 do write
+    8. DUT1 do write descriptor
+    9. DUT1 register for notify and indication
+    10. DUT2 do notify
+    11. DUT2 do indicate
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. succeed
+    9. succeed
+    10. succeed
+    11. succeed
+  initial condition: None
+  test environment: SSC_T2_1
+  execution time: 5
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-05-19)
+  CI ready: 'No'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - 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 SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0300 -n 1"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
+    - ["P SSC2 C +GATTS:Done,Notify,A000,C107", "P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
+    - ["P SSC2 C +GATTS:Done,Indicate,A000,C108", "P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BTSTK_GATT_40002
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'No'
+  category: Function
+  test point 1: function
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GATTC_SMP only and GATTS_SMP only test
+  steps: |
+    1. download GATTC_SMP bin to DUT1 and GATTS_SMP bin to DUT2
+    2. DUT2 start adv, start service 0xA000, DUT1 connect to DUT2
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+    5. DUT1 do read
+    6. DUT1 do read descriptor
+    7. DUT1 do write
+    8. DUT1 do write descriptor
+    9. DUT1 register for notify and indication
+    10. DUT2 do notify
+    11. DUT2 do indicate
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. succeed
+    6. succeed
+    7. succeed
+    8. succeed
+    9. succeed
+    10. succeed
+    11. succeed
+  initial condition: None
+  test environment: SSC_T2_1
+  execution time: 5
+  module: BT Stack
+  sub module: GATT
+  version: v1 (2017-05-19)
+  CI ready: 'No'
+  level: Integration
+  allow fail: ''
+  cmd set:
+  - ""
+  - - 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 SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC100 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,1", "R SSC1 C +GATTC:Read,OK,0010,A000,C100"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C102", "R SSC1 C +GATTC:Write,OK,0010,A000,C102"]
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC100 -d 0x2901 -p 0x10"
+    - ["R SSC1 C +GATTC:ReadOnce,0010,A000,C100,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A000,C100,2901"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0100"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC107 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C107"]
+  - - "SSC SSC1 gattc -N -z register -s 0xA000 -c 0xC108 -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A000,C108"]
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC107 -d 0x2902 -p 0x10 -v 0x0300 -n 1"
+    - ["R SSC1 C +GATTC:WriteOnce,0010,A000,C107,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A000,C107,2902"]
+  - - "SSC SSC2 gatts -N -c 0xC107 -p 0xA0 -v 0x01"
+    - ["P SSC2 C +GATTS:Done,Notify,A000,C107", "P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
+    - ["P SSC2 C +GATTS:Done,Indicate,A000,C108", "P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
diff --git a/components/idf_test/integration_test/IT_BTSTK_MISC.yml b/components/idf_test/integration_test/IT_BTSTK_MISC.yml
new file mode 100644 (file)
index 0000000..704a37b
--- /dev/null
@@ -0,0 +1,138 @@
+test cases:
+- ID: BTSTK_MISC_0101
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: bt init and enable
+  summary: correct 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'
+  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: ''
+  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
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: bt init and enable
+  summary: incorrect 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'
+  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: ''
+  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
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  test point 2: bt init and enable
+  summary: incorrect 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'
+  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: ''
+  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"]
index 5d4ce7ab3f125955ce88976f82df9667a9da1100..d3bca8dfb2925e889bf177f03b6ea0801bf3ede0 100644 (file)
@@ -2969,3 +2969,229 @@ initial condition:
   script path: InitCondBase.py
   tag: UTINIT1
   test script: InitCondBase
+- tag: BLE_DEINIT1
+  initial condition detail: 1 DUT which BLE is not enabled
+  script path: InitCondBase.py
+  test script: InitCondBase
+  check cmd set:
+  - ''
+  - - SSC SSC1 bt -Q
+    - ['R SSC1 C +BT:status,DEINIT']
+  restore cmd set:
+  - ''
+  - - SSC SSC1 bt -D -z disable
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 bt -D -z deinit
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 bt -Q
+    - ['R SSC1 C +BT:status,DEINIT']
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - ['R SSC1 C !!!ready!!!']
+  - - SSC SSC1 bt -D -z stop
+    - ['R SSC1 C +BT:OK']
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - ['R SSC1 A <heap_size>:(\d+)']
+- tag: BLE_INIT1
+  initial condition detail: 1 DUT which BLE is enabled, no active connection
+  script path: InitCondBase.py
+  test script: InitCondBase
+  check cmd set:
+  - ''
+  - - SSC SSC1 bt -Q
+    - ['R SSC1 C +BT:status,ENABLE']
+  - - SSC SSC1 ble -R
+    - ['R SSC1 C +BLE:']
+  - - SSC SSC1 bleconn -Q
+    - ['R SSC1 C +BLECONN:ConnCount,0']
+  restore cmd set:
+  - ''
+  - - SSC SSC1 bt -D -z init
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 bt -D -z enable
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 ble -R
+    - ['R SSC1 C +BLE:']
+  - - SSC SSC1 bleconn -D -z all
+    - ['R SSC1 C +BLECONN:']
+  force restore cmd set:
+  - ''
+  - - SSC SSC1 reboot
+    - ['R SSC1 C !!!ready!!!']
+  - - SSC SSC1 bt -D -z init
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 bt -D -z enable
+    - ['R SSC1 C +BT:']
+  - - SSC SSC1 ble -R
+    - ['R SSC1 C +BLE:']
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 bleconn -D -z all
+    - ['R SSC1 C +BLECONN:']
+  - - SSC SSC1 gatts -S -z delete
+    - ['R SSC1 C +GATTS:']
+  - - SSC SSC1 ram
+    - ['R SSC1 A <heap_size>:(\d+)']
+- tag: BLE_INIT2
+  initial condition detail: 2 DUT which BLE is enabled, no active connection, DUT2 start adv
+  script path: InitCondBase.py
+  test script: InitCondBase
+  check cmd set:
+  - ''
+  - - "SSC SSC[1-2] bt -Q"
+    - ['R SSC[1-2] C +BT:status,ENABLE']
+  restore cmd set:
+  - ''
+  - - "SSC SSC[1-2] bt -D -z init"
+    - ['R SSC[1-2] C +BT:']
+  - - "SSC SSC[1-2] bt -D -z enable"
+    - ['R SSC[1-2] C +BT:']
+  force restore cmd set:
+  - ''
+  - - "SSC SSC[1-2] reboot"
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] bt -D -z init"
+    - ['R SSC[1-2] C +BT:']
+  - - "SSC SSC[1-2] bt -D -z enable"
+    - ['R SSC[1-2] C +BT:']
+  restore post cmd set:
+  - ''
+  - - "SSC SSC[1-2] ble -R"
+    - ['R SSC[1-2] C +BLE:']
+  - - "SSC SSC[1-2] bleconn -D -z all"
+    - ['R SSC[1-2] C +BLECONN:']
+  - - "SSC SSC[1-2] gatts -S -z delete"
+    - ['R SSC[1-2] C +GATTS:']
+  - - "SSC SSC[1-2] bleadv -D -z stop"
+    - ['R SSC[1-2] C +BLEADV:OK']
+  - - "SSC SSC2 bleadv -L -c 0 -t 3"
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC1 ram
+    - ['R SSC1 A <heap_size>:(\d+)']
+- check cmd set:
+  - ''
+  - - ASSERT
+    - ['']
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - SSC SSC[1-2] ble -R
+    - ['R SSC[1-2] C +BLE:']
+  - - SSC SSC[1-2] bleconn -D -z all
+    - ['R SSC[1-2] C +BLECONN:']
+  - - SSC SSC[1-2] gatts -S -z delete
+    - ['R SSC[1-2] C +GATTS:']
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - ['R SSC[1-2] C +BLEADV:OK']
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - SSC SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
+    DUT2 created GATT service 0xA000
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-2] bt -D -z init
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] bt -D -z enable
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] ble -R
+    - ['R SSC[1-2] C +BLE:']
+  - - SSC SSC[1-2] bleconn -D -z all
+    - ['R SSC[1-2] C +BLECONN:']
+  - - SSC SSC[1-2] gatts -S -z delete
+    - ['R SSC[1-2] C +GATTS:']
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - ['R SSC[1-2] C +BLEADV:OK']
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - SSC SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA0
+    - ['R SSC2 C +GATTS:StartService,OK,A000']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - ['R SSC1 A <heap_size>:(\d+)']
+  script path: InitCondBase.py
+  tag: BLE_CONN2
+  test script: InitCondBase
+- check cmd set:
+  - ''
+  - - ASSERT
+    - ['']
+  force restore cmd set:
+  - ''
+  - - SSC SSC[1-2] reboot
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - SSC SSC[1-2] bt -D -z start
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] bt -D -z enable
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] ble -R
+    - ['R SSC[1-2] C +BLE:']
+  - - SSC SSC[1-2] bleconn -D -z all
+    - ['R SSC[1-2] C +BLECONN:']
+  - - SSC SSC[1-2] gatts -S -z delete
+    - ['R SSC[1-2] C +GATTS:']
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - ['R SSC[1-2] C +BLEADV:OK']
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - SSC SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA2
+    - ['R SSC2 C +GATTS:StartService,OK,A002']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  initial condition detail: 2 DUT which BLE is enabled, DUT1 connected with DUT2,
+    DUT2 created GATT service 0xA002
+  restore cmd set:
+  - ''
+  - - SSC SSC[1-2] bt -D -z init
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] bt -D -z enable
+    - ['R SSC[1-2] C +BT:']
+  - - SSC SSC[1-2] ble -R
+    - ['R SSC[1-2] C +BLE:']
+  - - SSC SSC[1-2] bleconn -D -z all
+    - ['R SSC[1-2] C +BLECONN:']
+  - - SSC SSC[1-2] gatts -S -z delete
+    - ['R SSC[1-2] C +GATTS:']
+  - - SSC SSC[1-2] bleadv -D -z stop
+    - ['R SSC[1-2] C +BLEADV:OK']
+  - - SSC SSC2 bleadv -L -c 0 -t 3
+    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - - SSC SSC2 bleadv -D -z start
+    - ['R SSC2 C +BLEADV:OK']
+  - - SSC SSC2 gatts -S -z load -p 0xA2
+    - ['R SSC2 C +GATTS:StartService,OK,A002']
+  - - SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>
+    - ['R SSC1 C +BLE:GattcConnect,OK']
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  restore post cmd set:
+  - ''
+  - - SSC SSC1 ram
+    - ['R SSC1 A <heap_size>:(\d+)']
+  script path: InitCondBase.py
+  tag: BLE_CONN3
+  test script: InitCondBase
index b565673ec9ccfd39a0a8bfc74f7f7eb0d23d6927..4594e2978de9dc4cf5da69a16aa9ac16b198346a 100644 (file)
@@ -212,3 +212,48 @@ TCPIP_DNS_0102_01
 TCPIP_DNS_0103
 TCPIP_DNS_0103_01
 
+# BT Stack
+# GAP
+BTSTK_GAP_07003
+BTSTK_GAP_06003
+
+# GATT
+BTSTK_GATT_21005
+BTSTK_GATT_25013
+
+# BT cases that might fail
+BTSTK_GAP_01003
+BTSTK_GAP_03005
+BTSTK_GAP_04002
+BTSTK_GAP_05001
+BTSTK_GAP_06001
+BTSTK_GAP_06002
+BTSTK_GAP_06004
+BTSTK_GAP_06005
+BTSTK_GATT_20002
+BTSTK_GATT_21002
+BTSTK_GATT_21006
+BTSTK_GATT_21007
+BTSTK_GATT_21008
+BTSTK_GATT_21011
+BTSTK_GATT_21013
+BTSTK_GATT_21014
+BTSTK_GATT_22003
+BTSTK_GATT_22004
+BTSTK_GATT_22008
+BTSTK_GATT_22009
+BTSTK_GATT_22010
+BTSTK_GATT_22023
+BTSTK_GATT_25006
+BTSTK_GATT_23010
+BTSTK_GATT_23003
+BTSTK_GATT_25005
+BTSTK_GATT_25007
+BTSTK_GATT_25014
+BTSTK_COEXIST_0101
+BTSTK_COEXIST_0102
+BTSTK_COEXIST_0103
+BTSTK_COEXIST_0201
+BTSTK_COEXIST_0202
+BTSTK_COEXIST_0203
+BTSTK_COEXIST_0301
diff --git a/components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py b/components/idf_test/integration_test/TestCaseScript/BLEFunction/AdvInterval.py
new file mode 100644 (file)
index 0000000..08d9153
--- /dev/null
@@ -0,0 +1,125 @@
+import re
+import subprocess
+import time
+
+from TCAction import PerformanceTCBase
+from TCAction import TCActionBase
+from NativeLog import NativeLog
+from comm.NIC import Adapter
+
+
+MIN_PACKETS_TO_CHECK = 10
+
+
+class TestCase(PerformanceTCBase.PerformanceTCBase):
+    INTERVAL_PATTERN = re.compile("(0x[0-9A-Fa-f]+)-(0x[0-9A-Fa-f]+)")
+
+    def __init__(self, test_case, test_env, timeout, log_path):
+        PerformanceTCBase.PerformanceTCBase.__init__(self, test_case, test_env, timeout, log_path)
+        self.interval_list = []
+        self.deviation = 0
+        # load param from excel
+        cmd_set = test_case["cmd set"]
+        for i in range(1, len(cmd_set)):
+            if cmd_set[i][0] != "dummy":
+                cmd_string = "self." + cmd_set[i][0]
+                exec cmd_string
+
+        self.result_cntx = TCActionBase.ResultCheckContext(self, test_env, self.tc_name)
+        pass
+
+    def process_packets(self, packets, interval):
+
+        def convert_ts(ts):
+            return float("%s.%s" % (ts["second"], ts["microsecond"]))
+
+        def filter_packets():
+            _filtered_packets = []
+            mac_address = self.get_parameter("dut1_bt_mac")
+            for _packet in packets:
+                packet_str = str(_packet)
+                if "[le_sub_event_code]: LEAdvReport" in packet_str \
+                        and "[address_0]: %s" % mac_address in packet_str:
+                    _filtered_packets.append(_packet)
+            # sort by time
+            _filtered_packets.sort(key=lambda x: convert_ts(x.ts))
+            return _filtered_packets
+
+        filtered_packets = filter_packets()
+
+        # add captured packets to log
+        for packet in filtered_packets:
+            self.result_check("BLENIC", str(packet))
+            # flush data cache to free memory
+            self.flush_data("BLENIC")
+
+        # scan will switch channel, therefore need to check if there're successive fails
+        succeed_packets = 0
+
+        # process packets
+        # unit: ms; allow deviation for interval
+        allowed_range = [float(interval[0] * (1 - self.deviation) * 0.625) / 1000,
+                         float(interval[1] * (1 + self.deviation) * 0.625) / 1000]
+        NativeLog.add_trace_info("[BLE][AdvInterval] allowed_interval_range is %s" % allowed_range)
+        for i in range(len(filtered_packets) - 1):
+            _p1 = filtered_packets[i]
+            _p2 = filtered_packets[i+1]
+            interval = convert_ts(_p2.ts) - convert_ts(_p1.ts)
+            if allowed_range[0] < interval < allowed_range[1]:
+                succeed_packets += 1
+            else:
+                pass
+        result = True if succeed_packets >= MIN_PACKETS_TO_CHECK else False
+        return result
+
+    def execute(self):
+        TCActionBase.TCActionBase.execute(self)
+        test_result = "Succeed"
+
+        # open capture device
+        adapter = Adapter.Adapter(self.get_parameter("bt_capture_nic"), "capture", capture_type="bluetooth")
+
+        ret = adapter.start_capture()
+        if ret != "LIBPCAP_SUCCEED":
+            NativeLog.add_trace_critical("Can't start capture packets: %s" % ret)
+            return
+
+        def run_test_once(interval):
+            # flush all packets
+            adapter.get_packets()
+            # config ble adv data
+            self.serial_write_line("SSC1", "bleadv -D -z stop")
+            self.check_response("SSC1", "+BLEADV")
+            self.serial_write_line("SSC1", "bleadv -L -c 0 -t 3")
+            self.check_response("SSC1", "+BLEADV")
+            # set adv param and start adv
+            self.serial_write_line("SSC1", "bleadv -D -z start -i 0x%04X-0x%04X -h 1" % (interval[0], interval[1]))
+            self.check_response("SSC1", "+BLEADV:OK")
+            # set scan window = scan interval = 2s, scan for 6s, each channel scan 2 second.
+            subprocess.check_output("hcitool cmd 0x08 0x000b 0x00 0x80 0x0c 0x80 0x0c 0x00 0x00\n", shell=True)
+            subprocess.check_output("hcitool cmd 0x08 0x000c 0x01 0x00\n", shell=True)
+            time.sleep(6)
+            subprocess.check_output("hcitool cmd 0x08 0x000c 0x00 0x00\n", shell=True)
+            packets = adapter.get_packets()
+            return self.process_packets(packets, interval)
+
+        for _interval in self.interval_list:
+            match = self.INTERVAL_PATTERN.search(_interval)
+            if match is not None:
+                if run_test_once([int(match.group(1), base=16), int(match.group(2), base=16)]) is False:
+                    NativeLog.add_trace_critical("Test fail for interval: %s." % _interval)
+                    test_result = "Fail"
+            else:
+                NativeLog.add_trace_critical("interval string format not correct: %s." % _interval)
+                test_result = "Fail"
+            pass
+
+        self.set_result(test_result)
+
+
+def main():
+    pass
+
+
+if __name__ == '__main__':
+    pass
diff --git a/components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py b/components/idf_test/integration_test/TestCaseScript/BLEFunction/__init__.py
new file mode 100644 (file)
index 0000000..8a609af
--- /dev/null
@@ -0,0 +1 @@
+import AdvInterval
index b8a2a497c6505a39a5852e95d0850498e52a80ce..33026a7d4cf860bef01007e8e2c5eae9645ced4f 100644 (file)
@@ -286,3 +286,10 @@ test environment:
   test environment detail: 'Web Server target connect with PC by UART.
 
     4 PC with WiFi NIC placed near WebServer1.', test script: EnvBase}
+- PC OS: ''
+  Special: N
+  Target Count: 1
+  script path: EnvBase.py
+  tag: SSC_T1_3
+  test environment detail: 'PC has one BT adapter (dongle). 1 SSC target connect with PC by UART.'
+  test script: EnvBase