.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_1
  execution time: 0
  module: BT Stack
  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 SSC1 C +GATTC:Discover,OK"]

.included_service_connection: &included_service_connection
  LIST_MERGE:
    - - "SSC SSC2 gatts -S -z load -p 0xA1"
      - ["R SSC2 C +GATTS:StartService,OK,A001"]
    - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
      - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
    - - SSC SSC1 gattc -F -r <dut2_bt_mac>
      - ['R SSC1 C +GATTC:OK']

.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"]

test cases:
- ID: BTSTK_GATT_01001
  <<: *GATT_CASE
  test point 2: BLE GATT server create service
  summary: create service, add char and descriptor and start service
  steps: |
    1. create preset service 0xA000
  expected result: |
    1. succeed
  initial condition: BLE_INIT1
  test environment: SSC_T1_1
  cmd set:
  - ""
  - - "SSC SSC1 gatts -S -z load -p 0xA0"
    - ["R SSC1 C +GATTS:StartService,OK,A000"]
- ID: BTSTK_GATT_01002
  <<: *GATT_CASE
  test point 2: BLE GATT server create service
  summary: create service and include another service
  steps: |
    1. create preset service 0xA000
    2. create preset service 0xA001
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_INIT1
  test environment: SSC_T1_1
  cmd set:
  - ""
  - - "SSC SSC1 gatts -S -z load -p 0xA0"
    - ["R SSC1 C +GATTS:StartService,OK,A000"]
  - - "SSC SSC1 gatts -S -z load -p 0xA1"
    - ["R SSC1 C +GATTS:StartService,OK,A001"]
- ID: BTSTK_GATT_20001
  <<: *GATT_CASE
  test point 2: BLE GATT client service / char discovery
  summary: GATT client discover primary service
  steps: |
    1. DUT2 create preset service 0xA000
    2. DUT2 create preset service 0xA001
    3. DUT1 connect to DUT2
    4. DUT1 do primary service discovery
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. found service 0xA000 and 0xA001
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - *included_service_connection
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10"
    - ["R SSC1 C +GATTC:DiscoverService,A000 C +GATTC:DiscoverService,A001"]
- ID: BTSTK_GATT_20002
  <<: *GATT_CASE
  test point 2: BLE GATT client service / char discovery
  summary: GATT client get included service
  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 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_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"]
- ID: BTSTK_GATT_60001
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set char value and value length longer than max length
  allow fail: 1/2
  steps: |
    1. DUT2 create service
    2. DUT2 set value length
  expected result: |
    1. succeed
    2. failed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -l 3"
    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
- ID: BTSTK_GATT_60002
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server get short char value and long char value
  allow fail: 1/2
  steps: |
    1. DUT2 create service
    2. DUT2 get short char
    3. DUT2 get long char
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,256"]
- ID: BTSTK_GATT_60003
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set char value and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set short char value
    3. DUT2 get value
    4. DUT2 set long char value
    5. DUT2 get value
    6. DUT2 set long char value
    7. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
    6. succeed
    7. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x02"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 0x010203040506"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,6,0x010203040506"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 123456"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,6,0x313233343536"]
- ID: BTSTK_GATT_60004
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set special char value and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set char value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v JKLJGFD*^"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,9,0x4A4B4C4A4746442A5E"]
- ID: BTSTK_GATT_60005
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set char value length=0 and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set char value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -l 0"
    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
- ID: BTSTK_GATT_60006
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server only set char value length and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set char value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -l 5"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,5"]
- ID: BTSTK_GATT_60007
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set  value
  summary: gattc write char value and gatts get
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write short char
    3. DUT2 get value
    4. DUT1 write longchar
    5. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C302", "R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
  - - "SSC SSC2 gatts -V -c 0xC302 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
  - - "SSC SSC2 gatts -V -c 0xC304 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,256"]
- ID: BTSTK_GATT_60008
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: gatts set char value and gattc read
  steps: |
    1. DUT1 do service discovery
    2. DUT2 set  short char value
    3. DUT1 read
    4. DUT2 set long char value
    5. DUT1 read
    6. DUT2 set long char length
    7. DU1 read
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC2 gatts -V -c 0xC300 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C300"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
  - - "SSC SSC2 gatts -V -c 0xC301 -p 0xA2 -z set -l 5"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,5", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
- ID: BTSTK_GATT_60009
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set descriptor value and value length longer than max length
  steps: |
    1. DUT2 create service
    2. DUT2 set descriptor value length
  expected result: |
    1. succeed
    2. failed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -l 3"
    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
