/****************************************************************************** * Copyright (c) 2000-2015 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 ******************************************************************************/ module xmlTest_Functions_string { import from www_XmlTest_org_string_e all; import from www_XmlTest_org_string_withEnum_e all; import from www_XmlTest_org_string_withWhitespace_e all; import from xmlTest_Shell all; //============================================================================== // External functions //============================================================================== //***Name*** external function f_enc_NameA(in NameA pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } //0: OK //1: NOK external function f_dec_NameA(in octetstring stream, out NameA pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***NameB*** external function f_enc_NameB(in NameB pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_NameB(in octetstring stream, out NameB pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***Non_empty_string*** external function f_enc_Non_empty_string(in Non_empty_string pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_Non_empty_string(in octetstring stream, out Non_empty_string pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***Type*** external function f_enc_Type(in Type pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_Type(in octetstring stream, out Type pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***StringWhiteSpaceP*** external function f_enc_StringWhiteSpaceP(in StringWhiteSpaceP pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_StringWhiteSpaceP(in octetstring stream, out StringWhiteSpaceP pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***StringWhiteSpaceR*** external function f_enc_StringWhiteSpaceR(in StringWhiteSpaceR pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_StringWhiteSpaceR(in octetstring stream, out StringWhiteSpaceR pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***StringWhiteSpaceC*** external function f_enc_StringWhiteSpaceC(in StringWhiteSpaceC pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_StringWhiteSpaceC(in octetstring stream, out StringWhiteSpaceC pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //***StringEnum*** external function f_enc_StringEnum(in StringEnum pdu, out octetstring stream) with { extension "prototype(fast) encode(XER:XER_EXTENDED)" } external function f_dec_StringEnum(in octetstring stream, out StringEnum pdu) return integer with { extension "prototype(backtrack) decode(XER:XER_EXTENDED)" } //============================================================================== // Encoding decoding test //============================================================================== //========================================== // f_encDecTest_Name //========================================== function f_encDecTest_NameA() runs on Shell_CT { var NameA vl_pdu:= "BarackObama" ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("BarackObama\n\n"); var octetstring vl_stream:=''O; f_enc_NameA(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking encoded value (xml) against the xsd file by xmllint ==="); var boolean vl_success:=false; f_shell_validateXml(vl_stream,"XmlTest_string.xsd", c_shell_successWithWarning, vl_success); if(vl_success) { setverdict(pass); }else{ log("Xml validation against xsd failed"); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_NameA(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_NameA(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_NameB //========================================== function f_encDecTest_NameB() runs on Shell_CT { var NameB vl_pdu:= "Barack Obama" ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("Barack Obama\n\n"); var octetstring vl_stream:=''O; f_enc_NameB(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking encoded value (xml) against the xsd file by xmllint ==="); var boolean vl_success:=false; f_shell_validateXml(vl_stream,"XmlTest_string.xsd", c_shell_successWithWarning, vl_success); if(vl_success) { setverdict(pass); }else{ log("Xml validation against xsd failed"); setverdict(fail); } //log("===Just for fun: expected versus xsd===="); f_shell_validateXml(vl_expectedEncodedPdu,"XmlTest_string.xsd", c_shell_successWithoutWarningAndError, vl_success); if(vl_success) { setverdict(pass); }else{ log("Xml validation against xsd failed"); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_NameB(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_NameB(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_Non_empty_string //========================================== function f_encDecTest_Non_empty_string() { var Non_empty_string vl_pdu:= "dad" ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("dad\n\n"); var octetstring vl_stream:=''O; f_enc_Non_empty_string(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_Non_empty_string(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_Non_empty_string(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_Type //========================================== function f_encDecTest_Type() { var Type vl_pdu:= "bad" ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("bad\n\n"); var octetstring vl_stream:=''O; f_enc_Type(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_Type(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_Type(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_StringWhiteSpaceP //========================================== function f_encDecTest_StringWhiteSpaceP() { var StringWhiteSpaceP vl_pdu:= "This text contains spaces \ttabs and\n new lines \t \n" ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("This text contains spaces \ttabs and\n new lines \t \n\n\n"); var octetstring vl_stream:=''O; f_enc_StringWhiteSpaceP(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_StringWhiteSpaceP(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_StringWhiteSpaceP(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_StringWhiteSpaceR //========================================== function f_encDecTest_StringWhiteSpaceR() { var StringWhiteSpaceR vl_pdu:= "This text contains spaces \ttabs and\n new lines \t \n", vl_expectedPdu:= "This text contains spaces tabs and new lines " , vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("This text contains spaces \ttabs and\n new lines \t \n\n\n"); var octetstring vl_stream:=''O; f_enc_StringWhiteSpaceR(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_StringWhiteSpaceR(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_expectedPdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_expectedPdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_StringWhiteSpaceR(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_expectedPdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_expectedPdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_StringWhiteSpaceC //========================================== function f_encDecTest_StringWhiteSpaceC() { var StringWhiteSpaceC vl_pdu:= "This text contains spaces \ttabs and\n new lines \t \n", vl_expectedPdu:= "This text contains spaces tabs and new lines ", vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("This text contains spaces \ttabs and\n new lines \t \n\n\n"); var octetstring vl_stream:=''O; f_enc_StringWhiteSpaceC(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_StringWhiteSpaceC(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_StringWhiteSpaceC(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } //========================================== // f_encDecTest_StringEnum //========================================== function f_encDecTest_StringEnum() { var StringEnum vl_pdu:= hU ,vl_decodedPdu; var octetstring vl_expectedEncodedPdu:=char2oct("HU\n\n"); var octetstring vl_stream:=''O; f_enc_StringEnum(vl_pdu,vl_stream); if( not match(vl_stream,vl_expectedEncodedPdu)) { log("Expected encoded value: ",vl_expectedEncodedPdu); log("Actual encoded value: ", vl_stream); setverdict(fail); } //log("===Checking value decoded from the encoded value vs original value==="); if(f_dec_StringEnum(vl_stream, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded"); log(match(vl_pdu,vl_decodedPdu)); } } //log("===Checking value decoded from the expected value vs original value==="); if( f_dec_StringEnum(vl_expectedEncodedPdu, vl_decodedPdu)==0) { //log("The decoded pdu: ", vl_decodedPdu); if(match(vl_pdu,vl_decodedPdu)) { setverdict(pass); } else { log("Pdu could not decoded from the expected value"); log(match(vl_pdu,vl_decodedPdu)); } } } }//module