File Transfer Test Cases
Test Case ID: BLE/EP/API/FILETRANSFER/BV/01: Initialize the feature and start receiving a file
| Field | Value |
|---|---|
| Case ID | C103619294 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack, start, and initialize SBDT:sid init 1sid startsbdt init | SBDT: [NO LOAD] dup drop: 29000000 (3)MET: SRC: 13CMD: ERR: 0Key check: SBDT initialized, no pending transfer |
| 2 | Create a FUOTA task on AWS: File: fuota_test_file_2048bytes.txt, block_size: 1024Note the task_id from response | FUOTA task created successfully Response: { "Id": "<task_id>" }Key check: task_id obtained |
| 3 | Associate EN wireless device ID with the FUOTA task: wireless_device_id: <wireless_device_id>task_id: <task_id> | Response: 2xx Key check: EN associated with FUOTA task |
| 4 | Schedule start time for the FUOTA task (at least 5 minutes from now): task_id: <task_id>start_time: <time> | Response: 2xx Key check: FUOTA task scheduled |
| 5 | Wait for BLE disconnected, establish BLE connection and send UL:sid conn_req 1sid send TEST | EVENT SID SEND STATUS: SID ERR: 0, TYPE: 2, ID: <id>, LINK: 1Key check: UL sent via BLE |
| 6 | Wait for file transfer to complete (timeout: 600s): Monitor EN log | DEC: M:15 [3:D:2]Key check: File transfer completed |
| 7 | Check file transfer task status on cloud: task_id: <task_id> | Task status: FuotaDone Wireless device status: Successful Key check: Cloud confirms transfer complete |
Test Case ID: BLE/EP/API/FILETRANSFER/BV/02: Cancel ongoing transfer
| Field | Value |
|---|---|
| Case ID | C103619295 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack, start, and initialize SBDT:sid init 1sid startsbdt init | SBDT: [NO LOAD]CMD: ERR: 0Key check: SBDT initialized |
| 2 | Create a FUOTA task on AWS: File: fuota_test_file_10240bytes.txt, block_size: 1024Note the task_id from response | FUOTA task created successfully Response: { "Id": "<task_id>" }Key check: task_id obtained |
| 3 | Associate EN wireless device ID with the FUOTA task | Response: 2xx Key check: EN associated with FUOTA task |
| 4 | Schedule start time for the FUOTA task (at least 5 minutes from now) | Response: 2xx Key check: FUOTA task scheduled |
| 5 | Wait for BLE disconnected, establish BLE connection and send UL:sid conn_req 1sid send TEST | EVENT SID SEND STATUS: SID ERR: 0, TYPE: 2, ID: <id>, LINK: 1Key check: UL sent via BLE |
| 6 | Wait for file transfer to start (blocks transferring): Monitor EN log | DEC: M:15 [3:5:1]Key check: File transfer started |
| 7 | Cancel the file transfer:sbdt cancel 0 0x00 | CMD: ERR: 0Key check: File transfer cancelled. Note: The cancel is not immediate; chunks in flight from GW or cloud will continue to arrive. Device tags them as errors and sends response [3:5:3] (by design). SDK triggers on_sbdt_error. |
| 8 | Check file transfer task status on cloud | Task status: FuotaDone Wireless device status: Successful Key check: Cloud confirms task complete |
Test Case ID: BLE/EP/API/FILETRANSFER/BV/03: Print the progress of the transfer and current file offset
| Field | Value |
|---|---|
| Case ID | C103619296 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack, start, and initialize SBDT:sid init 1sid startsbdt init | SBDT: [NO LOAD]CMD: ERR: 0Key check: SBDT initialized |
| 2 | Create a FUOTA task on AWS: File: fuota_test_file_10240bytes.txt, block_size: 1024Note the task_id from response | FUOTA task created successfully Response: { "Id": "<task_id>" }Key check: task_id obtained |
| 3 | Associate EN wireless device ID with the FUOTA task | Response: 2xx Key check: EN associated with FUOTA task |
| 4 | Schedule start time for the FUOTA task (at least 5 minutes from now) | Response: 2xx Key check: FUOTA task scheduled |
| 5 | Wait for BLE disconnected, establish BLE connection and send UL:sid conn_req 1sid send TEST | EVENT SID SEND STATUS: SID ERR: 0, TYPE: 2, ID: <id>, LINK: 1Key check: UL sent via BLE |
| 6 | Wait for file transfer to start (blocks transferring): Monitor EN log | DEC: M:15 [3:5:1]Key check: File transfer started |
| 7 | Print file transfer progress:sbdt stats 0 | FILE_OFFSET: 2048, FILE_PROGRESS: 49Key check: Progress and file offset retrieved successfully |
Test Case ID: BLE/EP/API/FILETRANSFER/BV/04: Print various parameters of the transfer
| Field | Value |
|---|---|
| Case ID | C103619297 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack, start, and initialize SBDT:sid init 1sid startsbdt init | SBDT: [NO LOAD]CMD: ERR: 0Key check: SBDT initialized |
| 2 | Create a FUOTA task on AWS: File: fuota_test_file_10240bytes.txt, block_size: 1024Note the task_id from response | FUOTA task created successfully Response: { "Id": "<task_id>" }Key check: task_id obtained |
| 3 | Associate EN wireless device ID with the FUOTA task | Response: 2xx Key check: EN associated with FUOTA task |
| 4 | Schedule start time for the FUOTA task (at least 5 minutes from now) | Response: 2xx Key check: FUOTA task scheduled |
| 5 | Wait for BLE disconnected, establish BLE connection and send UL:sid conn_req 1sid send TEST | EVENT SID SEND STATUS: SID ERR: 0, TYPE: 2, ID: <id>, LINK: 1Key check: UL sent via BLE |
| 6 | Wait for file transfer to start (blocks transferring): Monitor EN log | DEC: M:15 [3:5:1]Key check: File transfer started |
| 7 | Print file transfer parameters:sbdt params 0 | FILE_ID: 0, FILE_SIZE: 4098, BLOCK_SIZE: 1024, MIN_SCRATCH_SPACE: 2712, FILE_DESCRIPTOR_SIZE: 0, SCRATCH_BUFFER_SIZE: 6144Key check: Parameters retrieved successfully |
Test Case ID: BLE/EP/API/FILETRANSFER/RECOVERY/BI/01: Recover transfer after EP powered off and back on
| Field | Value |
|---|---|
| Case ID | C103619298 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack, start, and initialize SBDT:sid init 1sid startsbdt init | SBDT: [NO LOAD]CMD: ERR: 0Key check: SBDT initialized |
| 2 | Create a FUOTA task on AWS: File: fuota_test_file_10240bytes.txt, block_size: 1024Note the task_id from response | FUOTA task created successfully Response: { "Id": "<task_id>" }Key check: task_id obtained |
| 3 | Associate EN wireless device ID with the FUOTA task | Response: 2xx Key check: EN associated with FUOTA task |
| 4 | Schedule start time for the FUOTA task (at least 5 minutes from now) | Response: 2xx Key check: FUOTA task scheduled |
| 5 | Wait for BLE disconnected, establish BLE connection and send UL:sid conn_req 1sid send TEST | EVENT SID SEND STATUS: SID ERR: 0, TYPE: 2, ID: <id>, LINK: 1Key check: UL sent via BLE |
| 6 | Wait for file transfer to start (blocks transferring): Monitor EN log | DEC: M:15 [3:5:1]Key check: File transfer started |
| 7 | Power off EN and re-initialize:sbdt deinitsid deinitReboot EN Wait 10 seconds to simulate EN offline sid init 1sid startsbdt init | SBDT: LOAD [...]CMD: ERR: 0Key check: EN re-initialized, pending transfer detected (LOAD) |
| 8 | Wait for file transfer to complete (timeout: 600s): Monitor EN log | DEC: M:15 [3:D:2]Key check: File transfer resumed and completed |
| 9 | Check file transfer task status on cloud: task_id: <task_id> | Task status: FuotaDone Wireless device status: Successful Key check: Cloud confirms transfer complete |
Test Case ID: BLE/EP/API/FILETRANSFER/RECOVERY/BI/02: Recover transfer after EP was out of range from GW
| Field | Value |
|---|---|
| Case ID | C103619299 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack and start:sid init 1sid startsbdt init | EN is started and time synced Key check: SBDT initialized |
| 2 | Create FUOTA task, associate EN, and schedule start: Call CreateFuotaTask API Call AssociateFuotaTask API Call ScheduleFuotaTask API (Gamma 3 min, Prod 5 min later) | FUOTA task created and scheduled Key check: Task ready |
| 3 | After data blocks start sending, move EN out of GW range | Transfer interrupted Key check: EN out of range |
| 4 | After 1 minute, move EN back to GW range | File transfer recovered. Sidewalk Cloud resends remaining blocks. Device receives uncorrupted file. Expected Finalize Response: DEC: M:15 [3:8:1]ENC: M:15 [3:8:3]DEC: M:15 [3:D:2]Key check: File transfer completed successfully |
Test Case ID: BLE/EP/API/FILETRANSFER/RECOVERY/BI/03: Recover transfer after GW that was using to send packets switched to another GW
| Field | Value |
|---|---|
| Case ID | C103619300 |
| Executable by Customer | No |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- Two GWs available (GW1, GW2)
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Initialize BLE stack and start:sid init 1sid startsbdt init | EN is started and time synced Key check: SBDT initialized |
| 2 | Create FUOTA task, associate EN, and schedule start: Call CreateFuotaTask API Call AssociateFuotaTask API Call ScheduleFuotaTask API (Gamma 3 min, Prod 5 min later) | FUOTA task created and scheduled Key check: Task ready |
| 3 | After data blocks start sending, turn off GW1 and turn on GW2 | File transfer recovered via GW2. Sidewalk Cloud resends remaining blocks. Device receives uncorrupted file. Expected Finalize Response: DEC: M:15 [3:8:1]ENC: M:15 [3:8:3]DEC: M:15 [3:D:2]Key check: File transfer completed successfully |
Test Case ID: BLE/EP/API/FILETRANSFER/RECOVERY/BI/04: Recover transfer after GW that was using to send packets being opt-out
| Field | Value |
|---|---|
| Case ID | C103619301 |
| Executable by Customer | No |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- (Preconditions to be provided.)
Test Steps
No test steps available for this test case.
Test Case ID: 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
| Field | Value |
|---|---|
| Case ID | C103619302 |
| Executable by Customer | Yes |
Preconditions
- EN is registered in Sidewalk network
- EN has time synchronized
- BLE stack initialized
- File transfer in progress
- (Preconditions to be provided.)
Test Steps
| Step | Description | Expected Result |
|---|---|---|
| 1 | Wait for the device to start receiving parts of the file, then turn off GW for 5 minutes, then turn it back on | File transfer recovered. Sidewalk Cloud resends remaining blocks. Device receives uncorrupted file. Expected Finalize Response: DEC: M:15 [3:8:1]ENC: M:15 [3:8:3]DEC: M:15 [3:D:2]Key check: File transfer completed successfully |