⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testparsercategories.cxx

📁 这是国外的resip协议栈
💻 CXX
📖 第 1 页 / 共 5 页
字号:
      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpc(ParameterTypes::branch, pb, ";");      assert(bpc.hasMagicCookie());      assert(bpc.getTransactionId() == "jason.1.2.3");      Data o;      {         DataStream s(o);         bpc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "jason.1.2.3-14--" RESIP_COOKIE "");   }   {      TR _tr("Branch parameter 3");      Data txt("=z9hG4bK" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14--" RESIP_COOKIE "foobie");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert(bpcc.hasMagicCookie());      assert(bpcc.getTransactionId() == "" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14--" RESIP_COOKIE "foobie");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14--" RESIP_COOKIE "foobie");      bpcc.reset("foobie");      o.clear();      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "foobie-1--" RESIP_COOKIE "");   }   {      TR _tr("Branch parameter 4");      Data txt("=z9hG4bK" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14--" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert(bpcc.hasMagicCookie());      assert(bpcc.getTransactionId() == "3e565-ef7w-17.1.2.3");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14--" RESIP_COOKIE "");   }   {      TR _tr("Branch parameter 5 externally spiralled branch returns");      Data txt("=z9hG4bK" RESIP_COOKIE "" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14" RESIP_COOKIE "foobie-1--" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert(bpcc.hasMagicCookie());      assert(bpcc.getTransactionId() == "" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14" RESIP_COOKIE "foobie");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "" RESIP_COOKIE "3e565-ef7w-17.1.2.3-14" RESIP_COOKIE "foobie-1--" RESIP_COOKIE "");   }      {      TR _tr("Branch parameter 6 not one of ours");      Data txt("=z9hG4bK" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert(bpcc.hasMagicCookie());      assert(bpcc.getTransactionId() == "" RESIP_COOKIE "");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "");   }   {      TR _tr("Branch parameter 7 empty ours");      Data txt("=z9hG4bK" RESIP_COOKIE "-1--" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert(bpcc.hasMagicCookie());      assert(bpcc.getTransactionId() == "");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "-1--" RESIP_COOKIE "");   }   {      TR _tr("Branch parameter 8 badly formed ours");      Data txt("=z9hG4bK" RESIP_COOKIE "------" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      try      {         BranchParameter bpcc(ParameterTypes::branch, pb, ";");         assert(bpcc.hasMagicCookie());         bpcc.getTransactionId();         assert(false);      }      catch (ParseException &e)      {      }   }   {      TR _tr("Branch parameter 9");      Data txt("=z9hG4bK" RESIP_COOKIE "5b42cb698e8c6827790212ac5bdade1a-1-UEEzMjc2OA..-" RESIP_COOKIE ";rport;received=64.124.66.32");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bp(ParameterTypes::branch, pb, ";");      assert(bp.hasMagicCookie());      assert(bp.getTransactionId() == "5b42cb698e8c6827790212ac5bdade1a");      cerr << "!! " << bp.clientData() << endl;      assert(bp.clientData() == "PA32768");            bp.encode(cerr); cerr << endl;   }   {      TR _tr("Branch parameter 10; magic cookie case mismatch");      Data txt("=z9hG4bk15775865934415"); //little k      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bp(ParameterTypes::branch, pb, ";");      assert(bp.hasMagicCookie());            assert(bp.getTransactionId() == "15775865934415");      Data enc;      {         DataStream ds(enc);         bp.encode(ds);      }      cout << "!! " << enc << endl;      assert(enc == "branch=z9hG4bk15775865934415");      BranchParameter bpCopyCons(bp);      Data encCopyCons;      {         DataStream ds(encCopyCons);         bpCopyCons.encode(ds);      }      cout << "!! " << encCopyCons << endl;      assert(bp == bpCopyCons);            assert(encCopyCons == "branch=z9hG4bk15775865934415");      Data txt2("=z9hG4bk1577234fhg8df");      ParseBuffer pb2(txt2.data(), txt2.size());      BranchParameter bpAssignOp(ParameterTypes::branch, pb2, ";");            bpAssignOp = bp;            Data encAssignOp;      {         DataStream ds(encAssignOp);         bpAssignOp.encode(ds);      }      cout << "!! " << encAssignOp << endl;      assert(bp == bpAssignOp);            assert(encAssignOp == "branch=z9hG4bk15775865934415");   }   {      TR _tr("Branch testing 1");      char* viaString = "SIP/2.0/UDP ;branch=z9hG4bKwkl3lkjsdfjklsdjklfdsjlkdklj ;ttl=70";      HeaderFieldValue hfv(viaString, strlen(viaString));      Via via(&hfv, Headers::UNKNOWN);            assert (via.param(p_branch).hasMagicCookie());      assert (via.param(p_branch).getTransactionId() == "wkl3lkjsdfjklsdjklfdsjlkdklj");      assert (via.param(p_ttl) == 70);      assert (!via.exists(p_rport));            via.param(p_rport);      assert (via.exists(p_rport));            assert (via.exists(p_rport));            assert (!via.param(p_rport).hasValue());   }   {      TR _tr("Branch testing 2");      char* viaString = "SIP/2.0/UDP ;branch=z9hG4bKwkl3lkjsdfjklsdjklfdsjlkdklj ;ttl=70;rport";      HeaderFieldValue hfv(viaString, strlen(viaString));      Via via(&hfv, Headers::UNKNOWN);            assert (via.param(p_branch).hasMagicCookie());      assert (via.param(p_branch).getTransactionId() == "wkl3lkjsdfjklsdjklfdsjlkdklj");      assert (via.param(p_ttl) == 70);      assert (via.exists(p_rport));      assert (!via.param(p_rport).hasValue());   }   {      TR _tr("Branch testing 3");      char* viaString = "SIP/2.0/UDP ;branch=z9hG4bKwkl3lkjsdfjklsdjklfdsjlkdklj ;ttl=70;rport=100";      HeaderFieldValue hfv(viaString, strlen(viaString));      Via via(&hfv, Headers::UNKNOWN);            assert (via.param(p_branch).hasMagicCookie());      assert (via.param(p_branch).getTransactionId() == "wkl3lkjsdfjklsdjklfdsjlkdklj");      assert (via.param(p_ttl) == 70);      assert (via.exists(p_rport));      assert (via.param(p_rport).hasValue());      assert (via.param(p_rport).port() == 100);   }   {      TR _tr("Branch testing 4 with clientData");      Data txt("=z9hG4bK" RESIP_COOKIE "T-i-D-314-Q2xpZW50RGF0YQ..-" RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert (bpcc.getTransactionId() == "T-i-D");      assert (bpcc.clientData() == "ClientData");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      // cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "T-i-D-314-Q2xpZW50RGF0YQ..-" RESIP_COOKIE "");   }   {      TR _tr("Branch testing 5 with sigcomp ID");      Data txt("=z9hG4bK" RESIP_COOKIE "T-i-D-314--PHVybjp1dWlkOmZhMzNjNzJkLTEyMWYtNDdlOC00MmUyLTFlYjZlMjRhYmE2ND4." RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert (bpcc.getTransactionId() == "T-i-D");      assert (bpcc.clientData() == "");      assert (bpcc.getSigcompCompartment() == "<urn:uuid:fa33c72d-121f-47e8-42e2-1eb6e24aba64>");      bpcc.setSigcompCompartment("<urn:uuid:fa33c72d-121f-47e8-42e2-1eb6e24aba64>");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }//      cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "T-i-D-314--PHVybjp1dWlkOmZhMzNjNzJkLTEyMWYtNDdlOC00MmUyLTFlYjZlMjRhYmE2ND4." RESIP_COOKIE "");   }   {      TR _tr("Branch testing 6 with sigcomp ID and Client Data");      Data txt("=z9hG4bK" RESIP_COOKIE "T-i-D-314-Q2xpZW50RGF0YQ..-PHVybjp1dWlkOmZhMzNjNzJkLTEyMWYtNDdlOC00MmUyLTFlYjZlMjRhYmE2ND4." RESIP_COOKIE "");      ParseBuffer pb(txt.data(), txt.size());      BranchParameter bpcc(ParameterTypes::branch, pb, ";");      assert (bpcc.getTransactionId() == "T-i-D");      assert (bpcc.clientData() == "ClientData");      assert (bpcc.getSigcompCompartment() == "<urn:uuid:fa33c72d-121f-47e8-42e2-1eb6e24aba64>");      bpcc.setSigcompCompartment("<urn:uuid:fa33c72d-121f-47e8-42e2-1eb6e24aba64>");      Data o;      {         DataStream s(o);         bpcc.encode(s);      }      // cerr << "!! " << o << endl;      assert(o == "branch=z9hG4bK" RESIP_COOKIE "T-i-D-314-Q2xpZW50RGF0YQ..-PHVybjp1dWlkOmZhMzNjNzJkLTEyMWYtNDdlOC00MmUyLTFlYjZlMjRhYmE2ND4." RESIP_COOKIE "");   }   //3329 tests   {      TR _tr( "Token + parameters parse test 3329 ");      char *org = "digest;d-alg=md5";            HeaderFieldValue hfv(org, strlen(org));      Token tok(&hfv, Headers::UNKNOWN);      assert(tok.value() == "digest");      assert(tok.param(p_dAlg) == "md5");   }   {      TR _tr( "Token + parameters parse test");      char *org = "digest;d-qop=verify";            HeaderFieldValue hfv(org, strlen(org));      Token tok(&hfv, Headers::UNKNOWN);      assert(tok.value() == "digest");      assert(tok.param(p_dQop) == "verify");   }   {      TR _tr( "Token + parameters parse test");      char *org = "digest;d-ver=\"0000000000000000000000000000abcd\"";            HeaderFieldValue hfv(org, strlen(org));      Token tok(&hfv, Headers::UNKNOWN);      assert(tok.value() == "digest");      assert(tok.param(p_dVer) == "0000000000000000000000000000abcd");   }   {      TR _tr( "Test CSeqCategory 1");      Data cseqString("1 INVITE");      HeaderFieldValue hfv(cseqString.data(), cseqString.size());            CSeqCategory str(&hfv, Headers::UNKNOWN);      assert(str.sequence() == 1);      assert(str.method() == INVITE);      assert(Data::from(str) == cseqString);   }   {      TR _tr( "Test CSeqCategory 2");      Data cseqString("4294967295 INVITE");      HeaderFieldValue hfv(cseqString.data(), cseqString.size());            CSeqCategory str(&hfv, Headers::UNKNOWN);      assert(str.sequence() == 4294967295);      assert(str.method() == INVITE);      assert(Data::from(str) == cseqString);   }   {      TR _tr( "Test RAckCategory 1");      Data rackString("1 2 INVITE");      HeaderFieldValue hfv(rackString.data(), rackString.size());            RAckCategory str(&hfv, Headers::UNKNOWN);      assert(str.rSequence() == 1);      assert(str.cSequence() == 2);      assert(str.method() == INVITE);      assert(Data::from(str) == rackString);   }   {      TR _tr( "Test RAckCategory 2");      Data rackString("4294967294 4294967295 INVITE");      HeaderFieldValue hfv(rackString.data(), rackString.size());            RAckCategory str(&hfv, Headers::UNKNOWN);      assert(str.rSequence() == 4294967294);      assert(str.cSequence() == 4294967295);      assert(str.method() == INVITE);      assert(Data::from(str) == rackString);   }   cerr << "\nTEST OK" << endl;   return 0;}/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NE

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -