< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] RFC 3455 headers and parameters


Hi all,
I checked testParserCategories using unchanged mainline sources and I obtained 
errors again.
I found that errors are produced by function testParseAndWrite() for NameAddr 
and Via (see attached file testParserCategories_output.txt), and not by changes.
In the new patch file I inserted also the changes for testParserCategories.cxx 
and testGperfHash.cxx to check new headers and parameters and it seems that 
they work.
I didn't follow testParserCategories.cxx code using a debugger. Does anyone 
know testParseAndWrite() function and can he explain errors reported in the log?
Best regards,
Dario.


-----Original Message-----
From: resiprocate-devel [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxx] On 
Behalf Of Daniel Pocock
Sent: martedì 16 settembre 2014 21.32
To: resiprocate-devel@xxxxxxxxxxxxxxx
Subject: Re: [reSIProcate] RFC 3455 headers and parameters



On 16/09/14 20:27, Scott Godin wrote:
> I just tried applying the patch and running the 
> stack/test/testParserCategories test suite.  I got failures.  My 
> cycles are limited right now - can you try out this test suite and see 
> if you can pinpoint the issue?

This would be an interesting contribution to submit as a Github pull request.

Travis-CI will automatically try to build the project with the proposed patch 
and run the test cases and tell us if it is good to merge.
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel

Attachment: NewHeadersAndParameters_Update1.patch
Description: NewHeadersAndParameters_Update1.patch

                             Class      App      Lib Possible Culprit Flags
                resip::Connection      400      400
                      resip::Data       32       32
                 resip::DnsResult      732      732
                   resip::Headers        1        1
          resip::MsgHeaderScanner       32       32
                resip::SipMessage     4104     4104
         resip::TransportSelector      840      840
                     resip::Tuple      108      108
              resip::UdpTransport      712      712
          resip::GenericIPAddress       28       28

--> Test poorly formed NameAddr by construction
DEBUG | 20140917-125600.938 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.cxx:70, Parse failed expected ':' in 
context:
<jason_AT_example.com@10.0.0.1;transport=TCP>
                     ^

DEBUG | 20140917-125600.978 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.cxx:70 
c:\dev.resiprocate\main\rutil\parsebuffer.cxx
:70, Parse failed expected ':' in context:
<jason_AT_example.com@10.0.0.1;transport=TCP>
                     ^

ParseException c:\dev.resiprocate\main\rutil\parsebuffer.cxx:70, Parse failed 
expected ':' in context:
<jason_AT_example.com@10.0.0.1;transport=TCP>
                     ^
 @ c:\dev.resiprocate\main\rutil\parsebuffer.cxx:70
