Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_01 | ||
Objective: | Handle GET blockwise transfer for large resource (early negotiation) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2–2.4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to retrieve resource /large | |
2 | Check |
Client sends a GET request. The request contains a Block2 option indicating:
|
|
3 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
Start of loop | |||
4 | Check |
Client send GET requests for further blocks indicating:
|
|
5 | Check |
Server sends 2.05 (Content) response containing Block2 option indicating:
|
|
end of loop; final slice: | |||
6 | Check |
Client send GET request for the last block indicating:
|
|
7 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
8 | Verify | Client displays the received information (no gaps, right order) | |
Notes: | Steps 4 and 5 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_02 | ||
Objective: | Handle GET blockwise transfer for large resource (late negotiation) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2–2.4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to retrieve resource /large | |
2 | Check | Client sends a GET request not containing a Block2 option | |
3 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
4 | Check |
Client switches to blockwise transfer mode and sends a GET request with a Block2 option indicating:
|
|
5 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
Start of loop | |||
6 | Check |
Client sends GET request for further blocks indicating:
|
|
7 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
end of loop; final slice: | |||
8 | Check |
Client send GET request for the last block indicating:
|
|
9 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
10 | Verify | Client displays the received information | |
Notes: | Steps 6 and 7 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_03 | ||
Objective: | Handle PUT blockwise transfer for large resource | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2, 2.3, 2.5 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to update resource /large-update on Server | |
2 | Check |
Client sends a PUT request containing Block1 option indicating:
|
|
3 | Check |
Server sends 2.04 (Changed) or 2.31 (Continue) response with a Block1 option indicating:
|
|
Start of loop | |||
4 | Check |
Client sends further requests containing Block1 option indicating:
|
|
5 | Check |
Server sends 2.04 (Changed) or 2.31 (Continue) response with a Block1 option indicating:
|
|
end of loop; final slice: | |||
6 | Check |
Client send PUT request containing the last block and indicating:
|
|
7 | Check |
Server sends 2.04 (Changed) response with a Block1 option indicating:
|
|
8 | Verify | Server indicates presence of the complete updated resource /large-update | |
Notes: | Steps 4 and 5 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_04 | ||
Objective: | Handle POST blockwise transfer for creating large resource | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2, 2.3, 2.5 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to create a new resource /large-create on Server | |
2 | Check |
Client sends a POST request containing Block1 option indicating:
|
|
3 | Check |
Server sends 2.31 (Continue) response containing Block1 option indicating:
|
|
Start of loop | |||
4 | Check |
Client sends further POST requests containing Block1 option indicating:
|
|
5 | Check |
Server sends 2.31 (Continue) response containing Block1 option indicating:
|
|
end of loop; final slice: | |||
6 | Check |
Client sends POST request containing the last block and indicating:
|
|
7 | Check |
Server sends 2.01 (Created) response containing Block1 option indicating:
|
|
8 | Verify | Client displays the response | |
9 | Verify | Server indicates presence of the complete new resource, e.g., /large-create/PS | |
verify resource creation (optional): | |||
10 | Check | Client sends GET request to new location (e.g., "/large-create/PS", i.e., using Uri-Path options simply copied from the Location-Path of step 7) | |
11 | Check | Server sends 2.05 (Content) response with representation of created resource, potentially making use of the Block2 protocol | |
12 | Verify | Client indicates the value of the newly created resource | |
Notes: | Steps 4 and 5 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_05 | ||
Objective: | Handle POST with two-way blockwise transfer | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2, 2.3, 2.5 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send a large represenation to /large-post on Server | |
2 | Check |
Client sends a POST request containing Block1 option indicating:
|
|
3 | Check |
Server sends 2.31 (Continue) response containing Block1 option indicating:
|
|
Start of loop | |||
4 | Check |
Client sends further POST requests containing Block1 option indicating:
|
|
5 | Check |
Server sends 2.31 (Continue) response containing Block1 option indicating:
|
|
end of loop; final request slice and first response slice: | |||
6 | Check |
Client sends POST request containing the last block and indicating:
|
|
7 | Check |
Server sends 2.04 (Changed) response containing Block1 option indicating:
|
|
8 | Check |
Client switches to blockwise retrieval of response and sends a POST request, with the same options except for Block1, without payload, with a Block2 option indicating:
|
|
9 | Check |
Server sends 2.04 (Changed) response with a Block2 option indicating:
|
|
Start of retrieval loop | |||
10 | Check |
Client sends a similar POST request for retrieving a further block indicating:
|
|
11 | Check |
Server sends 2.04 (Changed) response with a Block2 option indicating:
|
|
end of retrieval loop; final slice: | |||
12 | Check |
Client sends another POST request (which will retrieve the last block) indicating:
|
|
13 | Check |
Server sends 2.04 (Changed) response with a Block2 option indicating:
|
|
14 | Verify | Client displays the response | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_BLOCK_06 | ||
Objective: | Handle GET blockwise transfer for large resource (early negotiation, 16 byte block size) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [BLOCK] 2.2–2.4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to retrieve resource /large | |
2 | Check |
Client sends a GET request. The request contains a Block2 option indicating:
|
|
3 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
Start of loop | |||
4 | Check |
Client send GET requests for further blocks indicating:
|
|
5 | Check |
Server sends 2.05 (Content) response containing Block2 option indicating:
|
|
end of loop; final slice: | |||
6 | Check |
Client send GET request for the last block indicating:
|
|
7 | Check |
Server sends 2.05 (Content) response with a Block2 option indicating:
|
|
8 | Verify | Client displays the received information (no gaps, right order) | |
Notes: | Steps 4 and 5 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_01 | ||
Objective: | Handle resource observation with CON messages | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 1.2, 3, 4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
After some time elapses, repeatedly: | |||
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client sends an ACK | |
6 | Verify | Client displays the received information | |
Notes: | Steps 4-6 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_02 | ||
Objective: | Handle resource observation with NON messages | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 1.2, 3, 4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a non-confirmable GET request with observe option for resource /obs-non | |
2 | Check |
The request sent by client contains:
|
|
After some time elapses, repeatedly: | |||
3 | Check |
Server sends a notification containing:
|
|
4 | Verify | Client displays the received information | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_04 | ||
Objective: | Client detection of deregistration (Max-Age) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 3.3.1 §4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Verify | Client displays the received information | |
6 | Check | Client sends an ACK | |
forcibly remove the observation relationship from the server | |||
7 | Stimulus | Server is rebooted or in another way caused to lose its observation state | |
8 | Check | Server does not send notifications | |
9 | Verify | Client does not display updated information | |
Client re-registers | |||
10 | Verify | After a while (see note) the client internally decides to send another GET request to the server with observe option for resource /obs, using Token t again to confirm the registration | |
11 | Verify |
Client sends a GET request to the server for resource /obs:
|
|
12 | Check |
Server sends the response containing:
|
|
13 | Check |
Server sends a notification containing:
|
|
14 | Verify | Client displays the received information | |
15 | Check | Client sends an ACK | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_05 | ||
Objective: | Server detection of deregistration (client OFF) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 4.5 item 2 (see also ticket #350) | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client displays the received information | |
6 | Check | Client sends an ACK | |
Cause a timeout | |||
7 | Stimulus | Client is switched off | |
8 | Check |
|
|
9 | Verify | Server can keep retransmitting the responses for a while, but stops transmitting notifications after a final timeout | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_06 | ||
Objective: | Server detection of deregistration (explicit RST) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 4.2 item 2 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client displays the received information | |
6 | Check | Client sends an ACK | |
Cause an RST | |||
7 | Stimulus | Client is rebooted | |
8 | Check | Server is still sending notifications for the request in step 2 as in step 4 | |
9 | Verify | Client discards response and does not display information | |
10 | Check | Client sends RST to Server | |
11 | Verify | Server does not send further response | |
12 | Verify | Client does not display further received information | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_07 | ||
Objective: | Server cleans the observers list on DELETE | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 3.2 §2 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client displays the received information | |
6 | Check | Client sends an ACK | |
7 | Stimulus | Delete the /obs resource of the server (either locally or by having another CoAP client perform a DELETE request) | |
8 | Check |
Server sends a notification containing:
|
|
9 | Verify | Server does not send further notification | |
10 | Verify | Client does not display further received information | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_08 | ||
Objective: | Server cleans the observers list when observed resource content-format changes | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 4.2 §3 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client displays the received information | |
6 | Check | Client sends an ACK | |
7 | Stimulus | Update the /obs resource of the server’s resource with a new payload having a different Content-Format (either locally or by having another CoAP client perform a DELETE request) | |
8 | Check |
Server sends notification containing:
|
|
9 | Verify | Server does not send further notifications | |
10 | Verify | Client does not display further received information | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_09 | ||
Objective: | Update of the observed resource | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 4.2 §3 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client displays the received information | |
6 | Check | Client sends an ACK | |
7 | Stimulus | Update the /obs resource of the server’s resource with a new payload having the same Content-Format (either locally or by having another CoAP client perform a PUT request) | |
8 | Check |
Server notifications contains:
|
|
9 | Verify | Client displays the new value of /obs sent in step 8 | |
10 | Check | Client sends an ACK | |
Notes: |
|
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_10 | ||
Objective: | GET does not cancel resource observation | ||
Configuration: | CoAP_CFG_BASIC | ||
References: | [OBSERVE] 1.2, 3, 4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
After some time elapses, repeatedly: | |||
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client sends an ACK | |
6 | Verify | Client displays the received information | |
Perform an unrelated GET | |||
7 | Stimulus | Client is requested to send to the server a confirmable GET request *without* observe option for resource /obs | |
8 | Check |
The request sent by client contains:
|
|
9 | Check |
Server sends the response containing:
|
|
After some time elapses, the notifications still arrive: | |||
10 | Check |
Server sends a notification containing:
|
|
11 | Check | Client sends an ACK | |
12 | Verify | Client displays the received information | |
Notes: | Steps 4-6 and 10-12 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_11 | ||
Objective: | Handle resource observation with CON messages (lossy case) | ||
Configuration: | CoAP_CFG_LOSSY | ||
References: | [OBSERVE] 1.2, 3, 4 | ||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
After some time elapses, repeatedly: | |||
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client sends an ACK | |
6 | Verify | Client displays the received information | |
7 | Check | Check that, even if the delivery of notifications takes some time due to retransmissions, there are never multiple notifications active at one time. | |
Notes: | Steps 4-6 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_12 | ||
Objective: | GET with Observe=1 does cancel resource observation | ||
Configuration: | CoAP_CFG_BASIC | ||
References: |
|
||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
After some time elapses, repeatedly: | |||
4 | Check |
Server sends a notification containing:
|
|
5 | Check | Client sends an ACK | |
6 | Verify | Client displays the received information | |
Perform canceling GET | |||
7 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option = 1 and token = 1 for resource /obs | |
8 | Check |
The request sent by client contains:
|
|
9 | Check |
Server sends the response containing:
|
|
After some time elapses, no further notifications arrive. | |||
10 | Verify | Server does not send further notifications | |
11 | Verify | Client does not display further received information | |
Notes: | Steps 4-6 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_13 | ||
Objective: | Handle observation of large resources (with Block2) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: |
|
||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs-large | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check | Client obtains the rest of the resource representation (cf. TD_COAP_BLOCK_02) | |
After some time elapses, repeatedly: | |||
5 | Check |
Server sends a notification containing:
|
|
6 | Check | Client sends an ACK | |
7 | Check | Client obtains the rest of the resource representation (cf. TD_COAP_BLOCK_02) | |
8 | Verify | Client displays the received information | |
Notes: | Steps 5-8 are in a loop. |
Interoperability Test Description | |||
---|---|---|---|
Identifier: | TD_COAP_OBS_14 | ||
Objective: | Handle observation of variable size large resources (with Block2) | ||
Configuration: | CoAP_CFG_BASIC | ||
References: |
|
||
Pre-test conditions: |
|
||
Test Sequence: | Step | Type | Description |
1 | Stimulus | Client is requested to send to the server a confirmable GET request with observe option for resource /obs-pumping | |
2 | Check |
The request sent by client contains:
|
|
3 | Check |
Server sends the response containing:
|
|
4 | Check | If there was a Block2 option, the client obtains the rest of the resource representation (cf. TD_COAP_BLOCK_02) | |
After some time elapses, repeatedly: | |||
5 | Check |
Server sends a notification containing:
|
|
6 | Check | Client sends an ACK | |
7 | Check | If there was a Block2 option, the client obtains the rest of the resource representation (cf. TD_COAP_BLOCK_02) | |
8 | Verify | Client displays the received information | |
Notes: |
|