- ID: BTSTK_GATT_60010
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server get short descriptor value
  steps: |
    1. DUT2 create service
    2. DUT2 get short char
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x00"]
- ID: BTSTK_GATT_60011
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set descriptor value and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set descriptor value
    3. DUT2 get value
    4. DUT2 set descriptor value
    5. DUT2 get value
    6. DUT2 set descriptor value
    7. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
    6. succeed
    7. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x02"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 0x010203040506"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,6,0x010203040506"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 123456"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,6,0x313233343536"]
- ID: BTSTK_GATT_60012
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set special descriptor value and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set descriptor value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v JKLJGFD*^"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,9,0x4A4B4C4A4746442A5E"]
- ID: BTSTK_GATT_60013
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server set descriptor value length=0 and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set descriptor value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -l 0"
    - ["R SSC2 C +GATTS:SetAttrVal,ERROR"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x00"]
- ID: BTSTK_GATT_60014
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: GATT server only set descriptor value length and get value
  steps: |
    1. DUT2 create service
    2. DUT2 set char value
    3. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA2"
    - ["R SSC2 C +GATTS:StartService,OK,A002"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -l 5"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,5"]
- ID: BTSTK_GATT_60015
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set  value
  summary: gattc write descriptor value and gatts get
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write short descriptor
    3. DUT2 get value
    4. DUT1 write long descriptor
    5. DUT2 get value
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C300,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C300,2901"]
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,1,0x01"]
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z get"
    - ["R SSC2 C +GATTS:GetAttrValue,256"]
- ID: BTSTK_GATT_60016
  <<: *GATT_CASE
  test point 2: BLE GATT server get and set value
  summary: gatts set value and gattc read
  steps: |
    1. DUT1 do service discovery
    2. DUT2 set short descriptor value
    3. DUT1 read
    4. DUT2 set long descriptor value
    5. DUT1 read
    6. DUT2 set long descriptor length
    7. DU1 read
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC2 gatts -V -c 0xC300 -d 0x2901 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C300,2901"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -v 0x02"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
  - - "SSC SSC2 gatts -V -c 0xC301 -d 0x2901 -p 0xA2 -z set -l 5"
    - ["R SSC2 C +GATTS:SetAttrVal,OK"]
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,5", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
- ID: BTSTK_GATT_21001
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read short char
  steps: |
    1. DUT1 do discover
    2. GATT client read 1 byte short char
  expected result: |
    1. succeed
    2. read succeed
  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: BTSTK_GATT_21002
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read long char
  steps: |
    1. DUT1 do service discovery
    2. DUT1 GATT client read 256 bytes long char
  expected result: |
    1. succeed
    2. read succeed
  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: BTSTK_GATT_21003
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read short descriptor
  steps: |
    1. DUT1 do service discovery
    2. GATT client read short descriptor
  expected result: |
    1. succeed
    2. read succeed
  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: BTSTK_GATT_21004
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read long descriptor
  steps: |
    1. DUT1 do service discovery
    2. GATT client read long descriptor
  expected result: |
    1. succeed
    2. read succeed
  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: BTSTK_GATT_21005
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read short char of an included service
  steps: |
    1. DUT2 create preset service 0xA000
    2. DUT2 create preset service 0xA001
    3. DUT1 connect to DUT2
    4. DUT1 do discover
    5. GATT client read 1 byte short char
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA1"
    - ["R SSC2 C +GATTS:StartService,OK,A001"]
  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
    - ['R SSC1 C +GATTC:OK']
  - *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: BTSTK_GATT_21006
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read short descriptor or an included service
  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:StartService,OK,A001"]
  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
    - ['R SSC1 C +GATTC:OK']
  - *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: BTSTK_GATT_21007
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read auto reply short char created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read auto reply short char
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C300"]
- ID: BTSTK_GATT_21008
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read auto reply long char created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read auto reply long char
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C301"]
- ID: BTSTK_GATT_21009
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read app reply short char created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read app reply short char
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC310 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,1", "R SSC1 C +GATTC:Read,OK,0010,A002,C310"]
- ID: BTSTK_GATT_21010
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read app reply long char created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read app reply long char
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC311 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,256", "R SSC1 C +GATTC:Read,OK,0010,A002,C311"]
- ID: BTSTK_GATT_21011
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read auto reply short descriptor created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read auto reply short descriptor
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C300,2901"]
- ID: BTSTK_GATT_21012
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read auto reply long descriptor created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read auto reply long descriptor
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C301,2901"]
- ID: BTSTK_GATT_21013
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read app reply short descriptor created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read app reply short descriptor
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C310,2901,1", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C310,2901"]
- ID: BTSTK_GATT_21014
  <<: *GATT_CASE
  test point 2: BLE GATT client read char and descriptor
  summary: GATT client read app reply long descriptor created by table
  steps: |
    1. DUT1 do discover
    2. DUT1 read app reply long descriptor
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C311,2901,256", "R SSC1 C +GATTC:ReadDescriptor,OK,0010,A002,C311,2901"]
- ID: BTSTK_GATT_22001
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write with response to a short char with response
  steps: |
    1. DUT1 do service discovery
    2. GATT client write with response to short char with response
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_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
  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: BTSTK_GATT_22003
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do execute
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do execute
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_GATT_22004
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do cancel
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do cancel
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_GATT_22005
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to a short descriptor
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to short descriptor
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_GATT_22006
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to long descriptor and execute
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to long descriptor and execute
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_GATT_22007
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to long descriptor using write API
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to long descriptor and execute
  expected result: |
    1. succeed
    2. write succeed
  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: BTSTK_GATT_22008
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to an included char
  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:StartService,OK,A001"]
  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
    - ['R SSC1 C +GATTC:OK']
  - *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: BTSTK_GATT_22009
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to an included descriptor
  steps: |
    1. DUT2 create preset service 0xA000
    2. DUT2 create preset service 0xA001
    3. DUT1 connect to DUT2
    4. DUT1 do discover
    5. GATT client write to short descriptor
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
    5. succeed
  initial condition: BLE_INIT2
  cmd set:
  - ""
  - - "SSC SSC2 gatts -S -z load -p 0xA1"
    - ["R SSC2 C +GATTS:StartService,OK,A001"]
  - - "SSC SSC1 bleconn -C -p 0x10 -a <dut2_bt_mac>"
    - ["R SSC1 C +BLE:GattcConnect,OK,0010", "R SSC2 C +BLE:GattsConnect"]
  - - SSC SSC1 gattc -F -r <dut2_bt_mac>
    - ['R SSC1 C +GATTC:OK']
  - *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: BTSTK_GATT_22010
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write with response to auto reply short char with response created by table
  allow fail: 1/2
  steps: |
    1. DUT1 do service discovery
    2. GATT client write with response to auto reply short char with response created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C302", "R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
