Subject: h2specd

From: Kazu Yamamoto (山本和彦) <[email-masked]>
Date: Fri, 05 Aug 2016 10:44:44 +0900 (JST)

Hello,

We IIJ-II have an intern student, Razvan Certezeanu (Cc:ed), this
year.  He is now implementing a testing tool, called h2specd, for the
HTTP/2 server side:

	https://github.com/Certerazvi/h2specd

Currently, only 12 test cases are provided and it is a little bit
unstable.  But I think this is a good start. He stays in Japan until
the end of August and concentrates to enhance h2specd. Any inputs are
welcome.

--Kazu

---

From: Ilya Grigorik <[email-masked]>
Date: Fri, 5 Aug 2016 16:04:41 -0700

Neat!

As an idea, and since h2 push is a hot topic... I'd be really nice if we
had some tests for that. Although, admittedly it'd be nice if we had
agreement on what those behaviors ought to be - e.g. see [1]. In absence of
that, perhaps even simple logging for what happens when such cases are
triggered would be a nice head start.

[1]
https://docs.google.com/document/d/1v3rjj0DMDTocUtZSjOwdwt8D-yhCw6R5SVaax4MPgMc/edit

---

From: Tom Bergan <[email-masked]>
Date: Mon, 8 Aug 2016 14:16:38 -0700

That is great! It would also be great to have tests in the other direction.

A thought on the implementation: instead of forking Go's entire "net/http"
library, I think you could just import "golang.org/x/net/http2", make an
http2.Framer, then have each test case send a (mostly) canned list of raw
frames, where each test case closes the connection after the test case
completes. This way, you avoid any peculiarities in Go's http.Server and
also avoid accidentally leaking state between tests.

---

From: Mike Bishop <[email-masked]>
Date: Mon, 8 Aug 2016 23:50:38 +0000

I like the idea, but I misunderstood the intent from your message.  I read it as a set of tests *for* an HTTP/2 server, but looking at the GitHub page, it appears to *be* an HTTP server that tests clients.  Is that correct?  If so, I'd like to see the reverse as well -- submitting similar cases to an HTTP/2 server to test compliance.

-----Original Message-----
From: Kazu Yamamoto [mailto:[email-masked]] 
Sent: Thursday, August 4, 2016 6:45 PM
To: [email-masked]
Cc: [email-masked]
Subject: h2specd

Hello,

We IIJ-II have an intern student, Razvan Certezeanu (Cc:ed), this year.  He is now implementing a testing tool, called h2specd, for the
HTTP/2 server side:

Currently, only 12 test cases are provided and it is a little bit unstable.  But I think this is a good start. He stays in Japan until the end of August and concentrates to enhance h2specd. Any inputs are welcome.

--Kazu

---

From: Matthew Kerwin <[email-masked]>
Date: Tue, 9 Aug 2016 10:15:12 +1000

On 9 August 2016 at 09:50, Mike Bishop <[email-masked]> wrote:

> I like the idea, but I misunderstood the intent from your message.  I read
> it as a set of tests *for* an HTTP/2 server, but looking at the GitHub
> page, it appears to *be* an HTTP server that tests clients.  Is that
> correct?  If so, I'd like to see the reverse as well -- submitting similar
> cases to an HTTP/2 server to test compliance.
>
>
​h2spec
already exists[1]; I use it to test my dev server.
h2spec*d* is, presumably the daemon/server equivalent.

Cheers

​[1]: https://github.com/summerwind/h2spec
-- 
  Matthew Kerwin
  http://matthew.kerwin.net.au/

---

From: Kazu Yamamoto (山本和彦) <[email-masked]>
Date: Tue, 09 Aug 2016 09:47:55 +0900 (JST)

Hi Mike,

> I like the idea, but I misunderstood the intent from your message.
> I read it as a set of tests *for* an HTTP/2 server, but looking at
> the GitHub page, it appears to *be* an HTTP server that tests
> clients.  Is that correct?  If so, I'd like to see the reverse as
> well -- submitting similar cases to an HTTP/2 server to test
> compliance.

I'm very sorry. You are right.

h2specd is a server to test *browsers*!

# I'm also a contributor to h2spec. I was confused when I wrote the
# message.

--Kazu