|author||QUICHE team <email@example.com>||Fri Jul 23 17:40:17 2021 -0700|
|committer||Copybara-Service <firstname.lastname@example.org>||Fri Jul 23 17:40:52 2021 -0700|
Initialize SimpleRandom::buffer_offset_ in quic_test_utils A few QUIC tests seemed like they might have been failing on Chromium's Win 7 bots because quic_test_utils's SimpleRandom::RandUint64 was being accessed out of bounds.  After the discussion in crbug.com/1228245#c23, this seems like a red herring: the initial stack trace was corrupted (the waterfall bots in question were running with a low symbol_level). The issue seems like it was actually in quic::DefaultRandom, not quic::test::SimpleRandom. But, in any event, it seems like a safety improvement to initialize the buffer offset in SimpleRandom: this CL goes ahead and does so, even if it might not be necessary for addressing the crashes in question.  https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket.appspot.com/8840889728099773792/+/u/net_unittests/Deterministic_failure:_QuicTimeWaitListManagerTest.SendStatelessResetInResponseToShortHeaders__status_CRASH_ PiperOrigin-RevId: 386564749
QUICHE stands for QUIC, Http/2, Etc. It is Google‘s production-ready implementation of QUIC, HTTP/2, HTTP/3, and related protocols and tools. It powers Google’s servers, Chromium, Envoy, and other projects. It is actively developed and maintained.
The canonical open-source QUICHE repository is at https://quiche.googlesource.com/quiche.
To embed QUICHE in your project, platform APIs need to be implemented and build files need to be created. Note that it is on the QUICHE team's roadmap to include default implementation for all platform APIs and to open-source build files. In the meanwhile, take a look at open source embedders like Chromium and Envoy to get started:
QUICHE is only supported on little-endian platforms.