| /////////////////////////////////////////////////////////////////////////////// |
| // |
| // Copyright (c) 2000-2017 Ericsson Telecom AB |
| // |
| // All rights reserved. This program and the accompanying materials |
| // are made available under the terms of the Eclipse Public License v1.0 |
| // which accompanies this distribution, and is available at |
| // http://www.eclipse.org/legal/epl-v10.html |
| /////////////////////////////////////////////////////////////////////////////// |
| // File: CoapTestSuite_Fw.ttcn |
| // Description: |
| // Rev: R1A |
| // Prodnr: LPA 108 661 |
| // Updated: 2017-09-01 |
| // Contact: http://ttcn.ericsson.se |
| /////////////////////////////////////////////////////////////////////////////// |
| module CoapTestSuite_Fw |
| { |
| |
| import from IoT_FT_Framework_Definitions all; |
| import from IoT_FT_Framework_Functions all; |
| import from IFW_CoAP_Peer_TestSteps all; |
| import from CoAP_Types all; |
| |
| testcase tc_example() runs on IFW_MAIN_CT |
| { |
| setverdict(pass); |
| |
| var integer client := f_IFW_addComponent(COAP_PEER, "client"); |
| var integer server := f_IFW_addComponent(COAP_PEER, "server"); |
| |
| f_IFW_CoapPeer_setRemote(client, "server"); |
| f_IFW_CoapPeer_setRemote(server, "client"); |
| |
| f_IFW_initComponents(); |
| |
| f_IFW_CoapPeer_setMessageToSend(client, valueof(t_coap)); |
| f_IFW_CoapPeer_send(client); |
| |
| f_IFW_CoapPeer_receive(server); |
| if (not f_IFW_CoapPeer_check(server, valueof(t_coap))) |
| { |
| setverdict(fail); |
| } |
| } |
| |
| testcase tc_client() runs on IFW_MAIN_CT |
| { |
| setverdict(pass); |
| |
| var integer client := f_IFW_addComponent(COAP_PEER, "client"); |
| |
| f_IFW_CoapPeer_setRemote(client, "server"); |
| |
| f_IFW_initComponents(); |
| |
| f_IFW_CoapPeer_setMessageToSend(client, valueof(t_coap)); |
| f_IFW_CoapPeer_send(client); |
| |
| f_IFW_CoapPeer_receive(client); |
| if (not f_IFW_CoapPeer_check(client, t_coap)) |
| { |
| setverdict(fail); |
| } |
| } |
| |
| template CoAP_ReqResp t_coap := |
| { |
| header := |
| { |
| version := 1, |
| msg_type := CONFIRMABLE, |
| code := METHOD_GET, |
| message_id := 0 |
| }, |
| token := ''O, |
| options := omit, |
| payload := omit |
| } |
| |
| testcase tc_block_encdec() runs on IFW_MAIN_CT |
| { |
| var template CoAP_Message t_msg; |
| |
| log("1 byte long block options"); |
| f_test_encdec(t_coap_block1(1, true, 1)); |
| f_test_encdec(t_coap_block2(2, false, 3)); |
| |
| log("2 bytes long block options"); |
| f_test_encdec(t_coap_block1(16, true, 1)); |
| f_test_encdec(t_coap_block2(17, false, 3)); |
| |
| log("3 bytes long block options"); |
| f_test_encdec(t_coap_block1(1024, true, 1)); |
| f_test_encdec(t_coap_block2(1025, false, 3)); |
| } |
| |
| function f_test_encdec(template CoAP_Message p_msg) { |
| var octetstring v_enc; |
| var CoAP_Message v_dec; |
| |
| f_CoAP_enc(valueof(p_msg), v_enc); |
| |
| log("Encoded: ", v_enc); |
| |
| f_CoAP_dec(v_enc, v_dec); |
| |
| if (not match(v_dec, p_msg)) { |
| setverdict(fail); |
| } |
| else { |
| setverdict(pass); |
| } |
| } |
| |
| template CoAP_Message t_coap_block1(integer p_num, boolean p_m, integer p_szx) := |
| { |
| msg := { |
| header := |
| { |
| version := 1, |
| msg_type := CONFIRMABLE, |
| code := METHOD_GET, |
| message_id := 0 |
| }, |
| token := ''O, |
| options := { |
| { |
| block1 := { |
| num := p_num, |
| m := p_m, |
| szx := p_szx |
| } |
| } |
| }, |
| payload := omit |
| } |
| } |
| |
| template CoAP_Message t_coap_block2(integer p_num, boolean p_m, integer p_szx) := |
| { |
| msg := { |
| header := |
| { |
| version := 1, |
| msg_type := CONFIRMABLE, |
| code := METHOD_GET, |
| message_id := 0 |
| }, |
| token := ''O, |
| options := { |
| { |
| block2 := { |
| num := p_num, |
| m := p_m, |
| szx := p_szx |
| } |
| } |
| }, |
| payload := omit |
| } |
| } |
| } |