8. File-Transfer Test Cases
8.1 BLE/EP/API/FILETRANSFER/BV/01: Initialize the feature and start receiving a file.
8.1.1 Test Purpose
DUT is able to initialize the feature and be ready for the coming request of data transfer. DUT is able to finish a transfer.
8.1.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.1.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: transferring all blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.1.4 Expected Results
8.1.4.1 Pass Verdict
The DUT should successfully complete the data transfer with the Upper Tester and send a task complete notify to AWS IoT side.
8.2 BLE/EP/API/FILETRANSFER/BV/02: Cancel ongoing transfer.
8.2.1 Test Purpose
DUT is able to cancel the ongoing data transfer with a given file_id.
8.2.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.2.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: transferring data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over Lower_Tester_(Sid_API_User),Upper_Tester: CANCEL Path 1: Cancel while transferring
Lower_Tester_(Sid_API_User)->>DUT: sbdt cancel file_id reason_id
DUT->>Upper_Tester: TRANSFER_CANCEL_NOTIFY
DUT->>Lower_Tester_(Sid_API_User): on_cancel_request()
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
Note over DUT,Upper_Tester: end of CANCEL Path 1
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Note over Lower_Tester_(Sid_API_User),Upper_Tester: CANCEL Path 2: Cancel after just finished transfer
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Lower_Tester_(Sid_API_User)->>DUT: sbdt cancel file_id reason_id
DUT->>Upper_Tester: TRANSFER_CANCEL_NOTIFY
DUT->>Lower_Tester_(Sid_API_User): on_cancel_request()
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
Note over DUT,Upper_Tester: end of CANCEL Path 2
8.2.4 Expected Results
8.2.4.1 Pass Verdict
The DUT should successfully cancel the ongoing transfer with a specific given reason. The DUT should report the reason to the Upper Tester.
8.3 BLE/EP/API/FILETRANSFER/BV/03: Print the progress of the transfer and current file offset.
8.3.1 Test Purpose
DUT is able to output the progress of the transfer as a percent and the current file offset.
8.3.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.3.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Lower_Tester_(Sid_API_User)->>DUT: sbdt stats file_id
DUT->>Lower_Tester_(Sid_API_User): Print progress of transfer as percentage and current file offset
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.3.4 Expected Results
8.3.4.1 Pass Verdict
The DUT should successfully print out the progress of the transfer and current file offset.
8.4 BLE/EP/API/FILETRANSFER/BV/04: Print various parameters of the transfer.
8.4.1 Test Purpose
DUT is able to output the various parameters of the transfer.
8.4.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.4.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Lower_Tester_(Sid_API_User)->>DUT: sbdt params file_id
DUT->>Lower_Tester_(Sid_API_User): Print parameters of the ongoing transfer
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.4.4 Expected Results
8.4.4.1 Pass Verdict
The DUT should successfully print out various parameters relevant to file transfer.
8.5 BLE/EP/API/FILETRANSFER/RECOVERY/BI/01: Recover transfer after EP powered off and back on.
8.5.1 Test Purpose
DUT is able to recover the transfer after EP power off for a valid time slot and back on.
8.5.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.5.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
DUT->>DUT: EP Powered off for a valid time slot
DUT->>DUT: EP back on
Lower_Tester_(Sid_API_User)->>DUT: sid_init and sid_start
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.5.4 Expected Results
8.5.4.1 Pass Verdict
The DUT should successfully recover the transfer after EP power off for a valid time slot and back on.
8.6 BLE/EP/API/FILETRANSFER/RECOVERY/BI/02: Recover transfer after EP was out of range from GW.
8.6.1 Test Purpose
DUT is able to recover the transfer after out of range from GW for a valid time slot and back on.
8.6.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.6.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
DUT->>DUT: EP out of range from GW for a valid time slot
DUT->>DUT: EP back on
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.6.4 Expected Results
8.6.4.1 Pass Verdict
The DUT should successfully recover the transfer after out of range from GW for a valid time slot and back on.
8.7 BLE/EP/API/FILETRANSFER/RECOVERY/BI/03: Recover transfer after GW that was using to send packets switched to another GW.
8.7.1 Test Purpose
DUT is able to recover the transfer after GW that is using to send packets switched to another GW.
8.7.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.7.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
DUT->>DUT: EP switch the GW that is transmitting packets to another GW
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.7.4 Expected Results
8.7.4.1 Pass Verdict
The DUT should successfully recover the transfer after GW that is using to send packets switched to another GW.
8.8 BLE/EP/API/FILETRANSFER/RECOVERY/BI/04: Recover transfer after GW that was using to send packets being opt-out.
8.8.1 Test Purpose
DUT is able to recover the transfer after GW that was using to send packets being opt-out.
8.8.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.8.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
DUT->>DUT: GW that using to transmit packets is being opt-out
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.8.4 Expected Results
8.8.4.1 Pass Verdict
The DUT should successfully recover the transfer after GW that was using to send packets being opt-out.
8.9 BLE/EP/API/FILETRANSFER/RECOVERY/BI/05: Recover transfer after GW that was using to send packets powered off for a while and back on.
8.9.1 Test Purpose
DUT is able to recover the transfer after GW powered off for a valid time slot and back on.
8.9.2 Initial Conditions
-
The Sidewalk stack (BLE) is initialized and started on the DUT.
-
DUT is registered with Amazon Sidewalk network.
-
DUT is time-synced with Amazon Sidewalk network.
-
Lower Tester operates as a SID API user.
-
Upper Tester is ready on AWS IoT side.
8.9.3 Test Procedure
sequenceDiagram
participant Lower_Tester_(Sid_API_User) as Lower Tester (SID API User)
participant DUT as DUT
participant Upper_Tester as Upper Tester
Note over Lower_Tester_(Sid_API_User),Upper_Tester: DUT Status: Registered
Lower_Tester_(Sid_API_User)->>DUT: sbdt init
Upper_Tester->>DUT: TRANSFER_APPLICATION_REQUEST
DUT->>Lower_Tester_(Sid_API_User): on_transfer_request()
Lower_Tester_(Sid_API_User)->>DUT: scratch buffer, accept transfer request
DUT->>Upper_Tester: TRANSFER_APPLICATION_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST
DUT->>Upper_Tester: TRANSFER_REQUEST_RESPONSE
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: before_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
DUT->>DUT: GW that using to transmit packets powered off for a valid time slot
DUT->>DUT: GW back on
Note over Lower_Tester_(Sid_API_User),Upper_Tester: loop: after_interrupt_blocks
Note over DUT,Upper_Tester: loop: data_chunks
Upper_Tester->>DUT: TRANSFER_BLOCK_DATA
Note over DUT,Upper_Tester: end of loop
DUT->>Lower_Tester_(Sid_API_User): on_data_received()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_release_buffer()
DUT->>Upper_Tester: TRANSFER_FILE_DATA_RESPONSE
Note over Lower_Tester_(Sid_API_User),Upper_Tester: end of loop
Upper_Tester->>DUT: TRANSFER_REQUEST_FINALIZE
DUT->>Lower_Tester_(Sid_API_User): on_finalize_request()
Lower_Tester_(Sid_API_User)->>DUT: sid_bulk_data_transfer_finalize()
DUT->>Upper_Tester: TRANSFER_REQUEST_FINALIZE_RESPONSE
Upper_Tester->>DUT: TRANSFER_FILE_EXIT
DUT->>Lower_Tester_(Sid_API_User): on_release_scratch()
8.9.4 Expected Results
8.9.4.1 Pass Verdict
The DUT should successfully recover transfer after GW that was using to send packets powered off for a valid time slot and back on.