TestCodec_GeoNetworking.ttcn 93.2 KB
Newer Older
garciay's avatar
garciay committed
        } else {
          setverdict(fail);
        }
garciay's avatar
garciay committed
      }
      case (1) {
garciay's avatar
garciay committed
        setverdict(fail, "Decoding failed.");
garciay's avatar
garciay committed
      }
      case (2) {
garciay's avatar
garciay committed
        setverdict(fail, "Not enough bits.");
garciay's avatar
garciay committed
      }
      } // End of 'select' statement
garciay's avatar
garciay committed
    }// End of function TestDecodeGeoNetworkingReq
garciay's avatar
garciay committed
    function TestGeoNetworkingInd(
garciay's avatar
garciay committed
                                  in template (value) GeoNetworkingInd p_geoNetworkingInd,
                                  in boolean p_decode := true, 
                                  in template (omit) bitstring p_expEncMsg := omit 
                                  ) runs on TCType {
garciay's avatar
garciay committed
      var bitstring v_encMsg;
      var template (omit) TestRecord v_tr := { bs := p_expEncMsg };
      var GeoNetworkingInd v_decMsg;
      var integer v_res := 0;
    
      // Encode template
      log("Encode template ", valueof(p_geoNetworkingInd));
    v_encMsg := encvalue(p_geoNetworkingInd);
      log("Encoded message:  ", bit2oct(v_encMsg));
      // Check result
      if (not isbound(v_encMsg)) {
garciay's avatar
garciay committed
        setverdict(fail, "Encoding failed!");
        stop;
garciay's avatar
garciay committed
      }
      if (ispresent(v_tr.bs)) {
garciay's avatar
garciay committed
        if (not match(v_encMsg, p_expEncMsg)) {
          log("Expected message: ", bit2oct(valueof(p_expEncMsg)));
          setverdict(fail, "Encoding failed, not the expected result!");
          stop;
        }
garciay's avatar
garciay committed
      }
      setverdict(pass, "Encoding passed.");
    
      // Check decoding
      if (p_decode == true) {
      v_res := decvalue(v_encMsg, v_decMsg);
garciay's avatar
garciay committed
        log("Decoded message: ", v_decMsg);
        select (v_res) {
        case (0) {
          if(match(v_decMsg, p_geoNetworkingInd)) {
            setverdict(pass);
          } else {
            setverdict(fail);
          }
        }
        case (1) {
          setverdict(fail, "Decoding failed.");
        }
        case (2) {
          setverdict(fail, "Not enough bits.");
        }
        }
garciay's avatar
garciay committed
      }
            
    } // End of function TestGeoNetworkingInd
        
garciay's avatar
garciay committed
    function TestDecodeGeoNetworkingInd(
garciay's avatar
garciay committed
                                        in template GeoNetworkingInd p_geoNetworkingInd, 
                                        in template (present) octetstring p_expEncMsg
                                        ) runs on TCType {
garciay's avatar
garciay committed
      var GeoNetworkingInd v_decMsg;
      var bitstring v_encMsg := oct2bit(valueof(p_expEncMsg));
      var integer v_res := 0;
garciay's avatar
garciay committed
    v_res := decvalue(v_encMsg, v_decMsg);
      select (v_res) {
      case (0) {
garciay's avatar
garciay committed
        log("p_geoNetworkingInd: ", p_geoNetworkingInd);
        log("v_decMsg          : ", v_decMsg);
        if(match(valueof(v_decMsg), p_geoNetworkingInd)) {
          setverdict(pass);
        } else {
          setverdict(fail);
        }
garciay's avatar
garciay committed
      }
      case (1) {
garciay's avatar
garciay committed
        setverdict(fail, "Decoding failed.");
garciay's avatar
garciay committed
      }
      case (2) {
garciay's avatar
garciay committed
        setverdict(fail, "Not enough bits.");
garciay's avatar
garciay committed
      }
      } // End of 'select' statement
    } // End of function TestDecodeGeoNetworkingReq
garciay's avatar
garciay committed
  } // End of group encdec_functions 
  
  control {
    execute(tc_GeoNetReq_AnycastPacket());
    execute(tc_GeoNetReq_BroadcastPacket());
    execute(tc_GeoNetReq_UnicastPacket());
    execute(tc_GeoNetReq_BeaconPacket());
    execute(tc_GeoNetReq_LsRequestPacket());
    execute(tc_GeoNetReq_LsReplyPacket());
    execute(tc_GeoNetInd_AnycastPacket());
    execute(tc_GeoNetInd_BroadcastPacket());
    execute(tc_GeoNetInd_ShbPacket());
    execute(tc_GeoNetInd_UnicastPacket());
    execute(tc_GeoNetInd_BeaconPacket());
    /*execute(tc_GeoNet_Port());
    execute(tc_GeoNet_Port_utPort());
    execute(tc_GeoNet_acPort_getLongPositionVector_1());
    execute(tc_GeoNet_acPort_getLongPositionVector_2());
    execute(tc_GeoNet_Port_acPort_beaconing_1());
    execute(tc_GeoNet_Port_acPort_beaconing_2());
    execute(tc_GeoNet_Port_acPort_pass_beaconing_1());
    execute(tc_GeoNet_Port_acPort_pass_beaconing_2());*/
    execute(tc_GeoNet_UtGnInitialize());
    execute(tc_GeoNet_UtGnChangePosition());
    execute(tc_GeoNet_UtGnTrigger_GeoUnicast_1());
    execute(tc_GeoNet_UtGnTrigger_GeoUnicast_2());
    execute(tc_GeoNet_UtGnTrigger_GeoBroadcast_1());
    execute(tc_GeoNet_UtGnTrigger_GeoBroadcast_2());
    execute(tc_GeoNet_UtGnTrigger_GeoAnycast_1());
    execute(tc_GeoNet_UtGnTrigger_GeoAnycast_2());
    execute(tc_GeoNet_UtGnTrigger_Shb_1());
    execute(tc_GeoNet_UtGnTrigger_Shb_2());
    execute(tc_GeoNet_UtGnTrigger_Tsb_1());
    execute(tc_GeoNet_UtGnTrigger_Tsb_2());
  }
  
} // End of module TestCodec_GeoNetworking