- ID: BTSTK_GATT_22011
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write without response to auto reply short char without response created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write without response to auto reply short char without response created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC303 -p 0x10 -v 0x01 -w 1"
    - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C303"
      - "P SSC2 C +GATTS:Write,OK,A002,C303"
      - "P SSC1 C +GATTC:Write,OK,0010,A002,C303"
- ID: BTSTK_GATT_22012
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do execute to auto reply char created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do execute to auto reply char created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_22013
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do cancel to auto reply char created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do cancel to auto reply char created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 256 -e 0"
    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_22014
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to auto reply short descriptor created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to auto reply short descriptor created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC300 -d 0x2901 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C300,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C300,2901"]
- ID: BTSTK_GATT_22015
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to auto reply long descriptor created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to auto reply long descriptor created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
- ID: BTSTK_GATT_22016
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to auto reply long descriptor created by table and cancel
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to auto reply long descriptor created by table and cancel
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC301 -d 0x2901 -p 0x10 -l 256 -e 0"
    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C301,2901"]
- ID: BTSTK_GATT_22017
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write with response to app reply short char with response created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write with response to app reply short char with response created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC312 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C312", "R SSC1 C +GATTC:Write,OK,0010,A002,C312"]
- ID: BTSTK_GATT_22018
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write without response to app reply short char without response created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write without response to app reply short char without response created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01 -w 1"
    - - "P SSC1 C +GATTC:WriteOnce,0010,A002,C313"
      - "P SSC2 C +GATTS:Write,OK,A002,C313"
      - "P SSC1 C +GATTC:Write,OK,0010,A002,C313"
- ID: BTSTK_GATT_22019
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do execute to app reply char created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do execute to app reply char created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
- ID: BTSTK_GATT_22020
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client prepare write and do cancel to app reply char created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client prepare write and do cancel to app reply char created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC314 -p 0x10 -l 256 -e 0"
    - ["P SSC1 C +GATTC:Write,OK,0010,A002,C314"]
- ID: BTSTK_GATT_22021
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to app reply short descriptor created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to app reply short descriptor created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC310 -d 0x2901 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C310,2901", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C310,2901"]
- ID: BTSTK_GATT_22022
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to app reply long descriptor created by table
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to app reply long descriptor created by table
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256"
    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
- ID: BTSTK_GATT_22023
  <<: *GATT_CASE
  test point 2: BLE GATT client write char and descriptor
  summary: GATT client write to app reply long descriptor created by table and cancel
  steps: |
    1. DUT1 do service discovery
    2. GATT client write to app reply long descriptor created by table and cancel
  expected result: |
    1. succeed
    2. write succeed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC311 -d 0x2901 -p 0x10 -l 256 -e 0"
    - ["P SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C311,2901"]