<-- Test poorly formed NameAddr by construction
--> Test copy transport param
<sip:jason_AT_example.com@10.0.0.1:5060;transport=TCP>
<sip:jason_AT_example.com@10.0.0.1:5060;transport=TCP>
<-- Test copy transport param
--> Test iterator erase in ParserContainer
<-- Test iterator erase in ParserContainer
--> Test NameAddr encode from underlying after read-only parse
<sip:jason_AT_example.com@10.0.0.1:5060;opaque=blah>
<sip:jason_AT_example.com@10.0.0.1:5060;opaque=blah>
<-- Test NameAddr encode from underlying after read-only parse
--> Test find in ParserContainer
<-- Test find in ParserContainer
--> Test remove parameters that appear multiple times
<-- Test remove parameters that appear multiple times
--> Test remove parameters that appear multiple times
sips:bob@xxxxxxx
<-- Test remove parameters that appear multiple times
--> Test remove parameters that appear multiple times; mixed predefined and 
extensions
<-- Test remove parameters that appear multiple times; mixed predefined and 
extensions
--> Test exists unknown parameter
b
<-- Test exists unknown parameter
--> Test non-quoted tokens displayname in NameAddr (torture test: 2.39)
!!"A. Bell"<sip:a.g.bell@xxxxxxxxxxxx>;tag=459843
<-- Test non-quoted tokens displayname in NameAddr (torture test: 2.39)
--> Test quoted displayname in NameAddr (torture test: 2.39)
!!A. Bell
<-- Test quoted displayname in NameAddr (torture test: 2.39)
--> Test NameAddr parameter handling
!!<sip:foo@xxxxxxx;user=phone>
<-- Test NameAddr parameter handling
--> Test tel aor canonicalization
+14156268178
<-- Test tel aor canonicalization
--> Test aor canonicalization
!! User@xxxxxxxxxxxxxxxx:5666 User@xxxxxxxxxxxxxxxx:5666
<-- Test aor canonicalization
--> Test tel NameAddr
98267168
<-- Test tel NameAddr
--> Test empty NameAddr
<-- Test empty NameAddr
--> Test NameAddr q value
<-- Test NameAddr q value
--> Test NameAddr comparison
<-- Test NameAddr comparison
--> Test parameter with spaces
<-- Test parameter with spaces
--> Test uri with no user
sip:kelowna.gloo.net
<-- Test uri with no user
--> Test uri with empty transport param
DEBUG | 20140917-125601.302 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at .\DataParameter.cxx:32 Empty value in string-type parameter.
<-- Test uri with empty transport param
--> Test uri with empty transport param
DEBUG | 20140917-125601.332 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at .\DataParameter.cxx:32 Empty value in string-type parameter.
<-- Test uri with empty transport param
--> Test assignment for NameAddr
original NameAddr: ->"Original"<sip:orig@xxxxxxxxxxx>;tag=original<-
new NameAddr     : ->"new"<sip:new@xxxxxxxxxxx>;tag=new<-
original : ->"new"<sip:new@xxxxxxxxxxx>;tag=new<-
<-- Test assignment for NameAddr
--> Test @ in params for Uri
<-- Test @ in params for Uri
--> Test unquoted @ in params for Uri
<-- Test unquoted @ in params for Uri
--> Test : in params for Uri
<-- Test : in params for Uri
--> Test unquoted : in params for Uri
<-- Test unquoted : in params for Uri
--> Test unquoted : in params for Uri (2)
<-- Test unquoted : in params for Uri (2)
--> Test @ in headers for Uri
<-- Test @ in headers for Uri
--> Test unquoted @ in headers for Uri
<-- Test unquoted @ in headers for Uri
--> Test : in headers for Uri
<-- Test : in headers for Uri
--> Test unquoted : in headers for Uri
<-- Test unquoted : in headers for Uri
--> Test unquoted : in headers for Uri (2)
<-- Test unquoted : in headers for Uri (2)
--> Test typeless parameter copy
<-- Test typeless parameter copy
--> Test typeless parameter overwrite
value;expires=17;retry-after=21;lr;foobie=quux
<-- Test typeless parameter overwrite
--> Test StringCategory
Lame Agent
<-- Test StringCategory
--> Test Token parameters
active;expires=666
<-- Test Token parameters
--> StatusLine, with reason code
Ringing
<-- StatusLine, with reason code
--> Checking hash of: CSeq
<-- Checking hash of: CSeq
--> Checking hash of: Subject
<-- Checking hash of: Subject
--> Checking hash of: Expires
<-- Checking hash of: Expires
--> Checking hash of: Session-Expires
<-- Checking hash of: Session-Expires
--> Checking hash of: Min-SE
<-- Checking hash of: Min-SE
--> Checking hash of: Accept
<-- Checking hash of: Accept
--> Checking hash of: Accept-Encoding
<-- Checking hash of: Accept-Encoding
--> Checking hash of: Accept-Language
<-- Checking hash of: Accept-Language
--> Checking hash of: Alert-Info
<-- Checking hash of: Alert-Info
--> Checking hash of: Allow
<-- Checking hash of: Allow
--> Checking hash of: Authentication-Info
<-- Checking hash of: Authentication-Info
--> Checking hash of: Call-Info
<-- Checking hash of: Call-Info
--> Checking hash of: Content-Disposition
<-- Checking hash of: Content-Disposition
--> Checking hash of: Content-Encoding
<-- Checking hash of: Content-Encoding
--> Checking hash of: Content-ID
<-- Checking hash of: Content-ID
--> Checking hash of: Content-Language
<-- Checking hash of: Content-Language
--> Checking hash of: Content-Transfer-Encoding
<-- Checking hash of: Content-Transfer-Encoding
--> Checking hash of: Content-Type
<-- Checking hash of: Content-Type
--> Checking hash of: Date
<-- Checking hash of: Date
--> Checking hash of: Error-Info
<-- Checking hash of: Error-Info
--> Checking hash of: In-Reply-To
<-- Checking hash of: In-Reply-To
--> Checking hash of: Min-Expires
<-- Checking hash of: Min-Expires
--> Checking hash of: MIME-Version
<-- Checking hash of: MIME-Version
--> Checking hash of: Organization
<-- Checking hash of: Organization
--> Checking hash of: Sec-WebSocket-Key
<-- Checking hash of: Sec-WebSocket-Key
--> Checking hash of: Sec-WebSocket-Key1
<-- Checking hash of: Sec-WebSocket-Key1
--> Checking hash of: Sec-WebSocket-Key2
<-- Checking hash of: Sec-WebSocket-Key2
--> Checking hash of: Origin
<-- Checking hash of: Origin
--> Checking hash of: Host
<-- Checking hash of: Host
--> Checking hash of: Sec-WebSocket-Accept
<-- Checking hash of: Sec-WebSocket-Accept
--> Checking hash of: Cookie
<-- Checking hash of: Cookie
--> Checking hash of: Priority
<-- Checking hash of: Priority
--> Checking hash of: Proxy-Authorization
<-- Checking hash of: Proxy-Authorization
--> Checking hash of: Reply-To
<-- Checking hash of: Reply-To
--> Checking hash of: Retry-After
<-- Checking hash of: Retry-After
--> Checking hash of: Flow-Timer
<-- Checking hash of: Flow-Timer
--> Checking hash of: Server
<-- Checking hash of: Server
--> Checking hash of: SIP-ETag
<-- Checking hash of: SIP-ETag
--> Checking hash of: SIP-If-Match
<-- Checking hash of: SIP-If-Match
--> Checking hash of: Supported
<-- Checking hash of: Supported
--> Checking hash of: Timestamp
<-- Checking hash of: Timestamp
--> Checking hash of: Unsupported
<-- Checking hash of: Unsupported
--> Checking hash of: User-Agent
<-- Checking hash of: User-Agent
--> Checking hash of: Warning
<-- Checking hash of: Warning
--> Checking hash of: WWW-Authenticate
<-- Checking hash of: WWW-Authenticate
--> Checking hash of: Subscription-State
<-- Checking hash of: Subscription-State
--> Checking hash of: Refer-To
<-- Checking hash of: Refer-To
--> Checking hash of: Referred-By
<-- Checking hash of: Referred-By
--> Checking hash of: Authorization
<-- Checking hash of: Authorization
--> Checking hash of: Replaces
<-- Checking hash of: Replaces
--> Checking hash of: Event
<-- Checking hash of: Event
--> Checking hash of: Allow-Events
<-- Checking hash of: Allow-Events
--> Checking hash of: Security-Client
<-- Checking hash of: Security-Client
--> Checking hash of: Security-Server
<-- Checking hash of: Security-Server
--> Checking hash of: Security-Verify
<-- Checking hash of: Security-Verify
--> Checking hash of: RSeq
<-- Checking hash of: RSeq
--> Checking hash of: RAck
<-- Checking hash of: RAck
--> Checking hash of: Reason
<-- Checking hash of: Reason
--> Checking hash of: Privacy
<-- Checking hash of: Privacy
--> Checking hash of: Request-Disposition
<-- Checking hash of: Request-Disposition
--> Checking hash of: P-Media-Authorization
<-- Checking hash of: P-Media-Authorization
--> Checking hash of: Join
<-- Checking hash of: Join
--> Checking hash of: Target-Dialog
<-- Checking hash of: Target-Dialog
--> Checking hash of: P-Asserted-Identity
<-- Checking hash of: P-Asserted-Identity
--> Checking hash of: P-Preferred-Identity
<-- Checking hash of: P-Preferred-Identity
--> Checking hash of: Accept-Contact
<-- Checking hash of: Accept-Contact
--> Checking hash of: Reject-Contact
<-- Checking hash of: Reject-Contact
--> Checking hash of: P-Called-Party-ID
<-- Checking hash of: P-Called-Party-ID
--> Checking hash of: P-Associated-URI
<-- Checking hash of: P-Associated-URI
--> Checking hash of: Content-Length
<-- Checking hash of: Content-Length
--> Checking hash of: Refer-Sub
<-- Checking hash of: Refer-Sub
--> Checking hash of: Answer-Mode
<-- Checking hash of: Answer-Mode
--> Checking hash of: Priv-Answer-Mode
<-- Checking hash of: Priv-Answer-Mode
--> Checking hash of: Remote-Party-ID
<-- Checking hash of: Remote-Party-ID
--> Checking hash of: History-Info
<-- Checking hash of: History-Info
12 To = To
13 From = From
0 Via = Via
14 Call-ID = CallID
15 CSeq = CSeq
2 Route = Route
3 Record-Route = RecordRoute
11 Contact = Contact
16 Subject = Subject
17 Expires = Expires
1 Max-Forwards = MaxForwards
20 Accept = Accept
21 Accept-Encoding = AcceptEncoding
22 Accept-Language = AcceptLanguage
23 Alert-Info = AlertInfo
24 Allow = Allow
25 Authentication-Info = AuthenticationInfo
26 Call-Info = CallInfo
27 Content-Disposition = ContentDisposition
28 Content-Encoding = ContentEncoding
30 Content-Language = ContentLanguage
31 Content-Transfer-Encoding = ContentTransferEncoding
32 Content-Type = ContentType
33 Date = Date
35 In-Reply-To = InReplyTo
36 Min-Expires = MinExpires
37 MIME-Version = MIMEVersion
38 Organization = Organization
46 Priority = Priority
7 Proxy-Authenticate = ProxyAuthenticate
47 Proxy-Authorization = ProxyAuthorization
6 Proxy-Require = ProxyRequire
48 Reply-To = ReplyTo
10 Require = Require
49 Retry-After = RetryAfter
51 Server = Server
52 SIP-ETag = SIPETag
53 SIP-If-Match = SIPIfMatch
54 Supported = Supported
55 Timestamp = Timestamp
56 Unsupported = Unsupported
57 User-Agent = UserAgent
58 Warning = Warning
59 WWW-Authenticate = WWWAuthenticate
60 Subscription-State = SubscriptionState
61 Refer-To = ReferTo
62 Referred-By = ReferredBy
63 Authorization = Authorization
64 Replaces = Replaces
65 Event = Event
66 Allow-Events = AllowEvents
67 Security-Client = SecurityClient
68 Security-Server = SecurityServer
69 Security-Verify = SecurityVerify
84 Content-Length = ContentLength
29 Content-ID = ContentId
0 data = data
1 control = control
2 mobility = mobility
3 description = description
4 events = events
5 priority = priority
6 methods = methods
7 schemes = schemes
8 application = application
9 video = video
10 language = language
11 type = type
12 isfocus = isFocus
13 actor = actor
14 text = text
16 extensions = extensions
17 +sip.instance = Instance
22 gr = gr
70 transport = transport
73 user = user
44 method = method
71 ttl = ttl
43 maddr = maddr
42 lr = lr
54 q = q
53 purpose = purpose
37 expires = expires
40 handling = handling
68 tag = tag
69 to-tag = toTag
39 from-tag = fromTag
35 duration = duration
26 branch = branch
57 received = received
29 comp = comp
62 rport = rport
24 algorithm = algorithm
28 cnonce = cnonce
34 domain = domain
41 id = id
49 nonce = nonce
48 nc = nc
50 opaque = opaque
55 realm = realm
59 response = response
67 stale = stale
75 username = username
88 qop = qop
72 uri = uri
60 retry-after = retryAfter
56 reason = reason
30 d-alg = dAlg
31 d-qop = dQop
32 d-ver = dVer
66 smime-type = smimeType
47 name = name
38 filename = filename
52 protocol = protocol
45 micalg = micalg
25 boundary = boundary
36 expiration = expiration
65 size = size
51 permission = permission
64 site = site
33 directory = directory
46 mode = mode
63 server = server
27 charset = charset
23 access-type = accessType
78 profile-type = profileType
79 vendor = vendor
80 model = model
81 version = version
82 effective-by = effectiveBy
83 document = document
84 app-id = appId
85 network-user = networkUser
86 url = url
--> Checking hash of: data
<-- Checking hash of: data
--> Checking hash of: control
<-- Checking hash of: control
--> Checking hash of: mobility
<-- Checking hash of: mobility
--> Checking hash of: description
<-- Checking hash of: description
--> Checking hash of: events
<-- Checking hash of: events
--> Checking hash of: priority
<-- Checking hash of: priority
--> Checking hash of: methods
<-- Checking hash of: methods
--> Checking hash of: schemes
<-- Checking hash of: schemes
--> Checking hash of: application
<-- Checking hash of: application
--> Checking hash of: video
<-- Checking hash of: video
--> Checking hash of: language
<-- Checking hash of: language
--> Checking hash of: type
<-- Checking hash of: type
--> Checking hash of: isfocus
<-- Checking hash of: isfocus
--> Checking hash of: actor
<-- Checking hash of: actor
--> Checking hash of: text
<-- Checking hash of: text
--> Checking hash of: cause
<-- Checking hash of: cause
--> Checking hash of: extensions
<-- Checking hash of: extensions
--> Checking hash of: +sip.instance
<-- Checking hash of: +sip.instance
--> Checking hash of: reg-id
<-- Checking hash of: reg-id
--> Checking hash of: ob
<-- Checking hash of: ob
--> Checking hash of: pub-gruu
<-- Checking hash of: pub-gruu
--> Checking hash of: temp-gruu
<-- Checking hash of: temp-gruu
--> Checking hash of: gr
<-- Checking hash of: gr
--> Checking hash of: access-type
<-- Checking hash of: access-type
--> Checking hash of: algorithm
<-- Checking hash of: algorithm
--> Checking hash of: boundary
<-- Checking hash of: boundary
--> Checking hash of: branch
<-- Checking hash of: branch
--> Checking hash of: charset
<-- Checking hash of: charset
--> Checking hash of: cnonce
<-- Checking hash of: cnonce
--> Checking hash of: comp
<-- Checking hash of: comp
--> Checking hash of: d-alg
<-- Checking hash of: d-alg
--> Checking hash of: d-qop
<-- Checking hash of: d-qop
--> Checking hash of: d-ver
<-- Checking hash of: d-ver
--> Checking hash of: directory
<-- Checking hash of: directory
--> Checking hash of: domain
<-- Checking hash of: domain
--> Checking hash of: duration
<-- Checking hash of: duration
--> Checking hash of: expiration
<-- Checking hash of: expiration
--> Checking hash of: expires
<-- Checking hash of: expires
--> Checking hash of: filename
<-- Checking hash of: filename
--> Checking hash of: from-tag
<-- Checking hash of: from-tag
--> Checking hash of: handling
<-- Checking hash of: handling
--> Checking hash of: id
<-- Checking hash of: id
--> Checking hash of: lr
<-- Checking hash of: lr
--> Checking hash of: maddr
<-- Checking hash of: maddr
--> Checking hash of: method
<-- Checking hash of: method
--> Checking hash of: micalg
<-- Checking hash of: micalg
--> Checking hash of: mode
<-- Checking hash of: mode
--> Checking hash of: name
<-- Checking hash of: name
--> Checking hash of: nc
<-- Checking hash of: nc
--> Checking hash of: nonce
<-- Checking hash of: nonce
--> Checking hash of: opaque
<-- Checking hash of: opaque
--> Checking hash of: permission
<-- Checking hash of: permission
--> Checking hash of: protocol
<-- Checking hash of: protocol
--> Checking hash of: purpose
<-- Checking hash of: purpose
--> Checking hash of: q
<-- Checking hash of: q
--> Checking hash of: realm
<-- Checking hash of: realm
--> Checking hash of: reason
<-- Checking hash of: reason
--> Checking hash of: received
<-- Checking hash of: received
--> Checking hash of: require
<-- Checking hash of: require
--> Checking hash of: response
<-- Checking hash of: response
--> Checking hash of: retry-after
<-- Checking hash of: retry-after
--> Checking hash of: rinstance
<-- Checking hash of: rinstance
--> Checking hash of: rport
<-- Checking hash of: rport
--> Checking hash of: server
<-- Checking hash of: server
--> Checking hash of: site
<-- Checking hash of: site
--> Checking hash of: size
<-- Checking hash of: size
--> Checking hash of: smime-type
<-- Checking hash of: smime-type
--> Checking hash of: stale
<-- Checking hash of: stale
--> Checking hash of: tag
<-- Checking hash of: tag
--> Checking hash of: to-tag
<-- Checking hash of: to-tag
--> Checking hash of: transport
<-- Checking hash of: transport
--> Checking hash of: ttl
<-- Checking hash of: ttl
--> Checking hash of: uri
<-- Checking hash of: uri
--> Checking hash of: user
<-- Checking hash of: user
--> Checking hash of: ext
<-- Checking hash of: ext
--> Checking hash of: username
<-- Checking hash of: username
--> Checking hash of: early-only
<-- Checking hash of: early-only
--> Checking hash of: refresher
<-- Checking hash of: refresher
--> Checking hash of: profile-type
<-- Checking hash of: profile-type
--> Checking hash of: vendor
<-- Checking hash of: vendor
--> Checking hash of: model
<-- Checking hash of: model
--> Checking hash of: version
<-- Checking hash of: version
--> Checking hash of: effective-by
<-- Checking hash of: effective-by
--> Checking hash of: document
<-- Checking hash of: document
--> Checking hash of: app-id
<-- Checking hash of: app-id
--> Checking hash of: network-user
<-- Checking hash of: network-user
--> Checking hash of: url
<-- Checking hash of: url
--> Checking hash of: sigcomp-id
<-- Checking hash of: sigcomp-id
--> Checking hash of: index
<-- Checking hash of: index
--> Checking hash of: rc
<-- Checking hash of: rc
--> Checking hash of: mp
<-- Checking hash of: mp
--> Checking hash of: np
<-- Checking hash of: np
--> Checking hash of: addTransport
<-- Checking hash of: addTransport
--> Checking hash of: ws-src-ip
<-- Checking hash of: ws-src-ip
--> Checking hash of: ws-src-port
<-- Checking hash of: ws-src-port
--> simple Token parse test
<-- simple Token parse test
--> Token + parameters parse test
<-- Token + parameters parse test
--> Test NameAddr(Data) constructor
<-- Test NameAddr(Data) constructor
--> full on via parse
<-- full on via parse
--> Test poorly formed DataParameter by construction
DEBUG | 20140917-125602.874 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230, Parse failed unexpected eof 
in context:
 SIP/2.0/UDP example.com:5000;;tag=
                                   ^

