| // Copyright (c) 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/third_party/quiche/src/quic/core/qpack/offline/qpack_offline_decoder.h" |
| |
| #include <cstddef> |
| #include <iostream> |
| |
| #include "base/init_google.h" |
| #include "net/third_party/quiche/src/quic/platform/api/quic_logging.h" |
| #include "net/third_party/quiche/src/quic/platform/api/quic_string_piece.h" |
| |
| int main(int argc, char* argv[]) { |
| InitGoogle(argv[0], &argc, &argv, false); |
| |
| if (argc < 3 || argc % 2 != 1) { |
| QUIC_LOG(ERROR) << "Usage: " << argv[0] |
| << " input_filename expected_headers_filename ..."; |
| return 1; |
| } |
| |
| int i; |
| for (i = 0; 2 * i + 1 < argc; ++i) { |
| const quic::QuicStringPiece input_filename(argv[2 * i + 1]); |
| const quic::QuicStringPiece expected_headers_filename(argv[2 * i + 2]); |
| |
| // Every file represents a different connection, |
| // therefore every file needs a fresh decoding context. |
| quic::QpackOfflineDecoder decoder; |
| if (!decoder.DecodeAndVerifyOfflineData(input_filename, |
| expected_headers_filename)) { |
| return 1; |
| } |
| } |
| |
| std::cout << "Successfully verified " << i << " pairs of input files." |
| << std::endl; |
| |
| return 0; |
| } |