瀏覽代碼

test: modify test cases for bluedroid (backport v3.3)

Chen Sheng 6 年之前
父節點
當前提交
dc9c2f3b60

+ 18 - 0
.gitlab-ci.yml

@@ -1986,6 +1986,24 @@ IT_010_01:
     - ESP32_IDF
     - SSC_T5_1
 
+IT_010_02:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T5_1
+
+IT_010_03:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T5_1
+
+IT_010_04:
+  <<: *test_template
+  tags:
+    - ESP32_IDF
+    - SSC_T5_1
+
 IT_011_01:
   <<: *test_template
   tags:

文件差異過大導致無法顯示
+ 572 - 284
components/idf_test/integration_test/INIT_COND_SSC.yml


+ 1213 - 0
components/idf_test/integration_test/TC_IT_BLUEDROID_GAP.yml

@@ -0,0 +1,1213 @@
+.GAP_CASE: &GAP_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_INIT2
+  test environment: SSC_T2_5
+  execution time: 0
+  module: BLUEDROID
+  sub module: GAP
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.set_default_ble_name: &set_default_ble_name
+  LIST_MERGE:
+    - - "SSC SSC1 ble -S -z name -n <dut1_ble_name>"
+      - ["R SSC1 C +BLE:OK"]
+
+.open_capture_nic: &open_capture_nic
+  LIST_MERGE:
+    - - "NIC BLENIC START <bt_capture_nic> bt+capture"
+      - ['R PC_COM C +NIC_START:OK']
+
+.dut1_stop_adv: &dut1_stop_adv
+  LIST_MERGE:
+    - - "SSC SSC1 bleadv -D -z stop"
+      - ["R SSC1 C +BLEADV:"]
+
+.dut1_start_adv: &dut1_start_adv
+  LIST_MERGE:
+    - - "SSC SSC1 bleadv -D -z start"
+      - ["R SSC1 C +BLEADV:Start,OK"]
+
+.dut1_connect_to_dut2: &dut1_connect_to_dut2
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+
+.set_default_adv_data: &set_default_adv_data
+  LIST_MERGE:
+    - - "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:Start,OK"]
+
+.dut2_stop_adv: &dut2_stop_adv
+  LIST_MERGE:
+    - - "SSC SSC2 bleadv -D -z stop"
+      - ["R SSC2 C +BLEADV:"]
+
+test cases:
+- ID: BLUEDROID_GAP_01003
+  <<: *GAP_CASE
+  test point 2: BLE GAP param device name test
+  summary: ble set long device name for BLUEDROID
+  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)
+  cmd set:
+  - ""
+  - - "SSC SSC1 ble -S -z name -n <dut1_ble_name_32>"
+    - ["R SSC1 C +BLE:OK"]
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 3 -c 0 -s 1"
+    - ["R SSC2 P <dut1_bt_mac> C Complete"]
+  - - "SSC SSC1 ble -S -z name -n 123456789012345678901234567890123"
+    - ["R SSC1 C +BLE:ERROR"]
+  - *set_default_adv_data
+  - - "SSC SSC2 blescan -D -z start -t 3 -c 0 -s 1"
+    - ["R SSC2 P <dut1_bt_mac> C Complete"]
+- ID: BLUEDROID_GAP_03003
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set adv parameter own address type for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3 -n 1"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - - LOOP 4 3 "[0,2,1,3]" "['PDU','PDU','NPDU','NPDU']"
+  - *dut1_stop_adv
+  - - "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: BLUEDROID_GAP_03006
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for SCAN_IND for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['PDU','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: BLUEDROID_GAP_03007
+  <<: *GAP_CASE
+  test point 2: BLE GAP set advertise param
+  summary: ble set paramters for NONCONN_IND for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *open_capture_nic
+  - *dut1_stop_adv
+  - - LOOP 2 2 "['0x20-0x40','0xA0-0xB0']" "['PDU','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: BLUEDROID_GAP_06001
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect as "client" and "server" for BLUEDROID
+  allow fail: 1/2
+  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
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "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 +BLECONN:GapConnect']
+- ID: BLUEDROID_GAP_06002
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble disconnect as "client" and "server" for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "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']
+  - *dut1_connect_to_dut2
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+- ID: BLUEDROID_GAP_06003
+  <<: *GAP_CASE
+  allow fail: 1/2
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect to same connection multiple times for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *dut1_connect_to_dut2
+  - - "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:GattsOpen,OK,00A0']
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ['R SSC1 C +BLE:CLOSE,OK']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['R SSC1 C +BLE:GattsClose,OK']
+- ID: BLUEDROID_GAP_06004
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect to invalid address for BLUEDROID
+  allow fail: 2/3
+  steps: |
+    1. DUT1 connect to invalid address
+    2. DUT1 connect to DUT2
+  expected result: |
+    1. failed
+    2. succeed
+  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']
+  - *dut1_connect_to_dut2
+- ID: BLUEDROID_GAP_06005
+  <<: *GAP_CASE
+  test point 2: BLE GAP connect / disconnect
+  summary: ble connect/disconnect event to active app for BLUEDROID
+  steps: |
+    1. DUT1 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
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ['R SSC1 C +GATTS:LoadProfile,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect', 'P SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC1 bleconn -D -p 0xA0 -z server"
+    - ['P SSC1 C +BLE:GattsClose']
+- ID: BLUEDROID_GAP_07001
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by master for BLUEDROID
+  steps: |
+    1. update connect parameters by master
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07002
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by slave for BLUEDROID
+  steps: |
+    1. update connect parameters by slave
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07003
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25) for BLUEDROID
+  steps: |
+    1. update invalid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25)
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["7-90"]
+    - ['']
+  - - latency=["1"]
+    - ['']
+  - - supervision_timeout=["41"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07004
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters and interval within allowed range for BLUEDROID
+  steps: |
+    1. DUT1 update connection parametres and interval is 6-128
+    2. DUT1 update connection parametres and interval is 33-3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["6-128","33-3200"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["50","1000"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07005
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters interval and interval out of allowed range for BLUEDROID
+  steps: |
+    1. DUT1 update invalid interval and interval is 16-3201
+    2. DUT1 update invalid interval and interval is 5-64
+  expected result: |
+    1. fail
+    2. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["16-3201","5-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07006
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 for BLUEDROID
+  steps: |
+    1. DUT1 update connect parameters latency and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["8"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07007
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency = 501
+  steps: |
+    1. DUT1 uupdate connect parameters latency and latency = 501
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["501"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07008
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency = 500 for BLUEDROID
+  steps: |
+    1. DUT1 update connect parameters latency and latency = 500
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["500"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07009
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 for BLUEDROID
+  steps: |
+    1. DUT1 update connect parameters timeout and timeout within allowed range and timeout<(1+latency)*2*MAX_interval*1.25
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["12"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07010
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 9 for BLUEDROID
+  steps: |
+    1. DUT1 update connect parameters timeout and timeout = 9
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["9"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07011
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout within allowed range for BLUEDROID
+  steps: |
+    1. DUT1 update timeout = 10
+    2. DUT1 update timeout = 3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["8-10","8-10"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["10","3200"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07012
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3201 for BLUEDROID
+  steps: |
+    1. DUT1 update timeout = 3201
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3201"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07013
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters before configure connect param event back for BLUEDROID
+  steps: |
+    1. DUT1 update valid interval
+    2. DUT1 update valid interval
+  expected result: |
+    1.
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac>"
+    - ['']
+  - - "SSC SSC1 bleconn -S -z ConnParam -a <dut2_bt_mac> -t 0x40"
+    - ['R SSC1 C pending']
+- ID: BLUEDROID_GAP_07014
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param and unpdate valid connect params by master for BLUEDROID
+  steps: |
+    1. DUT1 update invalid connect parameters
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07015
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters twice for BLUEDROID
+  allow fail: 1/2
+  steps: |
+    1. DUT1 update valid connect parameters
+    2. DUT1 update valid connect parameters
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC1"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07016
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25) by slave for BLUEDROID
+  steps: |
+    1. DUT2 update valid connect parameters(timeout<(1+latency)*2*MAX_interval*1.25) by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["7-90"]
+    - ['']
+  - - latency=["1"]
+    - ['']
+  - - supervision_timeout=["41"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07017
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters interval within allowed range by slave for BLUEDROID
+  steps: |
+    1. DUT2 update interval 6-128
+    2. DUT2 update interval 21-3200
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["6-128","21-3200"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["50","1000"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07018
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters interval out of allowed range by slave for BLUEDROID
+  steps: |
+    1. DUT2 update invalid interval 10-3201
+    2. DUT2 update invalid interval 5-64
+  expected result: |
+    1. fail
+    2. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["10-3201","5-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07019
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connnect parameters and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update connnect parameters and latency within allowed range and timeout<(1+latency)*2*MAX_interval*1.25 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["8"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07020
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters latency and latency out of allowed range by slave for BLUEDROID
+  steps: |
+    1. DUT2 update invalid latency = 501
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["501"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07021
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters and latency = 500 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update latency = 500
+  expected result: |
+    1. success
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["6-8"]
+    - ['']
+  - - latency=["500"]
+    - ['']
+  - - supervision_timeout=["1003"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07022
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 9 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 9
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["9"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07023
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 10 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 10 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["10"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07024
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3200 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 3200 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3200"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07025
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters timeout and timeout = 3201 by slave for BLUEDROID
+  steps: |
+    1. DUT2 update connect parameters timeout and timeout = 3201 by slave
+  expected result: |
+    1. fail
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2"]
+    - ['']
+  - - interval=["8-10"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["3201"]
+    - ['']
+  - - expect_result=["ERROR"]
+    - ['']
+- ID: BLUEDROID_GAP_07026
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect parameters before configure connect param event back by slave for BLUEDROID
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1.
+    2. pending
+  initial condition: BLE_CONN2
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -S -z ConnParam -a <dut1_bt_mac>"
+    - ['']
+  - - "SSC SSC2 bleconn -S -z ConnParam -a <dut1_bt_mac> -t 0x40"
+    - ['R SSC2 C pending']
+- ID: BLUEDROID_GAP_07027
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param and update valid connect params by slave for BLUEDROID
+  steps: |
+    1. DUT2 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["0","0"]
+    - ['']
+  - - supervision_timeout=["9","21"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07028
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect parameters twice by slave for BLUEDROID
+  allow fail: 1/2
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC2"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07029
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param by master and update valid connect params by slave for BLUEDROID
+  steps: |
+    1. DUT1 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC2"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07030
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect param by master and update valid connect params by slave for BLUEDROID
+  steps: |
+    1. DUT1 update valid interval
+    2. DUT2 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1","SSC2"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07031
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update invalid connect param by slave and update valid connect params by master for BLUEDROID
+  steps: |
+    1. DUT1 update invalid connect
+    2. DUT2 update valid connect
+  expected result: |
+    1. fail
+    2. success
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC1"]
+    - ['']
+  - - interval=["32-64","32-64"]
+    - ['']
+  - - latency=["9","0"]
+    - ['']
+  - - supervision_timeout=["32","32"]
+    - ['']
+  - - expect_result=["ERROR","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07032
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update valid connect param by slave and update valid connect params by master for BLUEDROID
+  allow fail: 1/2
+  steps: |
+    1. DUT2 update valid interval
+    2. DUT1 update valid interval
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN2
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC2","SSC1"]
+    - ['']
+  - - interval=["7-80","10-100"]
+    - ['']
+  - - latency=["1","0"]
+    - ['']
+  - - supervision_timeout=["41","30"]
+    - ['']
+  - - expect_result=["OK","OK"]
+    - ['']
+- ID: BLUEDROID_GAP_07033
+  <<: *GAP_CASE
+  test point 2: BLE GAP update connect parameters
+  summary: update connect parameters by master after pairing for BLUEDROID
+  steps: |
+    1. DUT1 update connection parameters
+  expected result: |
+    1. succeed
+  initial condition: BLE_CONN_SMP
+  cmd set:
+  - "BLEFunction/ConnParamUpdate"
+  - - dut = ["SSC1"]
+    - ['']
+  - - interval=["32-64"]
+    - ['']
+  - - latency=["0"]
+    - ['']
+  - - supervision_timeout=["32"]
+    - ['']
+  - - expect_result=["OK"]
+    - ['']
+- ID: BLUEDROID_GAP_09001
+  <<: *GAP_CASE
+  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
+  expected result: |
+    1. succeed
+    2. succeed
+    3. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -R -t 1 -r 0x020AEB06FF1112131415051220004000021901020106"
+    - ["R SSC1 C +BLEADV:OK"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1 -c 0 -d 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: BLUEDROID_GAP_09004
+  <<: *GAP_CASE
+  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
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - - "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"]
+  - *dut1_start_adv
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1 -d 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: BLUEDROID_GAP_09007
+  <<: *GAP_CASE
+  test point 2: BLE GAP processing scan data
+  summary: proccess scan data included 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. DUT2 start scan and processing scan data
+    5. DUT1 stop advertising
+    6. DUT1 set max interval 0x400 min interval 0x200 for adv data and scan response
+    7. DUT1 start advertising
+    8. DUT2 start scan and processing scan data
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. scan with the correct adv data
+    5. succeed
+    6. succeed
+    7. succeed
+    8. scan with the correct adv data
+  cmd set:
+  - ""
+  - *dut1_stop_adv
+  - *set_default_ble_name
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x20-0x40 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1 -c 0 -d 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x20004000"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+  - *dut1_stop_adv
+  - - "SSC SSC1 bleadv -L -c 0 -i 0x200-0x400 -t 3"
+    - ["R SSC1 C +BLEADV:SetAdv,OK"]
+  - *dut1_start_adv
+  - - "SSC SSC2 blescan -D -z start -t 1 -e 1 -c 0 -d 1"
+    - - 'P SSC2 RE "\+BTSCANEXT:%%s,intrange,0x00020004"%%(<dut1_bt_mac>)'
+      - 'R SSC2 C Complete'
+- ID: BLUEDROID_GAP_13001
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gattc set packet data length at valid length (27-251) for BLUEDROID
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - - LOOP 3 1 "[27,200,251]" "[27,200,251]"
+  - - "SSC SSC1 ble -S -z pktLen -a <dut2_bt_mac> -l {%d}"
+    - ["R SSC1 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BLUEDROID_GAP_13002
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gattc set packet data length at invalid length for BLUEDROID
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - - LOOP 2 1 "[26,252]" "[27,251]"
+  - - "SSC SSC1 ble -S -z pktLen -a <dut2_bt_mac> -l {%d}"
+    - ["R SSC1 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BLUEDROID_GAP_13003
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gatts set packet data length at valid length (27-251) for BLUEDROID
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - - LOOP 3 1 "[27,200,251]" "[27,200,251]"
+  - - "SSC SSC2 ble -S -z pktLen -a <dut1_bt_mac> -l {%d}"
+    - ["R SSC2 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BLUEDROID_GAP_13004
+  <<: *GAP_CASE
+  test point 2: BLE GAP param packet data length test
+  summary: gatts set packet data length at invalid length for BLUEDROID
+  steps: |
+    1. DUT1 connect DUT2
+    2. DUT1 set packet data length
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - - LOOP 2 1 "[26,252]" "[27,251]"
+  - - "SSC SSC2 ble -S -z pktLen -a <dut1_bt_mac> -l {%d}"
+    - ["R SSC2 C +BLECONN:UpdatePktLen,OK,{%d}"]
+- ID: BLUEDROID_GAP_40001
+  <<: *GAP_CASE
+  auto test: 'No'
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GAP only test for BLUEDROID
+  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
+  version: v1 (2017-05-19)
+  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"]
+  - *set_default_ble_name
+  - *set_default_adv_data
+  - *dut2_stop_adv
+  - - "SSC SSC2 blescan -D -z start -t 3 -c 0"
+    - ["R SSC2 P <dut1_ble_name>"]
+

+ 1209 - 0
components/idf_test/integration_test/TC_IT_BLUEDROID_GATT.yml

@@ -0,0 +1,1209 @@
+.GATT_CASE: &GATT_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_CONN2
+  test environment: SSC_T2_5
+  execution time: 0
+  module: BLUEDROID
+  sub module: GATT
+  version: v1 (2016-12-31)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.primary_service_discovery: &primary_service_discovery
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
+      - ["R SSC1 C +GATTC:Discover,OK"]
+
+.included_service_connection: &included_primary_service_connection
+  LIST_MERGE:
+    - - "SSC SSC2 gatts -S -z load -p 0xA1"
+      - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+    - - "SSC SSC2 gatts -S -z include -p 0xA1 -i 0xA0"
+      - ["R SSC2 C +GATTS:AddIncludedService,OK"]
+    - - "SSC SSC2 gatts -S -z add -p 0xA1"
+      - ["R SSC2 C +GATTS:StartService,OK,A001"]
+    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+      - ['R SSC1 C +GATTC:OK']
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+
+.included_second_service_connection: &included_second_service_connection
+  LIST_MERGE:
+    - - "SSC SSC2 gatts -S -z load -p 0xA4"
+      - ["R SSC2 C +GATTS:StartService,OK,A004"]
+    - - "SSC SSC2 gatts -S -z load -p 0xA1"
+      - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+    - - "SSC SSC1 gatts -S -z add -p 0xA1"
+      - ["R SSC1 C +GATTS:StartService,OK,A001"]
+    - - "SSC SSC2 gatts -S -z include -p 0xA1 -i 0xA4"
+      - ["R SSC2 C +GATTS:AddIncludedService,OK"]
+    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+      - ['R SSC1 C +GATTC:OK']
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+
+.table_include_table_service: &table_include_table_service
+  LIST_MERGE:
+    - - "SSC SSC2 gatts -S -z load -p 0xA5 -i 0xA2"
+      - ["R SSC2 C +GATTS:StartService,OK,A005"]
+    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+      - ['R SSC1 C +GATTC:OK']
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+
+.table_include_service: &table_include_service
+  LIST_MERGE:
+    - - "SSC SSC2 gatts -S -z load -p 0xA5 -i 0xA0"
+      - ["R SSC2 C +GATTS:StartService,OK,A005"]
+    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+      - ['R SSC1 C +GATTC:OK']
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+
+.register_notify_c107: &register_notify_c107
+  LIST_MERGE:
+    - - "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"]
+
+.register_indicate_c108: &register_indicate_c108
+  LIST_MERGE:
+    - - "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"]
+
+.stop_adv: &stop_adv
+  LIST_MERGE:
+    - - "SSC SSC2 bleadv -D -z stop"
+      - ["R SSC2 C +BLEADV:Stop"]
+
+test cases:
+- ID: BLUEDROID_GATT_01001
+  <<: *GATT_CASE
+  test point 2: BLE GATT server create service
+  summary: create service, add char and descriptor and start service for BLUEDOID
+  steps: |
+    1. create preset service 0xA000
+  expected result: |
+    1. succeed
+  initial condition: BLE_INIT1
+  test environment: SSC_T1_4
+  cmd set:
+  - ""
+  - - "SSC SSC1 gatts -S -z load -p 0xA0"
+    - ["R SSC1 C +GATTS:StartService,OK,A000"]
+- ID: BLUEDROID_GATT_01002
+  <<: *GATT_CASE
+  test point 2: BLE GATT server create service
+  summary: create service and include another service for BLUEDROID
+  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_4
+  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:CreateService,OK,A001"]
+  - - "SSC SSC1 gatts -S -z add -p 0xA1"
+    - ["R SSC1 C +GATTS:StartService,OK,A001"]
+- ID: BLUEDROID_GATT_20001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client discover manual primary service for BLUEDOID
+  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
+  cmd set:
+  - ""
+  - *included_primary_service_connection
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+- ID: BLUEDROID_GATT_20002
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client get manual included service for BLUEDOID
+  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
+  cmd set:
+  - ""
+  - *included_primary_service_connection
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 A <handle_range>:GATTC:DiscoverService,A001,(\\d+-\\d+)"]
+  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA001 -i 0xA000 -q <handle_range> -k 1"
+    - ["R SSC1 C +GATTC:IncludedService,0010,A001,A000"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+- ID: BLUEDROID_GATT_20003
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client discover table primary service (table service include table service) for BLUEDROID
+  steps: |
+    1. DUT2 create preset service 0xA002
+    2. DUT2 create preset service 0xA005
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. found service 0xA002 and 0xA005
+  initial condition: BLE_INIT3
+  cmd set:
+  - ""
+  - *table_include_table_service
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A002 C +GATTC:DiscoverService,A005"]
+- ID: BLUEDROID_GATT_20004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client get table included service for BLUEDROID
+  steps: |
+    1. DUT2 create preset service 0xA002
+    2. DUT2 create preset service 0xA005
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+    5. DUT1 get included service 0xA002 from service 0xA005
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. get included service 0xA002 from service 0xA005
+  initial condition: BLE_INIT3
+  cmd set:
+  - ""
+  - *table_include_table_service
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A002 A <handle_range>:GATTC:DiscoverService,A005,(\\d+-\\d+)"]
+  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA005 -i 0xA002 -q <handle_range> -k 1"
+    - ["R SSC1 C +GATTC:IncludedService,0010,A005,A002"]
+- ID: BLUEDROID_GATT_20005
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client discover table primary service (table service include manual service) for BLUEDROID
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA005
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. found service 0xA000 and 0xA005
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - *table_include_service
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A005"]
+- ID: BLUEDROID_GATT_20006
+  <<: *GATT_CASE
+  test point 2: BLE GATT client service / char discovery
+  summary: GATT client get table included manual service for BLUEDROID
+  steps: |
+    1. DUT2 create preset service 0xA000
+    2. DUT2 create preset service 0xA005
+    3. DUT1 connect to DUT2
+    4. DUT1 do primary service discovery
+    5. DUT1 get included service 0xA000 from service 0xA005
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+    5. get included service 0xA000 from service 0xA005
+  initial condition: BLE_INIT2
+  cmd set:
+  - ""
+  - *table_include_service
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
+    - ["R SSC1 C +GATTC:DiscoverService,A000 A <handle_range>:GATTC:DiscoverService,A005,(\\d+-\\d+)"]
+  - - "SSC SSC1 gattc -D -z includedService -p 0x10 -s 0xA005 -i 0xA000 -q <handle_range> -k 1"
+    - ["R SSC1 C +GATTC:IncludedService,0010,A005,A000"]
+- ID: BLUEDROID_GATT_21001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short char for BLUEDROID
+  steps: |
+    1. DUT1 do discover
+    2. GATT client read 1 byte short char
+  expected result: |
+    1. succeed
+    2. read succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_21002
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read long char for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 GATT client read 256 bytes long char
+  expected result: |
+    1. succeed
+    2. read succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_21003
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short descriptor for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client read short descriptor
+  expected result: |
+    1. succeed
+    2. read succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_21004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read long descriptor for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client read long descriptor
+  expected result: |
+    1. succeed
+    2. read succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_21005
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short char of an included service for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_21006
+  <<: *GATT_CASE
+  test point 2: BLE GATT client read char and descriptor
+  summary: GATT client read short descriptor or an included service for BLUEDROID
+  allow fail: 1/2
+  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
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write with response to a short char with response for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write with response to short char with response
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22002
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write without response to a short char without response for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write without response to short char without response
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22003
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do execute for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC110 -p 0x10 -l 256"
+    - ["P SSC1 C +GATTC:Write,OK,0010,A000,C110"]
+- ID: BLUEDROID_GATT_22004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client prepare write and do cancel for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client prepare write and do cancel
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22005
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to a short descriptor for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to short descriptor
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22006
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to long descriptor and execute for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to long descriptor and execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22007
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to long descriptor using write API for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. GATT client write to long descriptor and execute
+  expected result: |
+    1. succeed
+    2. write succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22008
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to an included char for BLUEDROID
+  allow fail: 1/2
+  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
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_22009
+  <<: *GATT_CASE
+  test point 2: BLE GATT client write char and descriptor
+  summary: GATT client write to an included descriptor for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA1"
+    - ["R SSC2 C +GATTS:CreateService,OK,A001"]
+  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
+    - ['R SSC1 C +GATTC:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ["R SSC1 C +BLECONN:GapConnect,OK,0010", "R SSC2 C +BLECONN:GapConnect"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_23001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client register/unregister notify for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - *register_notify_c107
+  - *register_indicate_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: BLUEDROID_GATT_23002
+  <<: *GATT_CASE
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive notify for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - *register_notify_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 <dut1_bt_mac>"
+    - ["R SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+- ID: BLUEDROID_GATT_23003
+  <<: *GATT_CASE
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client receive indication for BLUEDROID
+  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
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - *register_indicate_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 <dut1_bt_mac>"
+    - ["R SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BLUEDROID_GATT_23004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client receive notify and indication
+  summary: GATT client can't receive notification/indication without write to CCC (manual service) for BLUEDROID
+  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)
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - *register_notify_c107
+  - *register_indicate_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 -r <dut1_bt_mac>"
+    - ["P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
+  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01 -r <dut1_bt_mac>"
+    - ["P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
+- ID: BLUEDROID_GATT_24001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a char without read property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to a char without read property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC103 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BLUEDROID_GATT_24002
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid read
+  summary: GATT client read to a descriptor without read property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 read to a descriptor without read property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z descriptor -s 0xA000 -c 0xC102 -d 0x2901 -p 0x10"
+    - ["P SSC1 C +GATTC:Read,ERROR"]
+- ID: BLUEDROID_GATT_25001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char without write property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to a char without write property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_25002
+  <<: *GATT_CASE
+  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 for BLUEDROID
+  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)
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC100 -p 0x10 -l 1 -w 1"
+    - ["R SSC1 C +GATTC:Write,OK"]
+- ID: BLUEDROID_GATT_25003
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write to a descriptor without write property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write to a descriptor without write property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z descriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 1"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_25004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a char without write property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to a char without write property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z longChar -s 0xA000 -c 0xC100 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_25005
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client prepare write to a descriptor without write property for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 prepare write to a descriptor without write property
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA000 -c 0xC101 -d 0x2901 -p 0x10 -l 256"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_25006
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write with response to a char not send response for BLUEDROID
+  steps: |
+    1. DUT1 do service discovery
+    2. DUT1 write with response to a char not send response
+  expected result: |
+    1. succeed
+    2. failed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC103 -p 0x10 -v 0x01"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_25007
+  <<: *GATT_CASE
+  test point 2: BLE GATT client do invalid write
+  summary: GATT client write without response to a char will send response for BLUEDROID
+  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)
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA000 -c 0xC102 -p 0x10 -v 0x01 -w 1"
+    - ["P SSC1 C +GATTC:WriteOnce"]
+- ID: BLUEDROID_GATT_25013
+  <<: *GATT_CASE
+  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(BLE Spec do not define the behavior of this case. IDF implementation will return success when GATTC write with response and recv response from remote side)
+    3. failed
+  initial condition: BLE_CONN3
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C303"]
+  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:Write,ERROR"]
+- ID: BLUEDROID_GATT_26001
+  <<: *GATT_CASE
+  test point 2: BLE GATT client set mtu
+  summary: GATT client config different mtu size for BLUEDOID
+  steps: |
+    1. set mtu size 22
+    2. set mtu size 23
+    3. set mtu size 517
+    4. set mtu size 518
+  expected result: |
+    1. failed
+    2. succeed
+    3. succeed
+    4. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -D -z all"
+    - ["P SSC1 C +BLECONN:GapDisconnect,OK", "P SSC2 C +BLECONN:GapDisconnect,OK"]
+  - - "SSC SSC1 gattc -S -m 22 "
+    - ["R SSC1 C +GATTC:ERROR"]
+  - - "SSC SSC1 gattc -S -m 23"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 gattc -S -m 517"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC1 gattc -S -m 518"
+    - ["R SSC1 C +GATTC:ERROR"]
+- ID: BLUEDROID_GATT_26002
+  <<: *GATT_CASE
+  test point 2: BLE GATT server set mtu
+  summary: GATT server config different mtu size for BLUEDOID
+  steps: |
+    1. set mtu size 22
+    2. set mtu size 23
+    3. set mtu size 517
+    4. set mtu size 518
+  expected result: |
+    1. failed
+    2. succeed
+    3. succeed
+    4. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -D -z all"
+    - ["P SSC1 C +BLECONN:GapDisconnect,OK", "P SSC2 C +BLECONN:GapDisconnect,OK"]
+  - - "SSC SSC2 gatts -C -m 22"
+    - ["R SSC2 C +GATTS:ERROR"]
+  - - "SSC SSC2 gatts -C -m 23"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 gatts -C -m 517"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 gatts -C -m 518"
+    - ["R SSC2 C +GATTS:ERROR"]
+- ID: BLUEDROID_GATT_26004
+  <<: *GATT_CASE
+  test point 2: BLE GATT client config mtu
+  summary: GATT read write on mtu size 261
+  allow fail: 1/2
+  steps: |
+    1. config mtu size 261
+    2. do read
+    3. do write
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -D -p 0x10"
+    - ["P SSC1 C +BLECONN:GapDisconnect,OK", "P SSC2 C +BLECONN:GapDisconnect,OK"]
+  - - "SSC SSC1 gattc -S -m 261"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC2 gatts -C -m 261"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC1 gattc -C"
+    - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,261"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_26005
+  <<: *GATT_CASE
+  test point 2: BLE GATT client config mtu
+  summary: GATT read write on mtu size 517 for BLUEDOID
+  allow fail: 1/2
+  steps: |
+    1. config mtu size 517
+    2. do read
+    3. do write
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 bleconn -D  -z all"
+    - ["P SSC1 C +BLECONN:GapDisconnect,OK", "P SSC2 C +BLECONN:GapDisconnect,OK"]
+  - - "SSC SSC1 gattc -S -m 517"
+    - ["R SSC1 C +GATTC:OK"]
+  - - "SSC SSC2 gatts -C -m 517"
+    - ["R SSC2 C +GATTS:OK"]
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['R SSC1 C +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC1 gattc -C -r <dut2_bt_mac>"
+    - ["P SSC1 C +GATTC:OK", "P SSC[1-2] C ConfigMTU,OK,517"]
+  - *primary_service_discovery
+  - - "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: BLUEDROID_GATT_27001
+  <<: *GATT_CASE
+  test point 2: BLE GATT read multiple
+  summary: GATT client read 2 char and 11 char of same service for BLUEDROID
+  steps: |
+    1. DUT1 do discover
+    2. GATT client read 2 char
+    3. GATT client read 11 char
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z multiple -u #0xC100##0xC101# -s 0xA000 -r <dut2_bt_mac>"
+    - ['R SSC1 C +GATTC:ReadOnce,22', 'R SSC1 C +GATTC:ReadMultiple,OK']
+  - - "SSC SSC1 gattc -R -z multiple -u #0xC100##0xC101##0xC107##0xC108##0xC109##0xC110##0xC100##0xC101##0xC107##0xC108##0xC109# -s 0xA000"
+    - ['R SSC1 C +GATTC:Read,ERROR']
+- ID: BLUEDROID_GATT_27002
+  <<: *GATT_CASE
+  test point 2: BLE GATT read multiple
+  summary: GATT client read char and descriptor for BLUEDROID
+  steps: |
+    1. DUT1 do discover
+    2. GATT client read all char and descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z multiple -u 0xA00xC100#0xA00xC101#0xA00xC1000x29010xA00xC1070x2902 -r <dut2_bt_mac>"
+    - ['R SSC1 C +GATTC:ReadOnce', 'R SSC1 C +GATTC:ReadMultiple,OK']
+- ID: BLUEDROID_GATT_27003
+  <<: *GATT_CASE
+  test point 2: BLE GATT read multiple
+  summary: GATT client read char and descriptor of table create service for BLUEDROID
+  steps: |
+    1. DUT1 do discover
+    2. GATT client read all char and descriptor
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ['R SSC2 C +GATTS:StartService,OK,A002']
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z multiple -u 0xA20xC300#0xA20xC301#0xA20xC310#0xA20xC311# -r <dut2_bt_mac>"
+    - ['R SSC1 C +GATTC:ReadOnce', 'R SSC1 C +GATTC:ReadMultiple,OK']
+- ID: BLUEDROID_GATT_27004
+  <<: *GATT_CASE
+  test point 2: BLE GATT read multiple
+  summary: GATT client read char and descriptor of included service and table service for BLUEDROID
+  initial condition: BLE_INIT2
+  steps: |
+    1. DUT2 load service included service and table service
+    2. DUT1 search service
+    3. GATT client read all char and descriptor of different services
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC2 gatts -S -z load -p 0xA2"
+    - ['R SSC2 C +GATTS:StartService,OK,A002']
+  - *included_primary_service_connection
+  - *primary_service_discovery
+  - - "SSC SSC1 gattc -R -z multiple -u 0xA10xC200#0xA00xC100#0xA00xC101#0xA20xC300#0xA20xC301#"
+    - ['R SSC1 C +GATTC:ReadOnce', 'R SSC1 C +GATTC:ReadMultiple,OK']
+- ID: BLUEDROID_GATT_30004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection service discovery test
+  summary: do primary service discovery when master and slave both create GATTC and GATTS for BLUEDOID
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ["R SSC2 C +BLE:GattcOpen,OK"]
+  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
+    - ["R SSC1 C +GATTC:Discover,OK"]
+  - - "SSC SSC2 gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
+    - ["R SSC2 C +GATTC:Discover,OK"]
+- ID: BLUEDROID_GATT_31004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection read test
+  summary: do read when master and slave both create GATTC and GATTS for BLUEDOID
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT1 do read on DUT2
+    4. DUT2 do read on DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ["R SSC2 C +BLE:GattcOpen,OK"]
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:ReadOnce,0010,A002,C300,1"]
+  - - "SSC SSC[1-2] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:ReadOnce,0010,A002,C301,256"]
+- ID: BLUEDROID_GATT_32004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection write test
+  summary: do write when master and slave both create GATTC and GATTS for BLUEDOID
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT1 do write on DUT2
+    4. DUT2 do write on DUT1
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ["R SSC2 C +BLE:GattcOpen,OK"]
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Write,OK,0010,A002,C302"]
+  - - "SSC SSC[1-2] -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Write,OK,0010,A002,C304"]
+- ID: BLUEDROID_GATT_33004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection notify test
+  summary: do notify when master and slave both create GATTC and GATTS for BLUEDOID
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT[1-2] do register notify
+    4. DUT1 and DUT2 send notify to each other
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. receive notification
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ["R SSC2 C +BLE:GattcOpen,OK"]
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:RegNotify,OK,0010,A002,C305"]
+  - - "SSC SSC[1-2] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut[2-1]_bt_mac>"
+    - ['P SSC[1,2] RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2,1]_bt_mac>)']
+- ID: BLUEDROID_GATT_34004
+  <<: *GATT_CASE
+  test point 2: BLE GATT multi connection indicate test
+  summary: do indicate when master and slave both create GATTC and GATTS for BLUEDOID
+  steps: |
+    1. DUT1 do primary service discovery for DUT2
+    2. DUT2 do primary service discovery for DUT1
+    3. DUT[1-2] do register indication
+    4. DUT1 and DUT2 send notify to each other
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. receive indication
+  initial condition: BLE_CONN4
+  cmd set:
+  - ""
+  - - "SSC SSC2 bleconn -C -p 0x10 -a <dut1_bt_mac>"
+    - ["R SSC2 C +BLE:GattcOpen,OK"]
+  - - "SSC SSC[1-2] gattc -D -z primaryService -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:Discover,OK"]
+  - - "SSC SSC[1-2] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut[2-1]_bt_mac>"
+    - ["R SSC[1-2] C +GATTC:RegNotify,OK,0010,A002,C306"]
+  - - "SSC SSC[1-2] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut[2-1]_bt_mac>"
+    - ['P SSC[1,2] RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2,1]_bt_mac>)']
+- ID: BLUEDROID_GATT_40001
+  <<: *GATT_CASE
+  auto test: 'No'
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GATTC only and GATTS only test for BLUEDROID
+  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
+  execution time: 5
+  CI ready: 'No'
+  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 +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - *primary_service_discovery
+  - - "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"]
+  - *register_notify_c107
+  - *register_indicate_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: BLUEDROID_GATT_40002
+  <<: *GATT_CASE
+  auto test: 'No'
+  test point 2: test if BLE work after switch off some sub modules
+  summary: GATTC_SMP only and GATTS_SMP only test for BLUEDROID
+  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
+  execution time: 5
+  CI ready: 'No'
+  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 +BLECONN:GapConnect,OK', 'R SSC2 C +BLECONN:GapConnect']
+  - *primary_service_discovery
+  - - "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"]
+  - *register_notify_c107
+  - *register_indicate_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"]

+ 606 - 0
components/idf_test/integration_test/TC_IT_BLUEDROID_SMP.yml

@@ -0,0 +1,606 @@
+.SMP_CASE: &SMP_CASE
+  SDK: ESP32_IDF
+  Test App: SSC_BLE
+  auto test: 'Yes'
+  category: Function
+  test point 1: basic function
+  initial condition: BLE_INIT_SMP
+  test environment: SSC_T2_5
+  execution time: 0
+  module: BLUEDROID
+  sub module: SMP
+  version: v1 (2017-05-26)
+  CI ready: 'Yes'
+  level: Integration
+  allow fail: ''
+
+.just_work_pair: &just_work_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.slave_passkey_entry_pair: &slave_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+    - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.master_passkey_entry_pair: &master_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
+    - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.both_side_passkey_entry_pair: &both_side_passkey_entry_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['P SSC[1,2] C +BLESMP:PassKeyReq']
+    - - "SSC SSC[1,2] blesmp -K -r <dut[2,1]_bt_mac> -a 1 -k 123456"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.numberic_comparision_pair: &numberic_comparision_pair
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+      - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+    - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+      - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+
+.check_connection: &check_connection
+  LIST_MERGE:
+    - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
+      - ["R SSC1 C +GATTC:Discover,OK"]
+
+.disconnect: &disconnect
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -D -z all"
+      - ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC2 C +BLECONN:GapDisconnect,OK']
+    - - "SSC SSC2 bleadv -D -z start"
+      - ['P SSC2 C +BLEADV:OK']
+
+.connect: &connect
+  LIST_MERGE:
+    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+
+.config_just_work: &config_just_work
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x00"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_master_passkey_entry: &config_master_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC1 blesmp -S -z IOCAP -v 0x02"
+      - ['P SSC1 C +BLESMP:OK']
+    - - "SSC SSC2 blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC2 C +BLESMP:OK']
+
+.config_slave_passkey_entry: &config_slave_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_both_side_passkey_entry: &config_both_side_passkey_entry
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x02"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_numberic_comparision: &config_numberic_comparision
+  LIST_MERGE:
+    - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x0C"
+      - ['P SSC[1-2] C +BLESMP:OK']
+    - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x04"
+      - ['P SSC[1-2] C +BLESMP:OK']
+
+.config_bond_device: &config_bond_device
+  LIST_MERGE:
+    - - "SSC SSC2 blesmp -S -z AuthReqMode -v 0x01"
+      - ['P SSC2 C +BLESMP:OK']
+    - - "SSC SSC2 blesmp -S -z IOCAP -v 0x03"
+      - ['P SSC2 C +BLESMP:OK']
+
+test cases:
+- ID: BLUEDROID_SMP_04001
+  <<: *SMP_CASE
+  test point 2: BLE SMP key test
+  summary: BLE SMP set key size less than required for BLUEDROID
+  allow fail: 1/2
+  steps: |
+    1. set key size 7
+    2. set key size 6
+    3. do just work pair
+  expected result: |
+    1. succeed
+    2. LTK size is 7
+    3. succeed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x07"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x06"
+    - ['P SSC1 C +BLESMP:OK']
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
+- ID: BLUEDROID_SMP_04002
+  <<: *SMP_CASE
+  test point 2: BLE SMP key test
+  summary: BLE SMP set key size greater than required for BLUEDROID
+  allow fail: 1/2
+  steps: |
+    1. set key size 16
+    2. set key size 17
+    3. do just work pair
+  expected result: |
+    1. succeed
+    2. LTK size is 17
+    3. succeed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x10"
+    - ['P SSC1 C +BLESMP:OK']
+  - - "SSC SSC1 blesmp -S -z KeySize -v 0x11"
+    - ['P SSC1 C +BLESMP:OK']
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
+    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
+- ID: BLUEDROID_SMP_05001
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP unsuccessful passkey entry test for BLUEDROID
+  steps: |
+    1. enter passkey entry phase
+    2. entry incorrect passkey and accept
+    3. enter passkey entry phase
+    4. entry correct passkey and reject
+    5. enter passkey entry phase
+    6. send numberic comparision accept
+    7. enter passkey entry phase
+    8. send numberic comparision reject
+  expected result: |
+    1. succeed
+    2. pair failed
+    3. succeed
+    4. pair failed
+    5. succeed
+    6. pair failed
+    7. succeed
+    8. pair failed
+  cmd set:
+  - ""
+  - *config_slave_passkey_entry
+  - - LOOP 2 5 "[1,0]" "['000001','<key>']"
+    - ""
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k {%s}"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+  - - LOOP 2 5 "[1,0]"
+    - ""
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
+  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a {%d}"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+- ID: BLUEDROID_SMP_05002
+  <<: *SMP_CASE
+  test point 2: BLE SMP unsuccessful pair reply test
+  summary: BLE SMP unsuccessful numberic comparision test for BLUEDROID
+  steps: |
+    1. enter numberic comparision phase
+    2. entry passkey and accept
+    3. enter numberic comparision phase
+    4. send numberic comparision reject
+  expected result: |
+    1. succeed
+    2. pair failed
+    3. succeed
+    4. pair failed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - - LOOP 2 6 "[1,0]"
+    - ""
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k 000001"
+    - []
+  - - DELAY 10
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+  - - LOOP 2 5 "[1,0]" "[0,1]"
+    - ""
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
+  - - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
+  - *disconnect
+- ID: BLUEDROID_SMP_06001
+  <<: *SMP_CASE
+  test environment: SSC_T1_4
+  initial condition: BLE_DEINIT1
+  test point 2: BLE SMP use API in abnormal state
+  summary: BLE SMP use API when BLE not initialized, not enabled or not registered callback for BLUEDROID
+  steps: |
+    1. set security parameter
+    2. send security response
+    3. send passkey reply
+    4. send confirm reply
+    5. init BLE
+    6. set security parameter
+    7. send security response
+    8. send passkey reply
+    9. send confirm reply
+    10. init BLE
+    11. set security parameter
+    12. send security response
+    13. send passkey reply
+    14. send confirm reply
+  expected result: |
+    1. failed
+    2. failed
+    3. failed
+    4. failed
+    5. succeed
+    6. failed
+    7. failed
+    8. failed
+    9. failed
+    10. succeed
+    11. failed
+    12. failed
+    13. failed
+    14. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP:ERROR']
+  - - SSC SSC1 bt -D -z init
+    - ['R SSC1 C +BT:']
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP']
+  - - SSC SSC1 bt -D -z enable
+    - ['R SSC1 C +BT:']
+  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
+    - ['P SSC1 C +BLESMP']
+  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
+    - ['P SSC1 C +BLESMP']
+- ID: BLUEDROID_SMP_07002
+  <<: *SMP_CASE
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP just work pairing and reboot for BLUEDROID
+  steps: |
+    1. DUT1 and DUT2 SMP with just work pair
+    2. DUT1 reboot
+    3. DUT1 connect to DUT2
+    4. DUT2 send auth request
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. failed
+  cmd set:
+  - ""
+  - *config_just_work
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 reboot"
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK']
+  - - "SSC SSC1 ble -R"
+    - ['R SSC1 C +BLE:']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - *slave_passkey_entry_pair
+- ID: BLUEDROID_SMP_07005
+  <<: *SMP_CASE
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP initiator with master passkey entry and reconnect for BLUEDROID
+  steps: |
+    1. DUT1 and DUT2 SMP with master passkey entry
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT2 send auth request
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed
+    4. succeed
+  cmd set:
+  - ""
+  - *config_master_passkey_entry
+  - *master_passkey_entry_pair
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BLUEDROID_SMP_07006
+  <<: *SMP_CASE
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP initiator with master passkey entry and reboot for BLUEDROID
+  steps: |
+    1. DUT1 and DUT2 SMP bond with lagecy pairing
+    2. DUT1 reboot
+    3. DUT1 connect to DUT2
+    4. DUT2 send auth requst
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed
+    4. fail
+  cmd set:
+  - ""
+  - *config_master_passkey_entry
+  - *master_passkey_entry_pair
+  - - "SSC SSC1 reboot"
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK']
+  - - "SSC SSC1 ble -R"
+    - ['R SSC1 C +BLE:']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - *numberic_comparision_pair
+- ID: BLUEDROID_SMP_07007
+  <<: *SMP_CASE
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP initiator numberic comparision and reconnect for BLUEDROID
+  steps: |
+    1. DUT1 and DUT2 SMP with numberic comparision
+    2. DUT1 disconnect
+    3. DUT1 connect to DUT2
+    4. DUT2 send auth requst
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed
+    4. succeed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - *numberic_comparision_pair
+  - *disconnect
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+- ID: BLUEDROID_SMP_07008
+  <<: *SMP_CASE
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP initiator numberic comparision and reboot for BLUEDROID
+  steps: |
+    1. DUT1 and DUT2 SMP with numberic comparision
+    2. DUT1 disconnect
+    3. DUT1 and DUT2 reboot
+    4. DUT2 send auth requst
+  expected result: |
+    1. succeed
+    2. succeed
+    3. connect succeed
+    4. failed
+  cmd set:
+  - ""
+  - *config_numberic_comparision
+  - *numberic_comparision_pair
+  - - "SSC SSC1 reboot"
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK']
+  - - "SSC SSC1 ble -R"
+    - ['R SSC1 C +BLE:']
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:OK']
+  - *numberic_comparision_pair
+- ID: BLUEDROID_SMP_08001
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP get bond list and number without bond device for BLUEDROID
+  steps: |
+    1. DUT1 get bond list
+    2. DUT1 get bond number
+  expected result: |
+    1. succeed
+    2. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -B -z getlist -n 1"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,0']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,0']
+- ID: BLUEDROID_SMP_08002
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP remove bond after connected
+  steps: |
+   1. DUT2 set AuthReqMode and RspKey
+   2. pairing
+   3. remove bond
+  expected result: |
+   1. Succeed
+   2. Succeed
+   3. Succeed
+  cmd set:
+  - ""
+  - *config_bond_device
+  - - "SSC SSC2 bleadv -D -z start"
+    - ['R SSC2 C +BLEADV:Start,OK']
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,1']
+  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
+    - ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
+- ID: BLUEDROID_SMP_08003
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP get bond list and number when pairing and after reboot for BLUEDROID
+  steps: |
+   1. all slaves set AuthReqMode and RspKey
+   2. do pairing
+   3. master and slave get bond list and num
+   4. reboot
+   5. master and slave get bond list and num
+   6. slave remove bond device
+  expected result: |
+   1. Succeed
+   2. Succeed
+   3. Succeed
+   4. succeed
+   5. succeed
+   6. succeed
+  test environment: SSC_T5_1
+  initial condition: BLE_INIT_SMP5
+  allow fail: 3/5
+  cmd set:
+  - ""
+  - - "SSC SSC[2-5] blesmp -S -z AuthReqMode -v 0x01"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - "SSC SSC[2-5] blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - "SSC SSC[2-5] blesmp -S -z RspKey -v 0x03"
+    - ['P SSC[2-5] C +BLESMP:OK']
+  - - LOOP 4 4 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
+    - ""
+  - - "SSC SSC{%d} bleadv -D -z start"
+    - ['R SSC{%d} C +BLEADV:Start,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC{%d} C +BLECONN:GapConnect']
+  - - "SSC SSC{%d} blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r <dut{%d}_bt_mac>"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC{%d} C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 blesmp -B -z getlist -n 4"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,4']
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,4']
+  - - "SSC SSC2 blesmp -B -z getnum"
+    - ['P SSC2 C +BLESMP:GetBondNum,1']
+  - - "SSC SSC[1-2] reboot"
+    - ['R SSC[1-2] C !!!ready!!!']
+  - - "SSC SSC[1-2] ble -R"
+    - ["R SSC[1-2] C +BLE:OK"]
+  - - "SSC SSC1 blesmp -B -z getnum"
+    - ['P SSC1 C +BLESMP:GetBondNum,4']
+  - - "SSC SSC2 blesmp -B -z getnum"
+    - ['P SSC2 C +BLESMP:GetBondNum,1']
+  - - "SSC SSC2 blesmp -B -z remove -r <dut1_bt_mac>"
+    - ['P SSC2 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut1_bt_mac>)']
+- ID: BLUEDROID_SMP_08004
+  <<: *SMP_CASE
+  test point 2: BLE SMP bond item management test
+  summary: BLE SMP remove bond which not bond for BLUEDROID
+  steps: |
+   1. DUT1 remove bond
+  expected result: |
+   1. failed
+  cmd set:
+  - ""
+  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
+    - ['P SSC1 C +BLESMP:RemoveBond,Fail']
+- ID: BLUEDROID_SMP_08005
+  <<: *SMP_CASE
+  test point 2: BLE SMP remove bond
+  summary: BLE SMP bond 15/16 devices and get list
+  steps: |
+   1. DUT2 set AuthReqMode and RspKey
+   2. DUT2 set static random address
+   3. DUT1 and DUT2 do pairing
+   4. loop step 2 and step3 16 times
+   5. get bond list and bond num
+   6. DUT2 set static random address
+   7. DUT1 and DUT2 do pairing
+   8. get bond list and bond num
+  expected result: |
+   1. Succeed
+   2. Succeed
+   3. Succeed
+   4. succeed
+   5. succeed
+   6. succeed
+   7. succeed
+   8. succeed
+  cmd set:
+  - ""
+  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x01"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x03"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - "SSC SSC[1-2] blesmp -S -z RspKey -v 0x03"
+    - ['P SSC[1-2] C +BLESMP:OK']
+  - - LOOP 15 7 "range(0,15)" "range(0,15)" "range(0,15)"
+    - ""
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ['R SSC2 C +BLEADV:Stop,OK']
+  - - "SSC SSC2 ble -S -z randAddr -a c0:9b:0e:36:6d:7{%x} -r 1"
+    - ["R SSC2 C +BLECONN:SetRandAddr,OK"]
+  - - "SSC SSC2 bleadv -D -z start -o 1"
+    - ['R SSC2 C +BLEADV:Start,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a c0:9b:0e:36:6d:7{%x} -r 1"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r c0:9b:0e:36:6d:7{%x}"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 bleconn -D -z all"
+    - ['P SSC1 C +BLE:CLOSE', 'P SSC2 C +BLECONN:GapDisconnect,OK']
+  - - "SSC SSC1 blesmp -B -z getlist -n 16"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,15']
+  - - "SSC SSC2 ble -S -z randAddr -a c1:0a:d3:25:7a:cf -r 1"
+    - ["R SSC2 C +BLECONN:SetRandAddr,OK"]
+  - - "SSC SSC2 bleadv -D -z stop"
+    - ['R SSC2 C +BLEADV:Stop,OK']
+  - - "SSC SSC2 bleadv -D -z start -o 1"
+    - ['R SSC2 C +BLEADV:Start,OK']
+  - - "SSC SSC1 bleconn -C -p 0x10 -a c1:0a:d3:25:7a:cf -r 1"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
+  - - "SSC SSC1 blesmp -R -a 1 -r c1:0a:d3:25:7a:cf"
+    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
+  - - "SSC SSC1 blesmp -B -z getlist -n 16"
+    - ['P SSC1 C +BLESMP:GetBondList,OK,15']

文件差異過大導致無法顯示
+ 184 - 1169
components/idf_test/integration_test/TC_IT_BTSTK_GAP.yml


文件差異過大導致無法顯示
+ 65 - 550
components/idf_test/integration_test/TC_IT_BTSTK_GATT.yml


+ 94 - 519
components/idf_test/integration_test/TC_IT_BTSTK_SMP.yml

@@ -17,19 +17,15 @@
 .just_work_pair: &just_work_pair
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
     - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
-    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
       - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
 
 .slave_passkey_entry_pair: &slave_passkey_entry_pair
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
     - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
-    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
       - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
     - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
       - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
@@ -37,10 +33,8 @@
 .master_passkey_entry_pair: &master_passkey_entry_pair
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
     - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
-    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
       - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
     - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
       - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
@@ -48,10 +42,8 @@
 .both_side_passkey_entry_pair: &both_side_passkey_entry_pair
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
     - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
-    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
       - ['P SSC[1,2] C +BLESMP:PassKeyReq']
     - - "SSC SSC[1,2] blesmp -K -r <dut[2,1]_bt_mac> -a 1 -k 123456"
       - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
@@ -59,32 +51,28 @@
 .numberic_comparision_pair: &numberic_comparision_pair
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
     - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
-    - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
       - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
     - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
       - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
 
 .check_connection: &check_connection
   LIST_MERGE:
-    - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
-      - ["R SSC1 C +GATTC:DiscoverService,A002"]
+    - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut2_bt_mac>"
+      - ["R SSC1 C +GATTC:Discover,OK"]
 
 .disconnect: &disconnect
   LIST_MERGE:
     - - "SSC SSC1 bleconn -D -z all"
-      - ['P SSC1 C +BLE:GattcDisconnect', 'P SSC2 C +BLE:GattsDisconnect']
+      - ['P SSC1 C +BLECONN:GapDisconnect,OK', 'P SSC2 C +BLECONN:GapDisconnect,OK']
     - - "SSC SSC2 bleadv -D -z start"
       - ['P SSC2 C +BLEADV:OK']
 
-.start_pair: &start_pair
+.connect: &connect
   LIST_MERGE:
     - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-      - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-    - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-      - ['P SSC1 C +BLESMP:SecReq']
+      - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
 
 .config_just_work: &config_just_work
   LIST_MERGE:
@@ -1657,138 +1645,10 @@ test cases:
   - ""
   - *config_just_work
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
   - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
   - *check_connection
-- ID: BTSTK_SMP_04001
-  <<: *SMP_CASE
-  test point 2: BLE SMP key test
-  summary: BLE SMP set key size less than required
-  allow fail: 1/2
-  steps: |
-    1. set key size 7
-    2. set key size 6
-    3. do just work pair
-  expected result: |
-    1. succeed
-    2. LTK size is 7
-    3. succeed
-  cmd set:
-  - ""
-  - *config_numberic_comparision
-  - - "SSC SSC1 blesmp -S -z KeySize -v 0x07"
-    - ['P SSC1 C +BLESMP:OK']
-  - - "SSC SSC1 blesmp -S -z KeySize -v 0x06"
-    - ['P SSC1 C +BLESMP:OK']
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
-    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
-- ID: BTSTK_SMP_04002
-  <<: *SMP_CASE
-  test point 2: BLE SMP key test
-  summary: BLE SMP set key size greater than required
-  allow fail: 1/2
-  steps: |
-    1. set key size 16
-    2. set key size 17
-    3. do just work pair
-  expected result: |
-    1. succeed
-    2. LTK size is 17
-    3. succeed
-  cmd set:
-  - ""
-  - *config_numberic_comparision
-  - - "SSC SSC1 blesmp -S -z KeySize -v 0x10"
-    - ['P SSC1 C +BLESMP:OK']
-  - - "SSC SSC1 blesmp -S -z KeySize -v 0x11"
-    - ['P SSC1 C +BLESMP:OK']
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
-    - ['P SSC[1-2] C +BLESMP:Key,LocalLTK,16 C +BLESMP:AuthComplete,Success,0']
-- ID: BTSTK_SMP_05001
-  <<: *SMP_CASE
-  test point 2: BLE SMP unsuccessful pair reply test
-  summary: BLE SMP unsuccessful passkey entry test
-  steps: |
-    1. enter passkey entry phase
-    2. entry incorrect passkey and accept
-    3. enter passkey entry phase
-    4. entry correct passkey and reject
-    5. enter passkey entry phase
-    6. send numberic comparision accept
-    7. enter passkey entry phase
-    8. send numberic comparision reject
-  expected result: |
-    1. succeed
-    2. pair failed
-    3. succeed
-    4. pair failed
-    5. succeed
-    6. pair failed
-    7. succeed
-    8. pair failed
-  cmd set:
-  - ""
-  - *config_slave_passkey_entry
-  - - LOOP 2 6 "[1,0]" "['000001','<key>']"
-    - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
-  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k {%s}"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
-  - *disconnect
-  - - LOOP 2 6 "[1,0]"
-    - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
-  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a {%d}"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
-  - *disconnect
-- ID: BTSTK_SMP_05002
-  <<: *SMP_CASE
-  test point 2: BLE SMP unsuccessful pair reply test
-  summary: BLE SMP unsuccessful numberic comparision test
-  steps: |
-    1. enter numberic comparision phase
-    2. entry passkey and accept
-    3. enter numberic comparision phase
-    4. send numberic comparision reject
-  expected result: |
-    1. succeed
-    2. pair failed
-    3. succeed
-    4. pair failed
-  cmd set:
-  - ""
-  - *config_numberic_comparision
-  - - LOOP 2 6 "[1,0]"
-    - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a {%d} -k 000001"
-    - []
-  - - DELAY 10
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
-  - *disconnect
-  - - LOOP 2 6 "[1,0]" "[0,1]"
-    - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
-  - *disconnect
 - ID: BTSTK_SMP_05003
   <<: *SMP_CASE
   test point 2: BLE SMP unsuccessful pair reply test
@@ -1814,18 +1674,18 @@ test cases:
   cmd set:
   - ""
   - *config_both_side_passkey_entry
-  - - LOOP 2 6 "[1,0]" "['000002','000001']"
+  - - LOOP 2 5 "[1,0]" "['000002','000001']"
     - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['R SSC[1,2] C +BLESMP:PassKeyReq']
   - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a [1,{%d}] -k [000001,{%s}]"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
   - *disconnect
-  - - LOOP 2 6 "[1,0]" "[0,1]"
+  - - LOOP 2 5 "[1,0]" "[0,1]"
     - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC[1,2] C +BLESMP:PassKeyReq']
   - - "SSC SSC[1,2] blesmp -C -r <dut[2,1]_bt_mac> -a [{%d},{%d}]"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
@@ -1854,82 +1714,14 @@ test cases:
     8. succeed
   cmd set:
   - ""
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 0 -r <dut2_bt_mac>"
+  - *connect
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - [""]
   - *disconnect
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
   - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 0 -r <dut1_bt_mac>"
     - [""]
-- ID: BTSTK_SMP_06001
-  <<: *SMP_CASE
-  test environment: SSC_T1_4
-  initial condition: BLE_DEINIT1
-  test point 2: BLE SMP use API in abnormal state
-  summary: BLE SMP use API when BLE not initialized, not enabled or not registered callback
-  steps: |
-    1. set security parameter
-    2. send security response
-    3. send passkey reply
-    4. send confirm reply
-    5. init BLE
-    6. set security parameter
-    7. send security response
-    8. send passkey reply
-    9. send confirm reply
-    10. init BLE
-    11. set security parameter
-    12. send security response
-    13. send passkey reply
-    14. send confirm reply
-  expected result: |
-    1. failed
-    2. failed
-    3. failed
-    4. failed
-    5. succeed
-    6. failed
-    7. failed
-    8. failed
-    9. failed
-    10. succeed
-    11. failed
-    12. failed
-    13. failed
-    14. failed
-  cmd set:
-  - ""
-  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
-    - ['P SSC1 C +BLESMP:ERROR']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['P SSC1 C +BLESMP:ERROR']
-  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
-    - ['P SSC1 C +BLESMP:ERROR']
-  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
-    - ['P SSC1 C +BLESMP:ERROR']
-  - - SSC SSC1 bt -D -z init
-    - ['R SSC1 C +BT:']
-  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
-    - ['P SSC1 C +BLESMP']
-  - - SSC SSC1 bt -D -z enable
-    - ['R SSC1 C +BT:']
-  - - "SSC SSC1 blesmp -S -z AuthReqMode -v 0x0C"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -K -r <dut1_bt_mac> -a 1 -k 123456"
-    - ['P SSC1 C +BLESMP']
-  - - "SSC SSC1 blesmp -C -r <dut1_bt_mac> -a 1"
-    - ['P SSC1 C +BLESMP']
 - ID: BTSTK_SMP_06002
   <<: *SMP_CASE
   test point 2: BLE SMP use API in abnormal state
@@ -1945,12 +1737,9 @@ test cases:
   cmd set:
   - ""
   - *config_slave_passkey_entry
-  - *start_pair
-  - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
-    - ['P SSC2 C +BLESMP']
-  - - "SSC SSC2 blesmp -C -r <dut1_bt_mac> -a 1"
-    - ['P SSC2 C +BLESMP']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
   - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
@@ -1969,11 +1758,10 @@ test cases:
   cmd set:
   - ""
   - *config_slave_passkey_entry
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['P SSC1 C +BLESMP']
   - - "SSC SSC2 blesmp -K -r <dut1_bt_mac> -a 1 -k <key>"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
 - ID: BTSTK_SMP_06004
@@ -1993,10 +1781,14 @@ test cases:
   cmd set:
   - ""
   - *config_slave_passkey_entry
-  - *start_pair
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
   - *disconnect
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
   - *disconnect
 - ID: BTSTK_SMP_06005
@@ -2016,330 +1808,91 @@ test cases:
   cmd set:
   - ""
   - *config_slave_passkey_entry
-  - *start_pair
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
+    - ['P SSC1 C +BLESMP:SecReq']
   - - "SSC SSC2 bleconn -D -z all"
-    - ['P SSC2 C +BLE:GattsDisconnect', 'P SSC1 C +BLE:GattcDisconnect,OK']
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK', 'P SSC1 C +BLECONN:GapDisconnect,OK']
   - - "SSC SSC2 bleadv -D -z start"
     - ['P SSC2 C +BLEADV:Start,OK']
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
+  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
+  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC2 C +BLESMP:PassKeyReq', 'P SSC1 A <key>:BLESMP:PassKeyNotify,(\d+)']
   - - "SSC SSC2 bleconn -D -z all"
-    - ['P SSC2 C +BLE:GattsDisconnect', 'P SSC1 C +BLE:GattcDisconnect,OK']
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK', 'P SSC1 C +BLECONN:GapDisconnect,OK']
 - ID: BTSTK_SMP_07001
   <<: *SMP_CASE
-  test point 2: BLE SMP no bond test and reconnect
-  summary: BLE SMP initiator with master passkey entry and reconnect
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP just work pairing and reconnect
   steps: |
-    1. DUT1 and DUT2 SMP with master passkey entry
+    1. DUT1 and DUT2 SMP with just work pair
     2. DUT1 disconnect
     3. DUT1 connect to DUT2
     4. DUT2 send auth request
   expected result: |
     1. succeed
     2. succeed
-    3. connect succeed
+    3. succeed
     4. succeed
   cmd set:
   - ""
-  - *config_master_passkey_entry
+  - *config_just_work
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
   - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
-  - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
   - *disconnect
   - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
+    - ['P SSC1 C +BLECONN:GapConnect,OK', 'P SSC2 C +BLECONN:GapConnect,OK']
   - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
     - ['P SSC[1-2] C +BLESMP:AuthComplete,Success']
-- ID: BTSTK_SMP_07002
-  <<: *SMP_CASE
-  test point 2: BLE SMP no bond test and reboot
-  summary: BLE SMP initiator with master passkey entry and reboot
-  steps: |
-    1. DUT1 and DUT2 SMP bond with lagecy pairing
-    2. DUT1 reboot
-    3. DUT1 connect to DUT2
-    4. DUT2 send auth requst
-  expected result: |
-    1. succeed
-    2. succeed
-    3. connect succeed
-    4. fail
-  cmd set:
-  - ""
-  - *config_master_passkey_entry
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['P SSC1 C +BLESMP:PassKeyReq', 'P SSC2 A <key>:BLESMP:PassKeyNotify,(\d+)']
-  - - "SSC SSC1 blesmp -K -r <dut2_bt_mac> -a 1 -k <key>"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC[1-2] reboot"
-    - ['P SSC[1-2] C !!!ready!!!']
-  - - "SSC SSC[1-2] ble -R"
-    - ['R SSC[1-2] C +BLE:']
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ['R SSC2 C +GATTS:StartService,OK,A000']
-  - - "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 SSC[1-2] blesmp -L -c [1,0]"
-    - ['R SSC[1-2] C +BLESMP:OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:OK']
-  - - DELAY 10
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
 - ID: BTSTK_SMP_07003
   <<: *SMP_CASE
-  test point 2: BLE SMP no bond test and reconnect
-  summary: BLE SMP initiator numberic comparision and reconnect
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP slave passkey enter and reconnect
   steps: |
-    1. DUT1 and DUT2 SMP with numberic comparision
-    2. DUT1 disconnect
+    1. DUT1 and DUT2 SMP with slave passkey enter
+    2. DUT1 reconnect
     3. DUT1 connect to DUT2
-    4. DUT2 send auth requst
+    4. DUT2 send auth request
   expected result: |
     1. succeed
     2. succeed
-    3. connect succeed
+    3. succeed
     4. succeed
   cmd set:
   - ""
-  - *config_numberic_comparision
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
+  - *config_slave_passkey_entry
+  - *slave_passkey_entry_pair
   - *disconnect
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success']
+  - *slave_passkey_entry_pair
 - ID: BTSTK_SMP_07004
   <<: *SMP_CASE
-  test point 2: BLE SMP no bond test and reconnect
-  summary: BLE SMP initiator numberic comparision and reconnect
+  test point 2: BLE SMP no bond test and repairing
+  summary: BLE SMP slave passkey enter and reboot
   steps: |
-    1. DUT1 and DUT2 SMP with numberic comparision
-    2. DUT1 disconnect
-    3. DUT1 and DUT2 reboot
-    4. DUT2 send auth requst
+    1. DUT1 and DUT2 SMP with slave passkey enter
+    2. DUT1 reboot
+    3. DUT1 connect to DUT2
+    4. DUT2 send auth request
   expected result: |
     1. succeed
     2. succeed
-    3. connect succeed
+    3. succeed
     4. failed
   cmd set:
   - ""
-  - *config_numberic_comparision
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC1 blesmp -E -r <dut2_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:SecReq']
-  - - "SSC SSC2 blesmp -R -a 1 -r <dut1_bt_mac>"
-    - ['R SSC2 A <key>:BLESMP:NCReq,(\d+)', 'R SSC1 C NCReq P <key>']
-  - - "SSC SSC[1-2] blesmp -C -r <dut[2,1]_bt_mac> -a 1"
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC[1-2] reboot"
-    - ['P SSC[1-2] C !!!ready!!!']
-  - - "SSC SSC[1-2] ble -R"
-    - ['R SSC[1-2] C +BLE:']
-  - - "SSC SSC2 gatts -S -z load -p 0xA0"
-    - ['R SSC2 C +GATTS:StartService,OK,A000']
-  - - "SSC SSC2 bleadv -L -c 0 -t 3"
-    - ['R SSC2 C +BLEADV:SetAdv,OK']
+  - *config_slave_passkey_entry
+  - *slave_passkey_entry_pair
+  - - "SSC SSC1 reboot"
+    - ['P SSC2 C +BLECONN:GapDisconnect,OK']
+  - - "SSC SSC1 ble -R"
+    - ['R SSC1 C +BLE:']
   - - "SSC SSC2 bleadv -D -z start"
     - ['R SSC2 C +BLEADV:OK']
-  - - "SSC SSC[1-2] blesmp -L -c [1,0]"
-    - ['R SSC[1-2] C +BLESMP:OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC2 C +BLESMP:OK']
-  - - DELAY 10
-    - ['P SSC[1-2] C +BLESMP:AuthComplete,Fail']
-- ID: BTSTK_SMP_08001
-  <<: *SMP_CASE
-  test point 2: BLE SMP bond item management test
-  summary: BLE SMP get bond list and number without bond device
-  steps: |
-    1. DUT1 get bond list
-    2. DUT1 get bond number
-  expected result: |
-    1. succeed
-    2. succeed
-  cmd set:
-  - ""
-  - - "SSC SSC1 blesmp -B -z getlist -n 1"
-    - ['P SSC1 C +BLESMP:GetBondList,OK,0']
-  - - "SSC SSC1 blesmp -B -z getnum"
-    - ['P SSC1 C +BLESMP:GetBondNum,0']
-- ID: BTSTK_SMP_08002
-  <<: *SMP_CASE
-  test point 2: BLE SMP bond item management test
-  summary: BLE SMP remove bond after connected
-  steps: |
-   1. DUT2 set AuthReqMode and RspKey
-   2. pairing
-   3. remove bond
-  expected result: |
-   1. Succeed
-   2. Succeed
-   3. Succeed
-  cmd set:
-  - ""
-  - *config_bond_device
-  - - "SSC SSC2 bleadv -D -z start"
-    - ['R SSC2 C +BLEADV:Start,OK']
-  - *start_pair
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut2_bt_mac>"
-    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC1 blesmp -B -z getnum"
-    - ['P SSC1 C +BLESMP:GetBondNum,1']
-  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
-    - ['P SSC1 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut2_bt_mac>)']
-- ID: BTSTK_SMP_08003
-  <<: *SMP_CASE
-  test point 2: BLE SMP bond item management test
-  summary: BLE SMP get bond list and number when pairing and after reboot
-  steps: |
-   1. all slaves set AuthReqMode and RspKey
-   2. do pairing
-   3. master and slave get bond list and num
-   4. reboot
-   5. master and slave get bond list and num
-   6. slave remove bond device
-  expected result: |
-   1. Succeed
-   2. Succeed
-   3. Succeed
-   4. succeed
-   5. succeed
-   6. succeed
-  test environment: SSC_T5_1
-  initial condition: BLE_INIT_SMP5
-  cmd set:
-  - ""
-  - - "SSC SSC[2-5] blesmp -S -z AuthReqMode -v 0x01"
-    - ['P SSC[2-5] C +BLESMP:OK']
-  - - "SSC SSC[2-5] blesmp -S -z IOCAP -v 0x03"
-    - ['P SSC[2-5] C +BLESMP:OK']
-  - - "SSC SSC[2-5] blesmp -S -z RspKey -v 0x03"
-    - ['P SSC[2-5] C +BLESMP:OK']
-  - - LOOP 4 4 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
-    - ""
-  - - "SSC SSC{%d} bleadv -D -z start"
-    - ['R SSC{%d} C +BLEADV:Start,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut{%d}_bt_mac>"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC{%d} C +BLE:GattsConnect']
-  - - "SSC SSC{%d} blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC1 C +BLESMP:SecReq']
-  - - "SSC SSC1 blesmp -R -a 1 -r <dut{%d}_bt_mac>"
-    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC{%d} C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC1 blesmp -B -z getlist -n 4"
-    - ['P SSC1 C +BLESMP:GetBondList,OK,4']
-  - - "SSC SSC1 blesmp -B -z getnum"
-    - ['P SSC1 C +BLESMP:GetBondNum,4']
-  - - "SSC SSC2 blesmp -B -z getnum"
-    - ['P SSC2 C +BLESMP:GetBondNum,1']
-  - - "SSC SSC[1-2] reboot"
-    - ['R SSC[1-2] C !!!ready!!!']
-  - - "SSC SSC[1-2] ble -R"
-    - ["R SSC[1-2] C +BLE:OK"]
-  - - "SSC SSC1 blesmp -B -z getnum"
-    - ['P SSC1 C +BLESMP:GetBondNum,4']
-  - - "SSC SSC2 blesmp -B -z getnum"
-    - ['P SSC2 C +BLESMP:GetBondNum,1']
-  - - "SSC SSC2 blesmp -B -z remove -r <dut1_bt_mac>"
-    - ['P SSC2 RE "\+BLESMP:RemoveBond,Success,%%s"%%(<dut1_bt_mac>)']
-- ID: BTSTK_SMP_08004
-  <<: *SMP_CASE
-  test point 2: BLE SMP bond item management test
-  summary: BLE SMP remove bond which not bond
-  steps: |
-   1. DUT1 remove bond
-  expected result: |
-   1. failed
-  cmd set:
-  - ""
-  - - "SSC SSC1 blesmp -B -z remove -r <dut2_bt_mac>"
-    - ['P SSC1 C +BLESMP:RemoveBond,Fail']
-- ID: BTSTK_SMP_08005
-  <<: *SMP_CASE
-  test point 2: BLE SMP remove bond
-  summary: BLE SMP bond 15/16 devices and get list
-  steps: |
-   1. DUT2 set AuthReqMode and RspKey
-   2. DUT2 set static random address
-   3. DUT1 and DUT2 do pairing
-   4. loop step 2 and step3 16 times
-   5. get bond list and bond num
-   6. DUT2 set static random address
-   7. DUT1 and DUT2 do pairing
-   8. get bond list and bond num
-  expected result: |
-   1. Succeed
-   2. Succeed
-   3. Succeed
-   4. succeed
-   5. succeed
-   6. succeed
-   7. succeed
-   8. succeed
-  cmd set:
-  - ""
-  - - "SSC SSC[1-2] blesmp -S -z AuthReqMode -v 0x01"
-    - ['P SSC[1-2] C +BLESMP:OK']
-  - - "SSC SSC[1-2] blesmp -S -z IOCAP -v 0x03"
-    - ['P SSC[1-2] C +BLESMP:OK']
-  - - "SSC SSC[1-2] blesmp -S -z RspKey -v 0x03"
-    - ['P SSC[1-2] C +BLESMP:OK']
-  - - LOOP 15 7 "range(0,15)" "range(0,15)" "range(0,15)"
-    - ""
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ['R SSC2 C +BLEADV:Stop,OK']
-  - - "SSC SSC2 ble -S -z randAddr -a c0:9b:0e:36:6d:7{%x} -r 1"
-    - ["R SSC2 C +BLECONN:SetRandAddr,OK"]
-  - - "SSC SSC2 bleadv -D -z start -o 1"
-    - ['R SSC2 C +BLEADV:Start,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a c0:9b:0e:36:6d:7{%x} -r 1"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC1 C +BLESMP:SecReq']
-  - - "SSC SSC1 blesmp -R -a 1 -r c0:9b:0e:36:6d:7{%x}"
-    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC1 bleconn -D -z all"
-    - ['P SSC1 C +BLE:CLOSE', 'P SSC2 C +BLE:GattsDisconnect']
-  - - "SSC SSC1 blesmp -B -z getlist -n 16"
-    - ['P SSC1 C +BLESMP:GetBondList,OK,15']
-  - - "SSC SSC2 ble -S -z randAddr -a c1:0a:d3:25:7a:cf -r 1"
-    - ["R SSC2 C +BLECONN:SetRandAddr,OK"]
-  - - "SSC SSC2 bleadv -D -z stop"
-    - ['R SSC2 C +BLEADV:Stop,OK']
-  - - "SSC SSC2 bleadv -D -z start -o 1"
-    - ['R SSC2 C +BLEADV:Start,OK']
-  - - "SSC SSC1 bleconn -C -p 0x10 -a c1:0a:d3:25:7a:cf -r 1"
-    - ['P SSC1 C +BLE:GattcConnect,OK', 'P SSC2 C +BLE:GattsConnect']
-  - - "SSC SSC2 blesmp -E -r <dut1_bt_mac> -z Enc"
-    - ['P SSC1 C +BLESMP:SecReq']
-  - - "SSC SSC1 blesmp -R -a 1 -r c1:0a:d3:25:7a:cf"
-    - ['P SSC1 C +BLESMP:AuthComplete,Success,0','P SSC2 C +BLESMP:AuthComplete,Success,0']
-  - - "SSC SSC1 blesmp -B -z getlist -n 16"
-    - ['P SSC1 C +BLESMP:GetBondList,OK,15']
+    - *slave_passkey_entry_pair
 - ID: BTSTK_SMP_50001
   <<: *SMP_CASE
   category: Performance
@@ -2611,3 +2164,25 @@ test cases:
     - ""
   - - "fail_timeout = 10"
     - ""
+- ID: BTSTK_SMP_52001
+  <<: *SMP_CASE
+  category: Performance
+  test point 1: performance + stress
+  test point 2: BLE SMP performance test for bond
+  summary: BLE SMP bond, remove, get bondlist, rebond
+  steps: |
+    1. DUT1 bond 15 devices and get bond list
+    2. DUT1 bond 16th device and get bond list
+    3. rebond removed bond device and get bond list
+    4. remove all bond and get bond list
+    5. loop step 1 to step 4
+  expected result: |
+    1. succeed
+    2. succeed
+    3. succeed
+    4. succeed
+  execution time: 2
+  cmd set:
+  - "BLEStress/BLESMPBondPerformance"
+  - - test_time = 120
+    - ""

部分文件因文件數量過多而無法顯示