DEBUG | 20140917-125602.904 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230 
c:\dev.resiprocate\main\rutil\parsebuffer.hx
x:230, Parse failed unexpected eof in context:
 SIP/2.0/UDP example.com:5000;;tag=
                                   ^

Caught parse exception for Via
<-- Test poorly formed DataParameter by construction
--> Test poorly formed UnknownParameter by construction
DEBUG | 20140917-125602.957 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230, Parse failed unexpected eof 
in context:
 SIP/2.0/UDP example.com:5000;;foobar=
                                      ^

DEBUG | 20140917-125602.987 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230 
c:\dev.resiprocate\main\rutil\parsebuffer.hx
x:230, Parse failed unexpected eof in context:
 SIP/2.0/UDP example.com:5000;;foobar=
                                      ^

Caught parse exception for Via
<-- Test poorly formed UnknownParameter by construction
--> Test poorly formed UInt32Parameter by construction
DEBUG | 20140917-125603.040 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230, Parse failed unexpected eof 
in context:
 SIP/2.0/UDP example.com:5000;;duration=
                                        ^

DEBUG | 20140917-125603.069 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.hxx:230 
c:\dev.resiprocate\main\rutil\parsebuffer.hx
x:230, Parse failed unexpected eof in context:
 SIP/2.0/UDP example.com:5000;;duration=
                                        ^