- ID: BTSTK_GATT_23001
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client register/unregister notify
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on notification char
    3. DUT1 register notify on indication char
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  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: BTSTK_GATT_23002
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive notify
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on notification char and write to CCC
    3. DUT2 do notify
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv notify
  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 SSC1 C +GATTC:Notification,0010,A000,C107,1"]
- ID: BTSTK_GATT_23003
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive indication
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on inidcation char and write to CCC
    3. DUT2 do indication
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv indication
  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 SSC1 C +GATTC:Indication,0010,A000,C108,1"]
- ID: BTSTK_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
  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"
    - ["P SSC1 C +GATTC:Notification,0010,A000,C107,1"]
  - - "SSC SSC2 gatts -I -c 0xC108 -p 0xA0 -v 0x01"
    - ["P SSC1 C +GATTC:Indication,0010,A000,C108,1"]
- ID: BTSTK_GATT_23005
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive notify on auto reply notify char created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on auto reply notification char and write to CCC
    3. DUT2 do notify
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv notify
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC305 -d 0x2902 -p 0x10 -v 0x0100"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C305,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C305,2902"]
  - - "SSC SSC2 gatts -N -c 0xC305 -p 0xA2 -v 0x01"
    - ["R SSC1 C +GATTC:Notification,0010,A002,C305,1"]
- ID: BTSTK_GATT_23006
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive indication on auto reply indication char created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on auto reply inidcation char and write to CCC
    3. DUT2 do indication
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv indication
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC306 -d 0x2902 -p 0x10 -v 0x0002"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C306,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C306,2902"]
  - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
    - ["R SSC1 C +GATTC:Indication,0010,A002,C306,1"]
- ID: BTSTK_GATT_23007
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client can't receive notification/indication without write to CCC
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on notify and inidcation char
    3. DUT2 do notify and indication
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - "SSC SSC2 gatts -N -c 0xC305 -p 0xA2 -v 0x01"
    - ["P SSC1 C +GATTC:Notification,0010,A002,C305,1"]
  - - "SSC SSC2 gatts -I -c 0xC306 -p 0xA2 -v 0x01"
    - ["P SSC1 C +GATTC:Indication,0010,A002,C306,1"]
- ID: BTSTK_GATT_23008
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive notify on app reply notify char created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on app reply notification char and write to CCC
    3. DUT2 do notify
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv notify
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC315 -d 0x2902 -p 0x10 -v 0x0100"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C315,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C315,2902"]
  - - "SSC SSC2 gatts -N -c 0xC315 -p 0xA2 -v 0x01"
    - ["R SSC1 C +GATTC:Notification,0010,A002,C315,1"]
- ID: BTSTK_GATT_23009
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client receive indication on app reply indication char created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on app reply inidcation char and write to CCC
    3. DUT2 do indication
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 recv indication
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C316"]
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC316 -d 0x2902 -p 0x10 -v 0x0002"
    - ["R SSC1 C +GATTC:WriteOnce,0010,A002,C316,2902", "R SSC1 C +GATTC:WriteDescriptor,OK,0010,A002,C316,2902"]
  - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
    - ["R SSC1 C +GATTC:Indication,0010,A002,C316,1"]
- ID: BTSTK_GATT_23010
  <<: *GATT_CASE
  test point 2: BLE GATT client receive notify and indication
  summary: GATT client can't receive notification/indication without write to CCC
  steps: |
    1. DUT1 do service discovery
    2. DUT1 register notify on notify and inidcation char
    3. DUT2 do notify and indication
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 can recv notify and indication (this is aganist Spec, but a reasonable behavior in bluedroid)
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC315 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C315"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC316 -p 0x10 -r <dut2_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C316"]
  - - "SSC SSC2 gatts -N -c 0xC315 -p 0xA2 -v 0x01"
    - ["P SSC1 C +GATTC:Notification,0010,A002,C315,1"]
  - - "SSC SSC2 gatts -I -c 0xC316 -p 0xA2 -v 0x01"
    - ["P SSC1 C +GATTC:Indication,0010,A002,C316,1"]
- ID: BTSTK_GATT_24001
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid read
  summary: GATT client read to a char without read property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 read to a char without read property
  expected result: |
    1. succeed
    2. failed
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA000 -c 0xC103 -p 0x10"
    - ["P SSC1 C +GATTC:Read,ERROR"]
