Re: [hybi] interop tests - fragments

Greg Wilkins <gregw@webtide.com> Mon, 07 March 2011 22:10 UTC

Return-Path: <gregw@intalio.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 0D8D03A687B for <hybi@core3.amsl.com>; Mon, 7 Mar 2011 14:10:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.587
X-Spam-Level:
X-Spam-Status: No, score=-2.587 tagged_above=-999 required=5 tests=[AWL=0.389, BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-1]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Z5Twp0XRc0yw for <hybi@core3.amsl.com>; Mon, 7 Mar 2011 14:10:24 -0800 (PST)
Received: from mail-vw0-f44.google.com (mail-vw0-f44.google.com [209.85.212.44]) by core3.amsl.com (Postfix) with ESMTP id 78B443A682C for <hybi@ietf.org>; Mon, 7 Mar 2011 14:10:24 -0800 (PST)
Received: by vws6 with SMTP id 6so4867792vws.31 for <hybi@ietf.org>; Mon, 07 Mar 2011 14:11:38 -0800 (PST)
MIME-Version: 1.0
Received: by 10.52.0.169 with SMTP id 9mr6156955vdf.303.1299535897354; Mon, 07 Mar 2011 14:11:37 -0800 (PST)
Sender: gregw@intalio.com
Received: by 10.52.169.39 with HTTP; Mon, 7 Mar 2011 14:11:37 -0800 (PST)
In-Reply-To: <4D7552FD.9090002@warmcat.com>
References: <1299520117.2606.130.camel@ds9.ducksong.com> <4D7552FD.9090002@warmcat.com>
Date: Tue, 08 Mar 2011 09:11:37 +1100
X-Google-Sender-Auth: bYHGl4fgqmN0-b7OiKShl-iv3hk
Message-ID: <AANLkTi=x-9hJCiB2dCk=N4YK2xo8x46_mp3zCJGN2afP@mail.gmail.com>
From: Greg Wilkins <gregw@webtide.com>
To: Andy Green <andy@warmcat.com>
Content-Type: multipart/alternative; boundary="20cf304346d688e59d049debc769"
Cc: hybi <hybi@ietf.org>
Subject: Re: [hybi] interop tests - fragments
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 07 Mar 2011 22:10:26 -0000

Andy,

I will write a test client and server to match.

Actually, I think we should come up with a list of standardized sub-protocol
names that match to tests we can do for compatibility, and then also test
production servers don't accidentally deploy tests like echo.

I noticed you have a protocol name of  lws-mirror-protocol  for an echo
server.

How about:

org.ietf.websocket.test-echo              - echo all frames
org.ietf.websocket.test-echo-assemble     - echo messages after assembling
all fragments
org.ietf.websocket.test-echo-fragment     - echo frames randomly fragmented

org.ietf.websocket.test-consume           - consume all messages. Every 1s
send a text message formatted as follows "frames=%d messages=%d bytes=%d
binary=%d"
org.ietf.websocket.test-produce           - produce messages of random size
and fragmentation


It would be really handy if protocol names could be parameterised, so in the
last instance we could do something like:

org.ietf.websocket.
test-produce;minMsg=16;maxMsg=4096;fragment=true;pause=50ms

we could then also just have test-echo and the assemble and fragment
behaviours could be parameters.

cheers



On 8 March 2011 08:49, Andy Green <andy@warmcat.com> wrote:
> On 03/07/2011 05:48 PM, Somebody in the thread at some point said:
>>
>> I'm looking to test with a server that generates and sends fragmented
>> messages. Anyone implement that?
>
> libwebsockets supports fragmentation now, I added a fragmentation test
> server and client test applet to confirm it's at least internally
> consistent.  Greg I dunno if you're interested to knock something similar
up
> for Jetty like you did for the test ping applet?
>
> At the moment I had the test app turn off compression on the link.
>
> http://git.warmcat.com/cgi-bin/cgit/libwebsockets/
>
> Here's the README about it -->
>
> Fraggle test app
> ----------------
>
> By default it runs in server mode
>
> $ libwebsockets-test-fraggle
> libwebsockets test fraggle
> (C) Copyright 2010-2011 Andy Green <andy@warmcat.com> licensed under
LGPL2.1
>  Compiled with SSL support, not using it
>  Listening on port 7681
> server sees client connect
> accepted v06 connection
> Spamming 360 random fragments
> Spamming session over, len = 371913. sum = 0x2D3C0AE
> Spamming 895 random fragments
> Spamming session over, len = 875970. sum = 0x6A74DA1
> ...
>
> You need to run a second session in client mode, you have to
> give the -c switch and the server address at least:
>
> $ libwebsockets-test-fraggle -c localhost
> libwebsockets test fraggle
> (C) Copyright 2010-2011 Andy Green <andy@warmcat.com> licensed under
LGPL2.1
>  Client mode
> Connecting to localhost:7681
> denied deflate-stream extension
> handshake OK for protocol fraggle-protocol
> client connects to server
> EOM received 371913 correctly from 360 fragments
> EOM received 875970 correctly from 895 fragments
> EOM received 247140 correctly from 258 fragments
> EOM received 695451 correctly from 692 fragments
> ...
>
> The fraggle test sends a random number up to 1024 fragmented websocket
> frames
> each of a random size between 1 and 2001 bytes in a single message, then
> sends
> a checksum and starts sending a new randomly sized and fragmented message.
>
> The fraggle test client receives the same message fragments and computes
the
> same checksum using websocket framing to see when the message has ended.
 It
> then accepts the server checksum message and compares that to its
checksum.
>
> -Andy
> _______________________________________________
> hybi mailing list
> hybi@ietf.org
> https://www.ietf.org/mailman/listinfo/hybi
>