Caught parse exception for Via
<-- Test poorly formed UInt32Parameter by construction
--> Test poorly formed QuotedDataParameter by construction
DEBUG | 20140917-125603.124 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.cxx:427, Parse failed Missing '"' in 
context:
 SIP/2.0/UDP example.com:5000;;domain="
                                       ^

DEBUG | 20140917-125603.153 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.cxx:427 
c:\dev.resiprocate\main\rutil\parsebuffer.cx
x:427, Parse failed Missing '"' in context:
 SIP/2.0/UDP example.com:5000;;domain="
                                       ^

Caught parse exception for Via
<-- Test poorly formed QuotedDataParameter by construction
--> URI parse
!! <sip:bob@xxxxxxx>
<-- URI parse
--> URI parse, no displayName
<-- URI parse, no displayName
--> URI parse, parameters
<-- URI parse, parameters
--> URI parse, parameters, port
<-- URI parse, parameters, port
--> URI parse, parameters, correct termination check
Uri:foo.com
<-- URI parse, parameters, correct termination check
--> URI parse, transport parameter
<-- URI parse, transport parameter
URI comparison tests
A: sip:bob@xxxxxxxxxx;transport=udp
B: sip:bob@xxxxxxxxxx
A:exists(transport) 1
--> Request Line parse
foo.com
<-- Request Line parse
--> Request Line parse tel
<-- Request Line parse tel
--> Request Line parse, parameters
foo.com
SIP/2.0
<-- Request Line parse, parameters
--> NameAddr parse
<-- NameAddr parse
--> NameAddr parse, displayName
<-- NameAddr parse, displayName
--> NameAddr parse, quoted displayname
<-- NameAddr parse, quoted displayname
--> NameAddr parse, quoted displayname, embedded quotes
<-- NameAddr parse, quoted displayname, embedded quotes
--> NameAddr parse, unquoted displayname, paramterMove
Uri params:
Header params: ;tag=456248;mobility="hobble"
<-- NameAddr parse, unquoted displayname, paramterMove
--> NameAddr parse, quoted displayname, parameterMove
Uri params:
Header params: ;tag=456248;mobility="hobble"
<-- NameAddr parse, quoted displayname, parameterMove
--> NameAddr parse, unquoted displayname, paramterMove
Uri params: ;tag=456248;mobility="hobble"
Header params:
<-- NameAddr parse, unquoted displayname, paramterMove
--> NameAddr parse, unquoted displayname, paramterMove
Uri params: ;mobility="hobb;le";tag="true;false"
Header params:
<-- NameAddr parse, unquoted displayname, paramterMove
--> NameAddr parse
<-- NameAddr parse
--> NameAddr parse, no user in uri
<-- NameAddr parse, no user in uri
--> StatusLine, no reason code
<-- StatusLine, no reason code
--> StatusLine, no reason code
<-- StatusLine, no reason code
--> Auth Schemes
Auth scheme: Digest
   realm: 66.100.107.120