- ID: BTSTK_GATT_24002
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid read
  summary: GATT client read to a descriptor without read property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 read to a descriptor without read property
  expected result: |
    1. succeed
    2. failed
  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: BTSTK_GATT_24003
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid read
  summary: GATT client read to a char without read property created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 read to auto reply char without read property create by table
    3. DUT1 read to app reply char without read property create by table
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC302 -p 0x10"
    - ["P SSC1 C +GATTC:Read,ERROR"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC312 -p 0x10"
    - ["P SSC1 C +GATTC:Read,ERROR"]
- ID: BTSTK_GATT_24004
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid read
  summary: GATT client read to a descriptor without read property created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 read to auto reply descriptor without read property created by table
    3. DUT1 read to app reply descriptor without read property created by table
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC303 -d 0x2901 -p 0x10"
    - ["P SSC1 C +GATTC:Read,ERROR"]
  - - "SSC SSC1 gattc -R -z descriptor -s 0xA002 -c 0xC313 -d 0x2901 -p 0x10"
    - ["P SSC1 C +GATTC:Read,ERROR"]
- ID: BTSTK_GATT_25001
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write with response to a char without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write with response to a char without write property
  expected result: |
    1. succeed
    2. failed
  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: BTSTK_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
  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: BTSTK_GATT_25003
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write to a descriptor without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write to a descriptor without write property
  expected result: |
    1. succeed
    2. failed
  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: BTSTK_GATT_25004
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client prepare write to a char without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 prepare write to a char without write property
  expected result: |
    1. succeed
    2. failed
  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: BTSTK_GATT_25005
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client prepare write to a descriptor without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 prepare write to a descriptor without write property
  expected result: |
    1. succeed
    2. failed
  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: BTSTK_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
  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: BTSTK_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
  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 -x01 -w 1"
    - ["P SSC1 C +GATTC:WriteOnce"]
- ID: BTSTK_GATT_25008
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write with response to a char without write property created by table
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write with response to auto reply char without write property
    3. DUT1 write with response to manual reply char without write property
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1"
    - ["R SSC1 C +GATTC:Write,ERROR"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC310 -p 0x10 -l 1"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25009
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write without response to a char created by table without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write without response to auto reply char created by table without write property
    3. DUT1 write without response to app reply char created by table without write property
  expected result: |
    1. succeed
    2. succeed (write without response always succeed)
    3. succeed (write without response always succeed)
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
    - ["R SSC1 C +GATTC:Write,OK"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC300 -p 0x10 -l 1 -w 1"
    - ["R SSC1 C +GATTC:Write,OK"]
- ID: BTSTK_GATT_25010
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write to a descriptor created by table without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write to auto reply descriptor create by table without write property
    3. DUT1 write to app reply descriptor create by table without write property
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 1"
    - ["R SSC1 C +GATTC:Write,ERROR"]
  - - "SSC SSC1 gattc -W -z descriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 1"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25011
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client prepare write to a char created by table without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 prepare write to auto reply char created by table without write property
    3. DUT1 prepare write to app reply char created by table without write property
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC300 -p 0x10 -l 256"
    - ["R SSC1 C +GATTC:Write,ERROR"]
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC310 -p 0x10 -l 256"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25012
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client prepare write to a descriptor created by table without write property
  steps: |
    1. DUT1 do service discovery
    2. DUT1 prepare write to auto reply descriptor created by table without write property
    3. DUT1 prepare write to app reply descriptor created by table without write property
  expected result: |
    1. succeed
    2. failed
    3. failed
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC302 -d 0x2901 -p 0x10 -l 256"
    - ["R SSC1 C +GATTC:Write,ERROR"]
  - - "SSC SSC1 gattc -W -z longDescriptor -s 0xA002 -c 0xC312 -d 0x2901 -p 0x10 -l 256"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25013
  <<: *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 SSC1 C +GATTC:Write,OK,0010,A002,C303"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC313 -p 0x10 -v 0x01"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25014
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write without response to a char created by table will send response
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write without response to auto reply char created by table will send response
    3. DUT1 write without response to app reply char created by table will send response
  expected result: |
    1. succeed
    2. succeed (write without response always succeed)
    3. succeed (write without response always succeed)
  initial condition: BLE_CONN3
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
    - ["R SSC1 C +GATTC:Write,OK"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -p 0x10 -v -x01 -w 1"
    - ["R SSC1 C +GATTC:Write,OK"]
- ID: BTSTK_GATT_25015
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client use write API write to a char won't reply prepare write event
  steps: |
    1. DUT1 do service discovery
    2. DUT1 use write API write to a char reply NULL for prepare write event
  expected result: |
    1. succeed
    2. failed
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -p 0x10 -s 0xA000 -c 0xC109 -l 256"
    - ["R SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25016
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write long char value length longer than max length
  initial condition: BLE_CONN3
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write char value
  expected result: |
    1. succeed
    2. failed
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z longChar -s 0xA002 -c 0xC304 -p 0x10 -l 260"
    - ["P SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_25017
  <<: *GATT_CASE
  test point 2: BLE GATT client do invalid write
  summary: GATT client write short char value length longer than max length
  initial condition: BLE_CONN3
  steps: |
    1. DUT1 do service discovery
    2. DUT1 write char value
  expected result: |
    1. succeed
    2. failed
  cmd set:
  - ""
  - *primary_service_discovery
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 2"
    - ["P SSC1 C +GATTC:Write,ERROR"]
- ID: BTSTK_GATT_26001
  <<: *GATT_CASE
  test point 2: BLE GATT client set mtu
  summary: GATT client config different mtu size
  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 -p 0x10"
    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,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: BTSTK_GATT_26002
  <<: *GATT_CASE
  test point 2: BLE GATT server set mtu
  summary: GATT server config different mtu size
  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 -p 0x10"
    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,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: BTSTK_GATT_26003
  <<: *GATT_CASE
  test point 2: BLE GATT config mtu
  summary: GATT client and server config different mtu size
  steps: |
    1. client set mtu size 365 and server set mtu size 261
    2. client config mtu
  expected result:
    1. succeed
    2. succeed
  cmd set:
  - ""
  - - "SSC SSC1 bleconn -D -p 0x10"
    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,OK"]
  - - "SSC SSC1 gattc -S -m 365"
    - ["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 +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
  - - "SSC SSC1 gattc -C"
    - ["R SSC1 C +GATTC:OK","P SSC[1-2] C ConfigMTU,OK,261"]
- ID: BTSTK_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 +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,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 +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
  - - "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: BTSTK_GATT_26005
  <<: *GATT_CASE
  test point 2: BLE GATT client config mtu
  summary: GATT read write on mtu size 517
  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  -p 0x10"
    - ["P SSC1 C +BLE:GattcDisconnect,OK", "P SSC2 C +BLE:GattsDisconnect,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 +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
  - - "SSC SSC1 gattc -C"
    - ["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: BTSTK_GATT_30001
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection service discovery test
  summary: do primary service discovery when DUT1 role is master, connected with 4 slaves
  steps: |
    1. DUT1 do primary service discovery on DUT[2-5]
  expected result: |
    1. succeed
  initial condition: BLE_CONN5
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 4 1 "[2,3,4,5]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
- ID: BTSTK_GATT_30002
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection service discovery test
  summary: do primary service discovery when DUT1 is slave, connected by 4 masters
  steps: |
    1. DUT[2-5] do primary service discovery
  expected result: |
    1. succeed
  initial condition: BLE_CONN6
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Discover,OK"]
- ID: BTSTK_GATT_30003
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection service discovery test
  summary: do primary service discovery when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
  steps: |
    1. DUT1 do primary service discovery for DUT[2-3]
    2. DUT[4-5] do primary service discovery for DUT1
  expected result: |
    1. succeed
    2. succeed
  initial condition: BLE_CONN7
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 2 1 "[2,3]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Discover,OK"]
- ID: BTSTK_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
  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 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: BTSTK_GATT_31001
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection read test
  summary: do read when DUT1 role is master, connected with 4 slaves
  steps: |
    1. do primary service discovery
    2. do read long and read short
    3. loop step 1-2 for all DUTs
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_CONN5
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 4 3 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_GATT_31002
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection read test
  summary: do read when DUT1 is slave, connected by 4 masters
  steps: |
    1. do primary service discovery on DUT[2-5]
  expected result: |
    1. succeed
  initial condition: BLE_CONN6
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[2-5] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:ReadOnce,0010,A002,C300,1"]
  - - "SSC SSC[2-5] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_GATT_31003
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection read test
  summary: do read when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
  steps: |
    1. DUT1 do primary service discovery for DUT[2-3]
    2. DUT1 do read on DUT[2-3]
    3. DUT[4-5] do primary service discovery for DUT1
    4. DUT[4-5] do read on DUT1
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
  initial condition: BLE_CONN7
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 2 3 "[2,3]" "[2,3]" "[2,3]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C300,1"]
  - - "SSC SSC1 gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:ReadOnce,0010,A002,C301,256"]
  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[4-5] gattc -R -z char -s 0xA002 -c 0xC300 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:ReadOnce,0010,A002,C300,1"]
  - - "SSC SSC[4-5] gattc -R -z char -s 0xA002 -c 0xC301 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:ReadOnce,0010,A002,C301,256"]
- ID: BTSTK_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
  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 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: BTSTK_GATT_32001
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection write test
  summary: do write when DUT1 role is master, connected with 4 slaves
  steps: |
    1. do primary service discovery
    2. do write long and write short
    3. loop step 1-2 for all DUTs
  expected result: |
    1. succeed
    2. succeed
    3. succeed
  initial condition: BLE_CONN5
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 4 3 "[2,3,4,5]" "[2,3,4,5]" "[2,3,4,5]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_32002
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection write test
  summary: do read when DUT1 is slave, connected by 4 masters
  steps: |
    1. do primary service discovery on DUT[2-5]
  expected result: |
    1. succeed
  initial condition: BLE_CONN6
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[2-5] gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Write,OK,0010,A002,C302"]
  - - "SSC SSC[2-5] gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_32003
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection write test
  summary: do write when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
  steps: |
    1. DUT1 do primary service discovery for DUT[2-3]
    2. DUT1 do write on DUT[2-3]
    3. DUT[4-5] do primary service discovery for DUT1
    4. DUT[4-5] do write on DUT1
  expected result: |
    1. succeed
    2. succeed
    3. succeed
    4. succeed
  initial condition: BLE_CONN7
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 2 3 "[2,3]" "[2,3]" "[2,3]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C302"]
  - - "SSC SSC1 gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Write,OK,0010,A002,C304"]
  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[4-5] gattc -W -z char -s 0xA002 -c 0xC302 -l 1 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Write,OK,0010,A002,C302"]
  - - "SSC SSC[4-5] gattc -W -z char -s 0xA002 -c 0xC304 -l 256 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Write,OK,0010,A002,C304"]
- ID: BTSTK_GATT_32004
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection write test
  summary: do read when master and slave both create GATTC and GATTS
  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 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: BTSTK_GATT_33001
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection notify test
  summary: do notify when DUT1 role is master, connected with 4 slaves
  steps: |
    1. do primary service discovery
    2. do register nofity for char
    3. do notify on DUT[2-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 receive notification on DUT[2-5]
  initial condition: BLE_CONN5
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - "SSC SSC[2-5] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut1_bt_mac>"
    - ['P SSC1 RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2-5]_bt_mac>)']
- ID: BTSTK_GATT_33002
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection notify test
  summary: do notify when DUT1 is slave, connected by 4 masters
  steps: |
    1. do primary service discovery on DUT[2-5]
    2. DUT[2-5] do register notify
    3. DUT1 do notify to DUT[2-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT[2-5] receive notification
  initial condition: BLE_CONN6
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[2-5] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
    - ['']
  - - "SSC SSC1 gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
    - ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_33003
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection notify test
  summary: do notify when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
  steps: |
    1. DUT1 do primary service discovery for DUT[2-3]
    2. DUT1 register notify
    3. DUT[2-3] send notify to DUT1
    4. DUT[4-5] do primary service discovery for DUT1
    5. DUT[4-5] register notify
    6. DUT1 send notofy to DUT[4-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 receive notify from DUT[2-3]
    4. succeed
    5. succeed
    6. DUT[4-5] receive notify
  initial condition: BLE_CONN7
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 2 2 "[2,3]" "[2,3]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - "SSC SSC[2-3] gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut1_bt_mac>"
    - ['P SSC1 RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut[2-3]_bt_mac>)']
  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[4-5] gattc -N -z register -s 0xA002 -c 0xC305 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:RegNotify,OK,0010,A002,C305"]
  - - LOOP 2 1 "[4,5]" "[4,5]"
    - ['']
  - - "SSC SSC1 gatts -N -c 0xC305 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
    - ['P SSC{%d} RE "\+GATTC:Notification,0010,A002,C305,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_33004
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection notify test
  summary: do read when master and slave both create GATTC and GATTS
  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 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: BTSTK_GATT_34001
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection indicate test
  summary: do notify when DUT1 role is master, connected with 4 slaves
  steps: |
    1. do primary service discovery
    2. do register indication for char
    3. do indicate on DUT[2-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 receive indication on DUT[2-5]
  initial condition: BLE_CONN5
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 4 2 "[2,3,4,5]" "[2,3,4,5]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - "SSC SSC[2-5] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut1_bt_mac>"
    - ['P SSC1 RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2-5]_bt_mac>)']
- ID: BTSTK_GATT_34002
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection indicate test
  summary: do notify when DUT1 is slave, connected by 4 masters
  steps: |
    1. do primary service discovery on DUT[2-5]
    2. DUT[2-5] do register indication
    3. DUT1 do indicate to DUT[2-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT[2-5] receive indication
  initial condition: BLE_CONN6
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - "SSC SSC[2-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[2-5] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[2-5] C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - LOOP 4 1 "[2,3,4,5]" "[2,3,4,5]"
    - ['']
  - - "SSC SSC1 gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
    - ['P SSC{%d} RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_34003
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection indicate test
  summary: do notify when DUT1 connect to DUT[2-3] and connected by DUT[4-5]
  steps: |
    1. DUT1 do primary service discovery for DUT[2-3]
    2. DUT1 register indication
    3. DUT[2-3] send indicate to DUT1
    4. DUT[4-5] do primary service discovery for DUT1
    5. DUT[4-5] register indication
    6. DUT1 send indicate to DUT[4-5]
  expected result: |
    1. succeed
    2. succeed
    3. DUT1 receive indication from DUT[2-3]
    4. succeed
    5. succeed
    6. DUT[4-5] receive indication
  initial condition: BLE_CONN7
  test environment: SSC_T5_1
  cmd set:
  - ""
  - - LOOP 2 2 "[2,3]" "[2,3]"
    - ""
  - - "SSC SSC1 gattc -D -z primaryService -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:Discover,OK"]
  - - "SSC SSC1 gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut{%d}_bt_mac>"
    - ["R SSC1 C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - "SSC SSC[2-3] gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut1_bt_mac>"
    - ['P SSC1 RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut[2-3]_bt_mac>)']
  - - "SSC SSC[4-5] gattc -D -z primaryService -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:Discover,OK"]
  - - "SSC SSC[4-5] gattc -N -z register -s 0xA002 -c 0xC306 -p 0x10 -r <dut1_bt_mac>"
    - ["R SSC[4-5] C +GATTC:RegNotify,OK,0010,A002,C306"]
  - - LOOP 2 1 "[4,5]" "[4,5]"
    - ['']
  - - "SSC SSC1 gatts -I -c 0xC306 -l 1 -p 0xA2 -r <dut{%d}_bt_mac>"
    - ['P SSC{%d} RE "\+GATTC:Indication,0010,A002,C306,1,%%s"%%(<dut1_bt_mac>)']
- ID: BTSTK_GATT_34004
  <<: *GATT_CASE
  test point 2: BLE GATT multi connection indicate test
  summary: do read when master and slave both create GATTC and GATTS
  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 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: BTSTK_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
  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 +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
  - *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: BTSTK_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
  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 +BLE:GattcConnect,OK', 'R SSC2 C +BLE:GattsConnect']
  - *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: BTSTK_GATT_50001
  <<: *GATT_CASE
  category: Performance
  test point 1: performance + stress
  test point 2: BLE GATT performance test
  summary: GATT read char performance test
  initial condition: BLE_CONN3
  Test App: SSC_BLE_PERF
  steps: |
    1. update connection parameter
    2. do primary service discovery
    3. do read char for some time
  expected result: |
    1. succeed
    2. succeed
    3. calculate throughput
  execution time: 2
  cmd set:
  - "BLEStress/BLEGATTPerformance"
  - - test_time = 120
    - ""
  - - mtu = 512
    - ""
  - - gatt_op = "read"
    - ""
  - - op_char = "0xC301"
    - ""
- ID: BTSTK_GATT_50002
  <<: *GATT_CASE
  category: Performance
  test point 1: performance + stress
  test point 2: BLE GATT performance test
  summary: GATT write char performance test
  initial condition: BLE_CONN3
  Test App: SSC_BLE_PERF
  steps: |
    1. update connection parameter
    2. do primary service discovery
    3. do write char for some time
  expected result: |
    1. succeed
    2. succeed
    3. calculate throughput
  execution time: 2
  cmd set:
  - "BLEStress/BLEGATTPerformance"
  - - test_time = 120
    - ""
  - - mtu = 512
    - ""
  - - gatt_op = "write"
    - ""
  - - op_char = "0xC304"
    - ""
  - - op_len = 490
    - ""
- ID: BTSTK_GATT_50003
  <<: *GATT_CASE
  category: Performance
  test point 1: performance + stress
  test point 2: BLE GATT performance test
  summary: GATT notify performance test
  initial condition: BLE_CONN3
  Test App: SSC_BLE_PERF
  steps: |
    1. update connection parameter
    2. do primary service discovery
    3. do notify for some time
  expected result: |
    1. succeed
    2. succeed
    3. calculate throughput
  execution time: 2
  cmd set:
  - "BLEStress/BLEGATTPerformance"
  - - test_time = 120
    - ""
  - - mtu = 512
    - ""
  - - gatt_op = "notify"
    - ""
  - - op_char = "0xC305"
    - ""
  - - op_len = 256
    - ""
- ID: BTSTK_GATT_50004
  <<: *GATT_CASE
  category: Performance
  test point 1: performance + stress
  test point 2: BLE GATT performance test
  summary: GATT indicate performance test
  initial condition: BLE_CONN3
  Test App: SSC_BLE_PERF
  steps: |
    1. update connection parameter
    2. do primary service discovery
    3. do notify for some time
  expected result: |
    1. succeed
    2. succeed
    3. calculate throughput
  execution time: 2
  cmd set:
  - "BLEStress/BLEGATTPerformance"
  - - test_time = 120
    - ""
  - - mtu = 512
    - ""
  - - gatt_op = "indicate"
    - ""
  - - op_char = "0xC306"
    - ""
  - - op_len = 256
    - ""
