blob: 2c9bf136c26a4c0bc0a583d55d781a14980693bf [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// 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
}
}
}