Digest 
realm="66.100.107.120",username="1234",nonce="1011235448",uri="sip:66.100.107.120",algorithm=MD5,response="8a5165b024fda362ed9c1e29a7af0ef2"
<-- Auth Schemes
--> More Auth
Auth scheme:
   realm: 66.100.107.120
realm="66.100.107.120",username="1234",nonce="1011235448",uri="sip:66.100.107.120",algorithm=MD5,response="8a5165b024fda362ed9c1e29a7af0ef2"
<-- More Auth
--> Testing qop stuff
<-- Testing qop stuff
--> More Auth Encoding
<-- More Auth Encoding
--> Generic URI stuff
icon
<http://www.google.com>;purpose=icon;fake=true
<-- Generic URI stuff
--> Date testing 1
Mon, 04 Nov 2002 17:34:15 GMT
!! original date     : Mon, 04 Nov 2002 17:34:15 GMT
!! original string   : Mon, 04 Nov 2002 17:34:15 GMT
!! otherDate         : Mon, 04 Nov 2002 17:34:15 GMT
!! encoded otherDate : Mon, 04 Nov 2002 17:34:15 GMT
<-- Date testing 1
--> Date testing 2
<-- Date testing 2
--> Mime types 1
<-- Mime types 1
--> Mime types 2
<-- Mime types 2
--> Mime types 3
<-- Mime types 3
--> Via 1
SIP/2.0/ ;branch=z9hG4bK-524287-1---4005d852b6129164;rport
<-- Via 1
--> Via 2
SIP/2.0/UDP ;branch=z9hG4bKwkl3lkjsdfjklsdjklfdsjlkdklj
!! SIP/2.0/UDP ;branch=z9hG4bK-524287-1---jason
<-- Via 2
--> Via 3
<-- Via 3
--> Via 4
<-- Via 4
--> Via 5 assignment with unknown parameter
!! SIP/2.0/UDP ;branch=z9hG4bKwkl3lkjsdfjklsdjklfdsjlkdklj;ttl=70;stid=abcd.2
<-- Via 5 assignment with unknown parameter
--> Via 6 parse with known parameter
!! SIP/2.0/UDP whistler.gloo.net:5061;branch=z9hG4bK-524287-1---ec1e.0;ttl=4
<-- Via 6 parse with known parameter
--> Via 7 parse with unknown parameter
!! SIP/2.0/UDP 
whistler.gloo.net:5061;branch=z9hG4bK-524287-1---ec1e.0;stid=489573115
<-- Via 7 parse with unknown parameter
--> Branch parameter 1
branch=z9hG4bK-524287-1---jason.10
!! branch=z9hG4bK-524287-1---jason.10
<-- Branch parameter 1
--> Branch parameter 2
!! branch=z9hG4bK-524287-14---jason.1.2.3
<-- Branch parameter 2
--> Branch parameter 3
!! branch=z9hG4bK-524287-14---3e565-ef7w-17.1.2.3foobie
!! branch=z9hG4bK-524287-1---foobie
<-- Branch parameter 3
--> Branch parameter 4
!! branch=z9hG4bK-524287-14---3e565-ef7w-17.1.2.3
<-- Branch parameter 4
--> Branch parameter 7 empty ours
!! branch=z9hG4bK-524287-1---
<-- Branch parameter 7 empty ours
--> Branch parameter 8 badly formed ours
DEBUG | 20140917-125603.611 | test.exe | RESIP | 5804 | parsebuffer.cxx:971 | 
c:\dev.resiprocate\main\rutil\parsebuffer.cxx:735, Parse failed Expected a 
digit in context:
=z9hG4bK-524287-------
                ^

DEBUG | 20140917-125603.639 | test.exe | RESIP | 5804 | baseexception.cxx:21 | 
BaseException at c:\dev.resiprocate\main\rutil\parsebuffer.cxx:735 
c:\dev.resiprocate\main\rutil\parsebuffer.cx
x:735, Parse failed Expected a digit in context:
=z9hG4bK-524287-------
                ^

<-- Branch parameter 8 badly formed ours
--> Branch parameter 9
!! PA32768
branch=z9hG4bK-524287-1-UEEzMjc2OA..--5b42cb698e8c6827790212ac5bdade1a
<-- Branch parameter 9
--> Branch parameter 10; magic cookie case mismatch
!! branch=z9hG4bk15775865934415
!! branch=z9hG4bk15775865934415
!! branch=z9hG4bk15775865934415
<-- Branch parameter 10; magic cookie case mismatch
--> Branch testing 1
<-- Branch testing 1
--> Branch testing 2
<-- Branch testing 2
--> Branch testing 3
<-- Branch testing 3
--> Branch testing 4 with clientData
<-- Branch testing 4 with clientData
--> Branch testing 5 with sigcomp ID
<-- Branch testing 5 with sigcomp ID
--> Branch testing 6 with sigcomp ID and Client Data
<-- Branch testing 6 with sigcomp ID and Client Data
--> Token + parameters parse test 3329
<-- Token + parameters parse test 3329
--> Token + parameters parse test
<-- Token + parameters parse test
--> Token + parameters parse test
<-- Token + parameters parse test
--> Test CSeqCategory 1
<-- Test CSeqCategory 1
--> Test CSeqCategory 2
<-- Test CSeqCategory 2
--> Test RAckCategory 1
<-- Test RAckCategory 1
--> Test RAckCategory 2
<-- Test RAckCategory 2
--> Test Privacy Category 1
<-- Test Privacy Category 1
--> Test Privacy Category 2
<-- Test Privacy Category 2
--> Test Privacy Category 3
<-- Test Privacy Category 3
--> Test * <-> *
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != "*" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != "*" ( 
rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != "*" ( rawInput 
)
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != "*" ( 
rawInput )
.\testParserCategories.cxx:100 - dirty "" ( toData(raw) ) != "*" ( parsedOutput 
)
.\testParserCategories.cxx:101 - dirty "" ( toData(dirtyCopy) ) != "*" ( 
parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != "*" ( 
rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != "*" ( 
rawInput )
.\testParserCategories.cxx:109 - dirty "" ( toData(rawCopy) ) != "*" ( 
parsedOutput )
<-- Test * <-> *
--> Test  * <-> *
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != " *" ( rawInput 
)
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != " *" ( 
rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != " *" ( 
rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != " *" ( 
rawInput )
.\testParserCategories.cxx:100 - dirty "" ( toData(raw) ) != "*" ( parsedOutput 
)
.\testParserCategories.cxx:101 - dirty "" ( toData(dirtyCopy) ) != "*" ( 
parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != " *" ( 
rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != " *" ( 
rawInput )
.\testParserCategories.cxx:109 - dirty "" ( toData(rawCopy) ) != "*" ( 
parsedOutput )
<-- Test  * <-> *
--> Test *  <-> *
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != "* " ( rawInput 
)
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != "* " ( 
rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != "* " ( 
rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != "* " ( 
rawInput )
.\testParserCategories.cxx:100 - dirty "" ( toData(raw) ) != "*" ( parsedOutput 
)
.\testParserCategories.cxx:101 - dirty "" ( toData(dirtyCopy) ) != "*" ( 
parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != "* " ( 
rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != "* " ( 
rawInput )
.\testParserCategories.cxx:109 - dirty "" ( toData(rawCopy) ) != "*" ( 
parsedOutput )
<-- Test *  <-> *
--> Test * ;foo <-> *;foo
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != "* ;foo" ( 
rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != "* ;foo" ( 
rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != "* ;foo" ( 
rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != "* 
;foo" ( rawInput )
.\testParserCategories.cxx:100 - dirty "" ( toData(raw) ) != "*;foo" ( 
parsedOutput )
.\testParserCategories.cxx:101 - dirty "" ( toData(dirtyCopy) ) != "*;foo" ( 
parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != "* ;foo" 
( rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != "* ;foo" 
( rawInput )
.\testParserCategories.cxx:109 - dirty "" ( toData(rawCopy) ) != "*;foo" ( 
parsedOutput )
<-- Test * ;foo <-> *;foo
--> Test *bob*<sip:bob@foo> <-> "*bob*"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "*bob*<sip:bob@fo" ( toData(raw) ) != 
"*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "*bob*<sip:bob@fo" ( toData(rawCopy) 
) != "*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "*bob*<sip:bob@fo" ( toData(raw) ) 
!= "*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "*bob*<sip:bob@fo" ( 
toData(parsedCopy) ) != "*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:100 - dirty ""*bob*"<sip:bob@" ( toData(raw) ) != 
""*bob*"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""*bob*"<sip:bob@" ( toData(dirtyCopy) ) 
!= ""*bob*"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "*bob*<sip:bob@fo" ( 
toData(raw) ) != "*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "*bob*<sip:bob@fo" ( 
toData(rawCopy) ) != "*bob*<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:109 - dirty ""*bob*"<sip:bob@" ( toData(rawCopy) ) 
!= ""*bob*"<sip:bob@foo>" ( parsedOutput )
<-- Test *bob*<sip:bob@foo> <-> "*bob*"<sip:bob@foo>
--> Test "bob"<sip:bob@foo> <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse ""bob"<sip:bob@fo" ( toData(rawCopy) 
) != ""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:94 - post-parse ""bob"<sip:bob@fo" ( toData(raw) ) 
!= ""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:95 - post-parse ""bob"<sip:bob@fo" ( 
toData(parsedCopy) ) != ""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw ""bob"<sip:bob@fo" ( 
toData(raw) ) != ""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:107 - post-parse ""bob"<sip:bob@fo" ( 
toData(rawCopy) ) != ""bob"<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test "bob"<sip:bob@foo> <-> "bob"<sip:bob@foo>
--> Test bob<sip:bob@foo>  <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "bob<sip:bob@foo>" ( toData(raw) ) != 
"bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "bob<sip:bob@foo>" ( toData(rawCopy) 
) != "bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:94 - post-parse "bob<sip:bob@foo>" ( toData(raw) ) 
!= "bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:95 - post-parse "bob<sip:bob@foo>" ( 
toData(parsedCopy) ) != "bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "bob<sip:bob@foo>" ( 
toData(raw) ) != "bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:107 - post-parse "bob<sip:bob@foo>" ( 
toData(rawCopy) ) != "bob<sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test bob<sip:bob@foo>  <-> "bob"<sip:bob@foo>
--> Test *bob* <sip:bob@foo> <-> "*bob*"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "*bob* <sip:bob@f" ( toData(raw) ) != 
"*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "*bob* <sip:bob@f" ( toData(rawCopy) 
) != "*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "*bob* <sip:bob@f" ( toData(raw) ) 
!= "*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "*bob* <sip:bob@f" ( 
toData(parsedCopy) ) != "*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:100 - dirty ""*bob*"<sip:bob@" ( toData(raw) ) != 
""*bob*"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""*bob*"<sip:bob@" ( toData(dirtyCopy) ) 
!= ""*bob*"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "*bob* <sip:bob@f" ( 
toData(raw) ) != "*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "*bob* <sip:bob@f" ( 
toData(rawCopy) ) != "*bob* <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:109 - dirty ""*bob*"<sip:bob@" ( toData(rawCopy) ) 
!= ""*bob*"<sip:bob@foo>" ( parsedOutput )
<-- Test *bob* <sip:bob@foo> <-> "*bob*"<sip:bob@foo>
--> Test "bob" <sip:bob@foo> <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse ""bob" <sip:bob@f" ( toData(raw) ) != 
""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse ""bob" <sip:bob@f" ( toData(rawCopy) 
) != ""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:94 - post-parse ""bob" <sip:bob@f" ( toData(raw) ) 
!= ""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:95 - post-parse ""bob" <sip:bob@f" ( 
toData(parsedCopy) ) != ""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw ""bob" <sip:bob@f" ( 
toData(raw) ) != ""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:107 - post-parse ""bob" <sip:bob@f" ( 
toData(rawCopy) ) != ""bob" <sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test "bob" <sip:bob@foo> <-> "bob"<sip:bob@foo>
--> Test bob <sip:bob@foo>  <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "bob <sip:bob@foo" ( toData(raw) ) != 
"bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "bob <sip:bob@foo" ( toData(rawCopy) 
) != "bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:94 - post-parse "bob <sip:bob@foo" ( toData(raw) ) 
!= "bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:95 - post-parse "bob <sip:bob@foo" ( 
toData(parsedCopy) ) != "bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "bob <sip:bob@foo" ( 
toData(raw) ) != "bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:107 - post-parse "bob <sip:bob@foo" ( 
toData(rawCopy) ) != "bob <sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test bob <sip:bob@foo>  <-> "bob"<sip:bob@foo>
--> Test bob < sip:bob@foo>  <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "bob < sip:bob@fo" ( toData(raw) ) != 
"bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "bob < sip:bob@fo" ( toData(rawCopy) 
) != "bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:94 - post-parse "bob < sip:bob@fo" ( toData(raw) ) 
!= "bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:95 - post-parse "bob < sip:bob@fo" ( 
toData(parsedCopy) ) != "bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "bob < sip:bob@fo" ( 
toData(raw) ) != "bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:107 - post-parse "bob < sip:bob@fo" ( 
toData(rawCopy) ) != "bob < sip:bob@foo> " ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test bob < sip:bob@foo>  <-> "bob"<sip:bob@foo>
--> Test  bob<sip:bob@foo> <-> "bob"<sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse " bob<sip:bob@foo" ( toData(raw) ) != 
" bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse " bob<sip:bob@foo" ( toData(rawCopy) 
) != " bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:94 - post-parse " bob<sip:bob@foo" ( toData(raw) ) 
!= " bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:95 - post-parse " bob<sip:bob@foo" ( 
toData(parsedCopy) ) != " bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:100 - dirty ""bob"<sip:bob@fo" ( toData(raw) ) != 
""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty ""bob"<sip:bob@fo" ( toData(dirtyCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw " bob<sip:bob@foo" ( 
toData(raw) ) != " bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:107 - post-parse " bob<sip:bob@foo" ( 
toData(rawCopy) ) != " bob<sip:bob@foo>" ( rawInput )
.\testParserCategories.cxx:109 - dirty ""bob"<sip:bob@fo" ( toData(rawCopy) ) 
!= ""bob"<sip:bob@foo>" ( parsedOutput )
<-- Test  bob<sip:bob@foo> <-> "bob"<sip:bob@foo>
--> Test sip:bob@foo <-> <sip:bob@foo>
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != "sip:bob@foo" ( 
rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != "sip:bob@foo" 
( rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != 
"sip:bob@foo" ( rawInput )
.\testParserCategories.cxx:100 - dirty "" ( toData(raw) ) != "<sip:bob@foo>" ( 
parsedOutput )
.\testParserCategories.cxx:101 - dirty "" ( toData(dirtyCopy) ) != 
"<sip:bob@foo>" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != 
"sip:bob@foo" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo" ( rawInput )
.\testParserCategories.cxx:109 - dirty "" ( toData(rawCopy) ) != 
"<sip:bob@foo>" ( parsedOutput )
<-- Test sip:bob@foo <-> <sip:bob@foo>
--> Test sip:bob@foo;foo <-> <sip:bob@foo>;foo
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:100 - dirty "<sip:bob@foo>;fo" ( toData(raw) ) != 
"<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "<sip:bob@foo>;fo" ( toData(dirtyCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo;foo" ( rawInput )
.\testParserCategories.cxx:109 - dirty "<sip:bob@foo>;fo" ( toData(rawCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
<-- Test sip:bob@foo;foo <-> <sip:bob@foo>;foo
--> Test sip:bob@foo; foo <-> <sip:bob@foo>;foo
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != "sip:bob@foo; 
foo" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo; foo" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != "sip:bob@foo; 
foo" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != 
"sip:bob@foo; foo" ( rawInput )
.\testParserCategories.cxx:100 - dirty "<sip:bob@foo>;fo" ( toData(raw) ) != 
"<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "<sip:bob@foo>;fo" ( toData(dirtyCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != 
"sip:bob@foo; foo" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo; foo" ( rawInput )
.\testParserCategories.cxx:109 - dirty "<sip:bob@foo>;fo" ( toData(rawCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
<-- Test sip:bob@foo; foo <-> <sip:bob@foo>;foo
--> Test sip:bob@foo;foo  <-> <sip:bob@foo>;foo
.\testParserCategories.cxx:88 - pre-parse "" ( toData(raw) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:94 - post-parse "" ( toData(raw) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:95 - post-parse "" ( toData(parsedCopy) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:100 - dirty "<sip:bob@foo>;fo" ( toData(raw) ) != 
"<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "<sip:bob@foo>;fo" ( toData(dirtyCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "" ( toData(raw) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:107 - post-parse "" ( toData(rawCopy) ) != 
"sip:bob@foo;foo " ( rawInput )
.\testParserCategories.cxx:109 - dirty "<sip:bob@foo>;fo" ( toData(rawCopy) ) 
!= "<sip:bob@foo>;foo" ( parsedOutput )
<-- Test sip:bob@foo;foo  <-> <sip:bob@foo>;foo
--> Test SIP/2.0/UDP biloxi.com <-> SIP/2.0/UDP biloxi.com
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP bilo" ( toData(rawCopy) 
) != "SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP bilo" ( toData(raw) ) 
!= "SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP bilo" ( 
toData(parsedCopy) ) != "SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP bilo" ( toData(dirtyCopy) ) 
!= "SIP/2.0/UDP biloxi.com" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP bilo" ( 
toData(raw) ) != "SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP bilo" ( 
toData(rawCopy) ) != "SIP/2.0/UDP biloxi.com" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP bilo" ( toData(rawCopy) ) 
!= "SIP/2.0/UDP biloxi.com" ( parsedOutput )
<-- Test SIP/2.0/UDP biloxi.com <-> SIP/2.0/UDP biloxi.com
--> Test SIP/2.0/UDP biloxi.com;branch=first <-> SIP/2.0/UDP 
biloxi.com;branch=first
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP bilo" ( toData(rawCopy) 
) != "SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP bilo" ( toData(raw) ) 
!= "SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP bilo" ( 
toData(parsedCopy) ) != "SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com;branch=first" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP bilo" ( toData(dirtyCopy) ) 
!= "SIP/2.0/UDP biloxi.com;branch=first" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP bilo" ( 
toData(raw) ) != "SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP bilo" ( 
toData(rawCopy) ) != "SIP/2.0/UDP biloxi.com;branch=first" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP bilo" ( toData(rawCopy) ) 
!= "SIP/2.0/UDP biloxi.com;branch=first" ( parsedOutput )
<-- Test SIP/2.0/UDP biloxi.com;branch=first <-> SIP/2.0/UDP 
biloxi.com;branch=first
--> Test sip/2.0/udp biloxi.com:5060;branch=first <-> sip/2.0/udp 
biloxi.com:5060;branch=first
.\testParserCategories.cxx:88 - pre-parse "sip/2.0/udp bilo" ( toData(raw) ) != 
"sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "sip/2.0/udp bilo" ( toData(rawCopy) 
) != "sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "sip/2.0/udp bilo" ( toData(raw) ) 
!= "sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "sip/2.0/udp bilo" ( 
toData(parsedCopy) ) != "sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:100 - dirty "sip/2.0/udp bilo" ( toData(raw) ) != 
"sip/2.0/udp biloxi.com:5060;branch=first" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "sip/2.0/udp bilo" ( toData(dirtyCopy) ) 
!= "sip/2.0/udp biloxi.com:5060;branch=first" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "sip/2.0/udp bilo" ( 
toData(raw) ) != "sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "sip/2.0/udp bilo" ( 
toData(rawCopy) ) != "sip/2.0/udp biloxi.com:5060;branch=first" ( rawInput )
.\testParserCategories.cxx:109 - dirty "sip/2.0/udp bilo" ( toData(rawCopy) ) 
!= "sip/2.0/udp biloxi.com:5060;branch=first" ( parsedOutput )
<-- Test sip/2.0/udp biloxi.com:5060;branch=first <-> sip/2.0/udp 
biloxi.com:5060;branch=first
--> Test SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK <-> SIP/2.0/UDP 
biloxi.com:5060;branch=z9hG4bK
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP bilo" ( toData(rawCopy) 
) != "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP bilo" ( toData(raw) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP bilo" ( 
toData(parsedCopy) ) != "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput 
)
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP bilo" ( toData(dirtyCopy) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP bilo" ( 
toData(raw) ) != "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP bilo" ( 
toData(rawCopy) ) != "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP bilo" ( toData(rawCopy) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK" ( parsedOutput )
<-- Test SIP/2.0/UDP biloxi.com:5060;branch=z9hG4bK <-> SIP/2.0/UDP 
biloxi.com:5060;branch=z9hG4bK
--> Test SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP bilo" ( toData(rawCopy) 
) != "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP bilo" ( toData(raw) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP bilo" ( 
toData(parsedCopy) ) != "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput 
)
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP bilo" ( toData(raw) ) != 
"SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP bilo" ( toData(dirtyCopy) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP bilo" ( 
toData(raw) ) != "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP bilo" ( 
toData(rawCopy) ) != "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP bilo" ( toData(rawCopy) ) 
!= "SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk" ( parsedOutput )
<-- Test SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk
--> Test SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk-999999- <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(parsedCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( parsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(dirtyCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-99999" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-" ( parsedOutput )
<-- Test SIP/2.0/UDP biloxi.com:5060;branch=Z9Hg4Bk-999999- <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-999999-
--> Test SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh
.\testParserCategories.cxx:88 - pre-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh"
( rawInput )
.\testParserCategories.cxx:89 - pre-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uh
oh" ( rawInput )
.\testParserCategories.cxx:94 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh"
 ( rawInput )
.\testParserCategories.cxx:95 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(parsedCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdea
d-uhoh" ( rawInput )
.\testParserCategories.cxx:100 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh" ( p
arsedOutput )
.\testParserCategories.cxx:101 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(dirtyCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uho
h" ( parsedOutput )
.\testParserCategories.cxx:104 - restored to raw "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(raw) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead
-uhoh" ( rawInput )
.\testParserCategories.cxx:107 - post-parse "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-
uhoh" ( rawInput )
.\testParserCategories.cxx:109 - dirty "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-52428" ( toData(rawCopy) ) != "SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh"
 ( parsedOutput )
<-- Test SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh <-> SIP/2.0/UDP 
biloxi.com:5060;branch=Z9Hg4Bk-524287-11-feedbeef-beefdead-uhoh

Raw header-field-value creation/deletion
0 microseconds

Auth creation/deletion
0 microseconds

Digest 
nonce="1305231689:fed475e952ee1d3ecaf60b17bce12218",algorithm=MD5,realm="localhost",qop="auth,auth-int"
25987 microseconds
encodes:
9998 microseconds

Digest 
username="derek",realm="localhost",nonce="1305231689:fed475e952ee1d3ecaf60b17bce12218",uri="sip:jason@localhost",response="88f519f04c2a09c500af88ff7bccdf52",cnonce="foo",nc=0000005D,q
op=auth-int,algorithm=MD5
43970 microseconds
encodes:
19002 microseconds

CSeq creation/deletion
1006 microseconds

9872643 INVITE
2007 microseconds
encodes:
2997 microseconds

1 INVITE
1997 microseconds
encodes:
3001 microseconds

CallId creation/deletion
982 microseconds

NOIUYCEOGoIUBaocuwyVCopiuVAbcs
1999 microseconds
encodes:
997 microseconds

Date creation/deletion
0 microseconds

Thu, 21 Feb 2002 13:02:03 GMT
3997 microseconds
encodes:
13998 microseconds

Expires creation/deletion
0 microseconds

3600
999 microseconds
encodes:
3997 microseconds

Mime creation/deletion
0 microseconds

application/rlmi+xml
1975 microseconds
encodes:
959 microseconds

application/sdp
1930 microseconds
encodes:
990 microseconds

NameAddr creation/deletion
998 microseconds

<sip:rls.example.com>
4965 microseconds
encodes:
3982 microseconds

<sip:rls.example.com;lr>
9998 microseconds
encodes:
4998 microseconds

<sipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsipsip:rls.example.com;lr>
15000 microseconds
encodes:
4932 microseconds

<sip:%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0%d1%8e%d1%89%d0%b8%d0%b9@xxxxxxxxxxx;lr>
12998 microseconds
encodes:
19999 microseconds

 "Derek" <sip:derek@localhost>;tag=16d1246e
10991 microseconds
encodes:
6898 microseconds

<sip:line1@192.0.2.2;transport=tcp>; 
reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000A95A0E128>"
21995 microseconds
encodes:
12935 microseconds

<sip:line1@192.0.2.2:5060;transport=tcp>; 
reg-id=1;+sip.instance="<urn:uuid:00000000-0000-1000-8000-000A95A0E128>"
23971 microseconds
encodes:
14974 microseconds

RequestLine creation/deletion
1013 microseconds

INVITE sip:bob@xxxxxxxxxxx SIP/2.0
4002 microseconds
encodes:
3896 microseconds

UNKNOWN sip:bob@xxxxxxxxxxx SIP/2.0
4998 microseconds
encodes:
3013 microseconds

StatusLine creation/deletion
0 microseconds

SIP/2.0 200 OK
1896 microseconds
encodes:
2970 microseconds

SIP/2.0 200 
OKokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokokok
966 microseconds
encodes:
3963 microseconds

NOTSIP/2.0 200 OK
1916 microseconds
encodes:
3018 microseconds

Via creation/deletion
981 microseconds

SIP/2.0/TCP 127.0.0.1:5060;branch=z9hG4bK-524287-1---307cd5596615cb2e;rport
16998 microseconds
encodes:
13010 microseconds


0 microseconds


997 microseconds
encodes:
979 microseconds
Assertion failed: !failed, file .\testParserCategories.cxx, line 3073