Coverage Report

Created: 2023-11-12 09:30

/proc/self/cwd/test/test_common/utility.h
Line
Count
Source (jump to first uncovered line)
1
#pragma once
2
3
#include <cstdlib>
4
#include <list>
5
#include <random>
6
#include <string>
7
#include <vector>
8
9
#include "envoy/api/api.h"
10
#include "envoy/buffer/buffer.h"
11
#include "envoy/network/address.h"
12
#include "envoy/stats/stats.h"
13
#include "envoy/stats/store.h"
14
#include "envoy/thread/thread.h"
15
#include "envoy/type/matcher/v3/string.pb.h"
16
#include "envoy/type/v3/percent.pb.h"
17
18
#include "source/common/buffer/buffer_impl.h"
19
#include "source/common/common/c_smart_ptr.h"
20
#include "source/common/common/empty_string.h"
21
#include "source/common/common/thread.h"
22
#include "source/common/config/decoded_resource_impl.h"
23
#include "source/common/config/opaque_resource_decoder_impl.h"
24
#include "source/common/http/header_map_impl.h"
25
#include "source/common/protobuf/message_validator_impl.h"
26
#include "source/common/protobuf/utility.h"
27
#include "source/common/stats/symbol_table.h"
28
29
#include "test/test_common/file_system_for_test.h"
30
#include "test/test_common/logging.h"
31
#include "test/test_common/printers.h"
32
#include "test/test_common/test_random_generator.h"
33
#include "test/test_common/test_time_system.h"
34
#include "test/test_common/thread_factory_for_test.h"
35
36
#include "absl/strings/string_view.h"
37
#include "absl/time/time.h"
38
#include "gmock/gmock.h"
39
#include "gtest/gtest.h"
40
41
using testing::_; // NOLINT(misc-unused-using-decls)
42
using testing::AssertionFailure;
43
using testing::AssertionResult;
44
using testing::AssertionSuccess;
45
using testing::Invoke; //  NOLINT(misc-unused-using-decls)
46
47
namespace Envoy {
48
49
#if defined(__has_feature) && __has_feature(thread_sanitizer)
50
#define TSAN_TIMEOUT_FACTOR 3
51
#elif defined(ENVOY_CONFIG_COVERAGE)
52
#define TSAN_TIMEOUT_FACTOR 3
53
#else
54
274
#define TSAN_TIMEOUT_FACTOR 1
55
#endif
56
57
/*
58
  Macro to use for validating that a statement throws the specified type of exception, and that
59
  the exception's what() method returns a string which is matched by the specified matcher.
60
  This allows for expectations such as:
61
62
  EXPECT_THAT_THROWS_MESSAGE(
63
      bad_function_call(),
64
      EnvoyException,
65
      AllOf(StartsWith("expected prefix"), HasSubstr("some substring")));
66
*/
67
#define EXPECT_THAT_THROWS_MESSAGE(statement, expected_exception, matcher)                         \
68
  try {                                                                                            \
69
    statement;                                                                                     \
70
    ADD_FAILURE() << "Exception should take place. It did not.";                                   \
71
  } catch (expected_exception & e) {                                                               \
72
    EXPECT_THAT(std::string(e.what()), matcher);                                                   \
73
  }
74
75
// Expect that the statement throws the specified type of exception with exactly the specified
76
// message.
77
#define EXPECT_THROW_WITH_MESSAGE(statement, expected_exception, message)                          \
78
  EXPECT_THAT_THROWS_MESSAGE(statement, expected_exception, ::testing::Eq(message))
79
80
// Expect that the statement throws the specified type of exception with a message containing a
81
// substring matching the specified regular expression (i.e. the regex doesn't have to match
82
// the entire message).
83
#define EXPECT_THROW_WITH_REGEX(statement, expected_exception, regex_str)                          \
84
  EXPECT_THAT_THROWS_MESSAGE(statement, expected_exception, ::testing::ContainsRegex(regex_str))
85
86
// Expect that the statement throws the specified type of exception with a message that does not
87
// contain any substring matching the specified regular expression.
88
#define EXPECT_THROW_WITHOUT_REGEX(statement, expected_exception, regex_str)                       \
89
  EXPECT_THAT_THROWS_MESSAGE(statement, expected_exception,                                        \
90
                             ::testing::Not(::testing::ContainsRegex(regex_str)))
91
92
// Expect that the statement hits an ENVOY_BUG containing the specified message.
93
#if defined(NDEBUG) || defined(ENVOY_CONFIG_COVERAGE)
94
// ENVOY_BUGs in release mode or in a coverage test log error.
95
#define EXPECT_ENVOY_BUG(statement, message) EXPECT_LOG_CONTAINS("error", message, statement)
96
#else
97
// ENVOY_BUGs in (non-coverage) debug mode is fatal.
98
#define EXPECT_ENVOY_BUG(statement, message)                                                       \
99
  EXPECT_DEBUG_DEATH(statement, ::testing::HasSubstr(message))
100
#endif
101
102
#define VERBOSE_EXPECT_NO_THROW(statement)                                                         \
103
  try {                                                                                            \
104
    statement;                                                                                     \
105
  } catch (EnvoyException & e) {                                                                   \
106
    ADD_FAILURE() << "Unexpected exception: " << std::string(e.what());                            \
107
  }
108
109
#define VERIFY_ASSERTION(statement)                                                                \
110
278
  do {                                                                                             \
111
278
    ::testing::AssertionResult status = statement;                                                 \
112
278
    if (!status) {                                                                                 \
113
0
      return status;                                                                               \
114
0
    }                                                                                              \
115
278
  } while (false)
116
117
// A convenience macro for testing Envoy deprecated features. This will disable the test when
118
// tests are built with --define deprecated_features=disabled to avoid the hard-failure mode for
119
// deprecated features. Sample usage is:
120
//
121
// TEST_F(FixtureName, DEPRECATED_FEATURE_TEST(TestName)) {
122
// ...
123
// }
124
#ifndef ENVOY_DISABLE_DEPRECATED_FEATURES
125
#define DEPRECATED_FEATURE_TEST(X) X
126
#else
127
#define DEPRECATED_FEATURE_TEST(X) DISABLED_##X
128
#endif
129
130
class TestEnvoyBug {
131
public:
132
0
  static void callEnvoyBug() { ENVOY_BUG(false, ""); }
133
};
134
135
// See https://github.com/envoyproxy/envoy/issues/21245.
136
enum class Http1ParserImpl {
137
  HttpParser, // http-parser from node.js
138
  BalsaParser // Balsa from QUICHE
139
};
140
141
class TestUtility {
142
public:
143
  /**
144
   * Compare 2 HeaderMaps.
145
   * @param lhs supplies HeaderMap 1.
146
   * @param rhs supplies HeaderMap 2.
147
   * @return TRUE if the HeaderMaps are equal, ignoring the order of the
148
   * headers, false if not.
149
   */
150
  static bool headerMapEqualIgnoreOrder(const Http::HeaderMap& lhs, const Http::HeaderMap& rhs);
151
152
  /**
153
   * Compare 2 buffers.
154
   * @param lhs supplies buffer 1.
155
   * @param rhs supplies buffer 2.
156
   * @return TRUE if the buffers contain equal content
157
   *         (i.e., if lhs.toString() == rhs.toString()), false if not.
158
   */
159
  static bool buffersEqual(const Buffer::Instance& lhs, const Buffer::Instance& rhs);
160
161
  /**
162
   * Compare 2 RawSlice pointers.
163
   * @param lhs supplies raw slice 1.
164
   * @param rhs supplies raw slice 2.
165
   * @param num_slices The number of slices to compare. It is assumed lhs and rhs have the same
166
   * number.
167
   * @return true if for num_slices, all lhs raw slices are equal to the corresponding rhs raw slice
168
   *         in length and a byte by byte data comparison. false otherwise
169
   */
170
  static bool rawSlicesEqual(const Buffer::RawSlice* lhs, const Buffer::RawSlice* rhs,
171
                             size_t num_slices);
172
173
  /**
174
   * Feed a buffer with random characters.
175
   * @param buffer supplies the buffer to be fed.
176
   * @param n_char number of characters that should be added to the supplied buffer.
177
   * @param seed seeds pseudo-random number generator (default = 0).
178
   */
179
  static void feedBufferWithRandomCharacters(Buffer::Instance& buffer, uint64_t n_char,
180
                                             uint64_t seed = 0);
181
182
  /**
183
   * Finds a stat in a vector with the given name.
184
   * @param name the stat name to look for.
185
   * @param v the vector of stats.
186
   * @return the stat
187
   */
188
18.6k
  template <typename T> static T findByName(const std::vector<T>& v, const std::string& name) {
189
18.6k
    auto pos = std::find_if(v.begin(), v.end(),
190
2.85M
                            [&name](const T& stat) -> bool { return stat->name() == name; });
Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::{lambda(Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> const&)#1}::operator()(Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> const&) const
Line
Count
Source
190
2.78M
                            [&name](const T& stat) -> bool { return stat->name() == name; });
Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::{lambda(Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> const&)#1}::operator()(Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> const&) const
Line
Count
Source
190
76.3k
                            [&name](const T& stat) -> bool { return stat->name() == name; });
Unexecuted instantiation: Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::{lambda(Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> const&)#1}::operator()(Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> const&) const
Unexecuted instantiation: Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::{lambda(Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> const&)#1}::operator()(Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> const&) const
191
18.6k
    if (pos == v.end()) {
192
0
      return nullptr;
193
0
    }
194
18.6k
    return *pos;
195
18.6k
  }
Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::Counter> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
188
17.8k
  template <typename T> static T findByName(const std::vector<T>& v, const std::string& name) {
189
17.8k
    auto pos = std::find_if(v.begin(), v.end(),
190
17.8k
                            [&name](const T& stat) -> bool { return stat->name() == name; });
191
17.8k
    if (pos == v.end()) {
192
0
      return nullptr;
193
0
    }
194
17.8k
    return *pos;
195
17.8k
  }
Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::Gauge> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
188
868
  template <typename T> static T findByName(const std::vector<T>& v, const std::string& name) {
189
868
    auto pos = std::find_if(v.begin(), v.end(),
190
868
                            [&name](const T& stat) -> bool { return stat->name() == name; });
191
868
    if (pos == v.end()) {
192
0
      return nullptr;
193
0
    }
194
868
    return *pos;
195
868
  }
Unexecuted instantiation: Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::TextReadout> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Unexecuted instantiation: Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> Envoy::TestUtility::findByName<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> >(std::__1::vector<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram>, std::__1::allocator<Envoy::Stats::RefcountPtr<Envoy::Stats::ParentHistogram> > > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
196
197
  /**
198
   * Find a counter in a stats store.
199
   * @param store supplies the stats store.
200
   * @param name supplies the name to search for.
201
   * @return Stats::CounterSharedPtr the counter or nullptr if there is none.
202
   */
203
  static Stats::CounterSharedPtr findCounter(Stats::Store& store, const std::string& name);
204
205
  /**
206
   * Find a gauge in a stats store.
207
   * @param store supplies the stats store.
208
   * @param name supplies the name to search for.
209
   * @return Stats::GaugeSharedPtr the gauge or nullptr if there is none.
210
   */
211
  static Stats::GaugeSharedPtr findGauge(Stats::Store& store, const std::string& name);
212
213
  /**
214
   * Find a histogram in a stats store.
215
   * @param store supplies the stats store.
216
   * @param name supplies the name to search for.
217
   * @return Stats::ParentHistogramSharedPtr the histogram or nullptr if there is none.
218
   */
219
  static Stats::ParentHistogramSharedPtr findHistogram(Stats::Store& store,
220
                                                       const std::string& name);
221
222
  /**
223
   * Wait for a counter to == a given value.
224
   * @param store supplies the stats store.
225
   * @param name supplies the name of the counter to wait for.
226
   * @param value supplies the value of the counter.
227
   * @param time_system the time system to use for waiting.
228
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
229
   * @param dispatcher the dispatcher to run non-blocking periodically during the wait.
230
   * @return AssertionSuccess() if the counter was == to the value within the timeout, else
231
   * AssertionFailure().
232
   */
233
  static AssertionResult
234
  waitForCounterEq(Stats::Store& store, const std::string& name, uint64_t value,
235
                   Event::TestTimeSystem& time_system,
236
                   std::chrono::milliseconds timeout = std::chrono::milliseconds::zero(),
237
                   Event::Dispatcher* dispatcher = nullptr);
238
239
  /**
240
   * Wait for a counter to >= a given value.
241
   * @param store supplies the stats store.
242
   * @param name counter name.
243
   * @param value target value.
244
   * @param time_system the time system to use for waiting.
245
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
246
   * @return AssertionSuccess() if the counter was >= the value within the timeout, else
247
   * AssertionFailure().
248
   */
249
  static AssertionResult
250
  waitForCounterGe(Stats::Store& store, const std::string& name, uint64_t value,
251
                   Event::TestTimeSystem& time_system,
252
                   std::chrono::milliseconds timeout = std::chrono::milliseconds::zero());
253
254
  /**
255
   * Wait for a proactive resource usage in the overload manager to be == a given value.
256
   * @param overload_state used to lookup corresponding proactive resource.
257
   * @param resource_name name of the proactive resource to lookup.
258
   * @param expected_value target resource usage value.
259
   * @param time_system the time system to use for waiting.
260
   * @param dispatcher the dispatcher to run non-blocking periodically during the wait.
261
   * @param timeout the maximum time to wait before timing out.
262
   * @return AssertionSuccess() if the resource usage was == to the value within the timeout, else
263
   * AssertionFailure().
264
   */
265
  static AssertionResult waitForProactiveOverloadResourceUsageEq(
266
      Server::ThreadLocalOverloadState& overload_state,
267
      const Server::OverloadProactiveResourceName resource_name, int64_t expected_value,
268
      Event::TestTimeSystem& time_system, Event::Dispatcher& dispatcher,
269
      std::chrono::milliseconds timeout);
270
271
  /**
272
   * Wait for a gauge to >= a given value.
273
   * @param store supplies the stats store.
274
   * @param name gauge name.
275
   * @param value target value.
276
   * @param time_system the time system to use for waiting.
277
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
278
   * @return AssertionSuccess() if the counter gauge >= to the value within the timeout, else
279
   * AssertionFailure().
280
   */
281
  static AssertionResult
282
  waitForGaugeGe(Stats::Store& store, const std::string& name, uint64_t value,
283
                 Event::TestTimeSystem& time_system,
284
                 std::chrono::milliseconds timeout = std::chrono::milliseconds::zero());
285
286
  /**
287
   * Wait for a gauge to == a given value.
288
   * @param store supplies the stats store.
289
   * @param name gauge name.
290
   * @param value target value.
291
   * @param time_system the time system to use for waiting.
292
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
293
   * @return AssertionSuccess() if the gauge was == to the value within the timeout, else
294
   * AssertionFailure().
295
   */
296
  static AssertionResult
297
  waitForGaugeEq(Stats::Store& store, const std::string& name, uint64_t value,
298
                 Event::TestTimeSystem& time_system,
299
                 std::chrono::milliseconds timeout = std::chrono::milliseconds::zero());
300
301
  /**
302
   * Wait for a gauge to be destroyed.
303
   * @param store supplies the stats store.
304
   * @param name gauge name.
305
   * @param time_system the time system to use for waiting.
306
   * @return AssertionSuccess() if the gauge is destroyed within a fixed timeout, else
307
   * AssertionFailure().
308
   */
309
  static AssertionResult waitForGaugeDestroyed(Stats::Store& store, const std::string& name,
310
                                               Event::TestTimeSystem& time_system);
311
312
  /**
313
   * Wait for a histogram to have samples.
314
   * @param store supplies the stats store.
315
   * @param name histogram name.
316
   * @param time_system the time system to use for waiting.
317
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
318
   * @return AssertionSuccess() if the histogram was populated within the timeout, else
319
   * AssertionFailure().
320
   */
321
  static AssertionResult waitUntilHistogramHasSamples(
322
      Stats::Store& store, const std::string& name, Event::TestTimeSystem& time_system,
323
      Event::Dispatcher& main_dispatcher,
324
      std::chrono::milliseconds timeout = std::chrono::milliseconds::zero());
325
326
  /**
327
   * Wait for a histogram to have samples.
328
   * @param store supplies the stats store.
329
   * @param name histogram name.
330
   * @param time_system the time system to use for waiting.
331
   * @param timeout the maximum time to wait before timing out, or 0 for no timeout.
332
   * @return AssertionSuccess() if the histogram was populated within the timeout, else
333
   * AssertionFailure().
334
   */
335
  static AssertionResult waitForNumHistogramSamplesGe(
336
      Stats::Store& store, const std::string& name, uint64_t min_sample_count_required,
337
      Event::TestTimeSystem& time_system, Event::Dispatcher& main_dispatcher,
338
      std::chrono::milliseconds timeout = std::chrono::milliseconds::zero());
339
340
  /**
341
   * Read a histogram's sample count from the main thread.
342
   * @param store supplies the stats store.
343
   * @param name histogram name.
344
   * @return uint64_t the sample count.
345
   */
346
  static uint64_t readSampleCount(Event::Dispatcher& main_dispatcher,
347
                                  const Stats::ParentHistogram& histogram);
348
  /**
349
   * Read a histogram's sum from the main thread.
350
   * @param store supplies the stats store.
351
   * @param name histogram name.
352
   * @return double the sample sum.
353
   */
354
  static double readSampleSum(Event::Dispatcher& main_dispatcher,
355
                              const Stats::ParentHistogram& histogram);
356
357
  /**
358
   * Find a readout in a stats store.
359
   * @param store supplies the stats store.
360
   * @param name supplies the name to search for.
361
   * @return Stats::TextReadoutSharedPtr the readout or nullptr if there is none.
362
   */
363
  static Stats::TextReadoutSharedPtr findTextReadout(Stats::Store& store, const std::string& name);
364
365
  /**
366
   * Convert a string list of IP addresses into a list of network addresses usable for DNS
367
   * response testing.
368
   */
369
  static std::list<Network::DnsResponse>
370
  makeDnsResponse(const std::list<std::string>& addresses,
371
                  std::chrono::seconds = std::chrono::seconds(6));
372
373
  /**
374
   * List files in a given directory path
375
   *
376
   * @param path directory path to list
377
   * @param recursive whether or not to traverse subdirectories
378
   * @return std::vector<std::string> filenames
379
   */
380
  static std::vector<std::string> listFiles(const std::string& path, bool recursive);
381
382
  /**
383
   * Return a unique temporary filename for use in tests.
384
   *
385
   * @return a filename based on the process id and current time.
386
   */
387
  static std::string uniqueFilename(absl::string_view prefix = "");
388
389
#if defined(ENVOY_ENABLE_FULL_PROTOS)
390
  /**
391
   * Compare two protos of the same type for equality.
392
   *
393
   * @param lhs proto on LHS.
394
   * @param rhs proto on RHS.
395
   * @param ignore_repeated_field_ordering if true, repeated field ordering will be ignored.
396
   * @return bool indicating whether the protos are equal.
397
   */
398
  static bool protoEqual(const Protobuf::Message& lhs, const Protobuf::Message& rhs,
399
765
                         bool ignore_repeated_field_ordering = false) {
400
765
    Protobuf::util::MessageDifferencer differencer;
401
765
    differencer.set_message_field_comparison(Protobuf::util::MessageDifferencer::EQUIVALENT);
402
765
    if (ignore_repeated_field_ordering) {
403
0
      differencer.set_repeated_field_comparison(Protobuf::util::MessageDifferencer::AS_SET);
404
0
    }
405
765
    return differencer.Compare(lhs, rhs);
406
765
  }
407
408
  static bool protoEqualIgnoringField(const Protobuf::Message& lhs, const Protobuf::Message& rhs,
409
0
                                      const std::string& field_to_ignore) {
410
0
    Protobuf::util::MessageDifferencer differencer;
411
0
    const Protobuf::FieldDescriptor* ignored_field =
412
0
        lhs.GetDescriptor()->FindFieldByName(field_to_ignore);
413
0
    ASSERT(ignored_field != nullptr, "Field name to ignore not found.");
414
0
    differencer.IgnoreField(ignored_field);
415
0
    return differencer.Compare(lhs, rhs);
416
0
  }
417
418
  /**
419
   * Compare two decoded resources for equality.
420
   *
421
   * @param lhs decoded resource on LHS.
422
   * @param rhs decoded resource on RHS.
423
   * @return bool indicating whether the decoded resources are equal.
424
   */
425
  static bool decodedResourceEq(const Config::DecodedResource& lhs,
426
0
                                const Config::DecodedResource& rhs) {
427
0
    return lhs.name() == rhs.name() && lhs.aliases() == rhs.aliases() &&
428
0
           lhs.version() == rhs.version() && lhs.hasResource() == rhs.hasResource() &&
429
0
           (!lhs.hasResource() || protoEqual(lhs.resource(), rhs.resource()));
430
0
  }
431
#endif
432
433
  /**
434
   * Symmetrically pad a string with '=' out to a desired length.
435
   * @param to_pad the string being padded around.
436
   * @param desired_length the length we want the padding to bring the string up to.
437
   * @return the padded string.
438
   */
439
  static std::string addLeftAndRightPadding(absl::string_view to_pad, int desired_length = 80);
440
441
  /**
442
   * Split a string.
443
   * @param source supplies the string to split.
444
   * @param split supplies the char to split on.
445
   * @return vector of strings computed after splitting `source` around all instances of `split`.
446
   */
447
  static std::vector<std::string> split(const std::string& source, char split);
448
449
  /**
450
   * Split a string.
451
   * @param source supplies the string to split.
452
   * @param split supplies the string to split on.
453
   * @param keep_empty_string result contains empty strings if the string starts or ends with
454
   * 'split', or if instances of 'split' are adjacent.
455
   * @return vector of strings computed after splitting `source` around all instances of `split`.
456
   */
457
  static std::vector<std::string> split(const std::string& source, const std::string& split,
458
                                        bool keep_empty_string = false);
459
460
#if defined(ENVOY_ENABLE_FULL_PROTOS)
461
  /**
462
   * Compare two RepeatedPtrFields of the same type for equality.
463
   *
464
   * @param lhs RepeatedPtrField on LHS.
465
   * @param rhs RepeatedPtrField on RHS.
466
   * @param ignore_ordering if ordering should be ignored. Note if true this turns
467
   *   comparison into an N^2 operation.
468
   * @return bool indicating whether the RepeatedPtrField are equal. TestUtility::protoEqual() is
469
   *              used for individual element testing.
470
   */
471
  template <typename ProtoType>
472
  static bool repeatedPtrFieldEqual(const Protobuf::RepeatedPtrField<ProtoType>& lhs,
473
                                    const Protobuf::RepeatedPtrField<ProtoType>& rhs,
474
                                    bool ignore_ordering = false) {
475
    if (lhs.size() != rhs.size()) {
476
      return false;
477
    }
478
479
    if (!ignore_ordering) {
480
      for (int i = 0; i < lhs.size(); ++i) {
481
        if (!TestUtility::protoEqual(lhs[i], rhs[i], /*ignore_ordering=*/false)) {
482
          return false;
483
        }
484
      }
485
486
      return true;
487
    }
488
    using ProtoList = std::list<std::unique_ptr<const Protobuf::Message>>;
489
    // Iterate through using protoEqual as ignore_ordering is true, and fields
490
    // in the sub-protos may also be out of order.
491
    ProtoList lhs_list =
492
        RepeatedPtrUtil::convertToConstMessagePtrContainer<ProtoType, ProtoList>(lhs);
493
    ProtoList rhs_list =
494
        RepeatedPtrUtil::convertToConstMessagePtrContainer<ProtoType, ProtoList>(rhs);
495
    while (!lhs_list.empty()) {
496
      bool found = false;
497
      for (auto it = rhs_list.begin(); it != rhs_list.end(); ++it) {
498
        if (TestUtility::protoEqual(*lhs_list.front(), **it,
499
                                    /*ignore_ordering=*/true)) {
500
          lhs_list.pop_front();
501
          rhs_list.erase(it);
502
          found = true;
503
          break;
504
        }
505
      }
506
      if (!found) {
507
        return false;
508
      }
509
    }
510
    return true;
511
  }
512
513
  template <class ProtoType>
514
  static AssertionResult
515
  assertRepeatedPtrFieldEqual(const Protobuf::RepeatedPtrField<ProtoType>& lhs,
516
                              const Protobuf::RepeatedPtrField<ProtoType>& rhs,
517
                              bool ignore_ordering = false) {
518
    if (!repeatedPtrFieldEqual(lhs, rhs, ignore_ordering)) {
519
      return AssertionFailure() << RepeatedPtrUtil::debugString(lhs) << " does not match "
520
                                << RepeatedPtrUtil::debugString(rhs);
521
    }
522
523
    return AssertionSuccess();
524
  }
525
#endif
526
527
  /**
528
   * Returns a "novel" IPv4 loopback address, if available.
529
   * For many tests, we want a loopback address other than 127.0.0.1 where possible. For some
530
   * platforms such as macOS, only 127.0.0.1 is available for IPv4 loopback.
531
   *
532
   * @return string 127.0.0.x , where x is "1" for macOS and "9" otherwise.
533
   */
534
0
  static std::string getIpv4Loopback() {
535
0
#ifdef __APPLE__
536
0
    return "127.0.0.1";
537
0
#else
538
0
    return "127.0.0.9";
539
0
#endif
540
0
  }
541
542
  // Allows pretty printed test names.
543
0
  static std::string http1ParserImplToString(Http1ParserImpl impl) {
544
0
    switch (impl) {
545
0
    case Http1ParserImpl::HttpParser:
546
0
      return "HttpParser";
547
0
    case Http1ParserImpl::BalsaParser:
548
0
      return "BalsaParser";
549
0
    }
550
0
    return "UnknownHttp1Impl";
551
0
  }
552
553
0
  static std::string ipVersionToString(Network::Address::IpVersion ip_version) {
554
0
    return ip_version == Network::Address::IpVersion::v4 ? "IPv4" : "IPv6";
555
0
  }
556
557
  // Allows pretty printed test names for TEST_P using TestEnvironment::getIpVersionsForTest().
558
  //
559
  // Tests using this will be of the form IpVersions/SslSocketTest.HalfClose/IPv4
560
  // instead of IpVersions/SslSocketTest.HalfClose/1
561
  static std::string
562
0
  ipTestParamsToString(const ::testing::TestParamInfo<Network::Address::IpVersion>& params) {
563
0
    return ipVersionToString(params.param);
564
0
  }
565
566
  /**
567
   * Return flip-ordered bytes.
568
   * @param bytes input bytes.
569
   * @return Type flip-ordered bytes.
570
   */
571
  template <class Type> static Type flipOrder(const Type& bytes) {
572
    Type result{0};
573
    Type data = bytes;
574
    for (Type i = 0; i < sizeof(Type); i++) {
575
      result <<= 8;
576
      result |= (data & Type(0xFF));
577
      data >>= 8;
578
    }
579
    return result;
580
  }
581
582
  static absl::Time parseTime(const std::string& input, const std::string& input_format);
583
  static std::string formatTime(const absl::Time input, const std::string& output_format);
584
  static std::string formatTime(const SystemTime input, const std::string& output_format);
585
  static std::string convertTime(const std::string& input, const std::string& input_format,
586
                                 const std::string& output_format);
587
588
  static constexpr std::chrono::milliseconds DefaultTimeout =
589
      std::chrono::milliseconds(10000) * TSAN_TIMEOUT_FACTOR;
590
591
  /**
592
   * Return a prefix string matcher.
593
   * @param string prefix.
594
   * @return Object StringMatcher.
595
   */
596
0
  static const envoy::type::matcher::v3::StringMatcher createPrefixMatcher(std::string str) {
597
0
    envoy::type::matcher::v3::StringMatcher matcher;
598
0
    matcher.set_prefix(str);
599
0
    return matcher;
600
0
  }
601
602
  /**
603
   * Return an exact string matcher.
604
   * @param string exact.
605
   * @return Object StringMatcher.
606
   */
607
0
  static const envoy::type::matcher::v3::StringMatcher createExactMatcher(std::string str) {
608
0
    envoy::type::matcher::v3::StringMatcher matcher;
609
0
    matcher.set_exact(str);
610
0
    return matcher;
611
0
  }
612
613
  /**
614
   * Return a regex string matcher.
615
   * @param string exact.
616
   * @return Object StringMatcher.
617
   */
618
0
  static const envoy::type::matcher::v3::StringMatcher createRegexMatcher(std::string str) {
619
0
    envoy::type::matcher::v3::StringMatcher matcher;
620
0
    auto* regex = matcher.mutable_safe_regex();
621
0
    regex->mutable_google_re2();
622
0
    regex->set_regex(str);
623
0
    return matcher;
624
0
  }
625
626
  /**
627
   * Checks that passed gauges have a value of 0. Gauges can be omitted from
628
   * this check by modifying the regex that matches gauge names in the
629
   * implementation.
630
   *
631
   * @param vector of gauges to check.
632
   * @return bool indicating that passed gauges not matching the omitted regex have a value of 0.
633
   */
634
  static bool gaugesZeroed(const std::vector<Stats::GaugeSharedPtr>& gauges);
635
  static bool gaugesZeroed(
636
      const std::vector<std::pair<absl::string_view, Stats::PrimitiveGaugeReference>>& gauges);
637
638
  /**
639
   * Returns the members of gauges that are not zero. Uses the same regex filter as gaugesZeroed().
640
   */
641
  static std::string nonZeroedGauges(const std::vector<Stats::GaugeSharedPtr>& gauges);
642
643
  template <class MessageType>
644
  static inline MessageType anyConvert(const ProtobufWkt::Any& message) {
645
    return MessageUtil::anyConvert<MessageType>(message);
646
  }
647
648
  template <class MessageType>
649
92.3k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
92.3k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
92.3k
  }
void Envoy::TestUtility::validate<test::common::http::CodecImplFuzzTestCase>(test::common::http::CodecImplFuzzTestCase const&, bool)
Line
Count
Source
649
15.5k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
15.5k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
15.5k
  }
void Envoy::TestUtility::validate<test::common::substitution::TestCase>(test::common::substitution::TestCase const&, bool)
Line
Count
Source
649
981
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
981
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
981
  }
void Envoy::TestUtility::validate<test::common::http::http2::HpackTestCase>(test::common::http::http2::HpackTestCase const&, bool)
Line
Count
Source
649
2.87k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
2.87k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
2.87k
  }
void Envoy::TestUtility::validate<test::common::upstream::RandomLoadBalancerTestCase>(test::common::upstream::RandomLoadBalancerTestCase const&, bool)
Line
Count
Source
649
501
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
501
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
501
  }
void Envoy::TestUtility::validate<test::common::http::PathUtilityTestCase>(test::common::http::PathUtilityTestCase const&, bool)
Line
Count
Source
649
810
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
810
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
810
  }
void Envoy::TestUtility::validate<test::extensions::filters::listener::original_src::OriginalSrcTestCase>(test::extensions::filters::listener::original_src::OriginalSrcTestCase const&, bool)
Line
Count
Source
649
763
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
763
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
763
  }
void Envoy::TestUtility::validate<test::common::router::RouteTestCase>(test::common::router::RouteTestCase const&, bool)
Line
Count
Source
649
14.3k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
14.3k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
14.3k
  }
void Envoy::TestUtility::validate<test::extensions::http::header_validators::envoy_default::PathNormalizerFuzzTestCase>(test::extensions::http::header_validators::envoy_default::PathNormalizerFuzzTestCase const&, bool)
Line
Count
Source
649
681
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
681
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
681
  }
void Envoy::TestUtility::validate<test::extensions::filters::listener::proxy_protocol::ProxyProtocolTestCase>(test::extensions::filters::listener::proxy_protocol::ProxyProtocolTestCase const&, bool)
Line
Count
Source
649
12
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
12
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
12
  }
void Envoy::TestUtility::validate<envoy::extensions::filters::network::ext_authz::ExtAuthzTestCase>(envoy::extensions::filters::network::ext_authz::ExtAuthzTestCase const&, bool)
Line
Count
Source
649
2
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
2
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
2
  }
Unexecuted instantiation: void Envoy::TestUtility::validate<test::extensions::filters::listener::FilterFuzzWithDataTestCase>(test::extensions::filters::listener::FilterFuzzWithDataTestCase const&, bool)
void Envoy::TestUtility::validate<envoy::extensions::filters::network::local_ratelimit::LocalRateLimitTestCase>(envoy::extensions::filters::network::local_ratelimit::LocalRateLimitTestCase const&, bool)
Line
Count
Source
649
1.17k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
1.17k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
1.17k
  }
void Envoy::TestUtility::validate<test::common::upstream::RoundRobinLoadBalancerTestCase>(test::common::upstream::RoundRobinLoadBalancerTestCase const&, bool)
Line
Count
Source
649
1.06k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
1.06k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
1.06k
  }
void Envoy::TestUtility::validate<test::extensions::filters::network::FilterFuzzTestCase>(test::extensions::filters::network::FilterFuzzTestCase const&, bool)
Line
Count
Source
649
8.13k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
8.13k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
8.13k
  }
void Envoy::TestUtility::validate<test::common::http::ConnManagerImplTestCase>(test::common::http::ConnManagerImplTestCase const&, bool)
Line
Count
Source
649
4.11k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
4.11k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
4.11k
  }
void Envoy::TestUtility::validate<test::common::router::TestCase>(test::common::router::TestCase const&, bool)
Line
Count
Source
649
8.18k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
8.18k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
8.18k
  }
void Envoy::TestUtility::validate<test::server::config_validation::XdsTestCase>(test::server::config_validation::XdsTestCase const&, bool)
Line
Count
Source
649
11
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
11
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
11
  }
void Envoy::TestUtility::validate<test::extensions::filters::listener::tls_inspector::TlsInspectorTestCase>(test::extensions::filters::listener::tls_inspector::TlsInspectorTestCase const&, bool)
Line
Count
Source
649
14
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
14
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
14
  }
void Envoy::TestUtility::validate<test::extensions::filters::listener::FilterFuzzTestCase>(test::extensions::filters::listener::FilterFuzzTestCase const&, bool)
Line
Count
Source
649
769
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
769
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
769
  }
void Envoy::TestUtility::validate<test::extensions::filters::http::ext_proc::ExtProcGrpcTestCase>(test::extensions::filters::http::ext_proc::ExtProcGrpcTestCase const&, bool)
Line
Count
Source
649
1.10k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
1.10k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
1.10k
  }
void Envoy::TestUtility::validate<test::common::upstream::HealthCheckTestCase>(test::common::upstream::HealthCheckTestCase const&, bool)
Line
Count
Source
649
4.87k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
4.87k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
4.87k
  }
void Envoy::TestUtility::validate<envoy::config::bootstrap::v3::Bootstrap>(envoy::config::bootstrap::v3::Bootstrap const&, bool)
Line
Count
Source
649
2.89k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
2.89k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
2.89k
  }
void Envoy::TestUtility::validate<envoy::extensions::filters::http::ext_proc::unit_test_fuzz::ExtProcUnitTestCase>(envoy::extensions::filters::http::ext_proc::unit_test_fuzz::ExtProcUnitTestCase const&, bool)
Line
Count
Source
649
4.22k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
4.22k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
4.22k
  }
void Envoy::TestUtility::validate<envoy::extensions::filters::http::jwt_authn::JwtAuthnFuzzInput>(envoy::extensions::filters::http::jwt_authn::JwtAuthnFuzzInput const&, bool)
Line
Count
Source
649
8.51k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
8.51k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
8.51k
  }
void Envoy::TestUtility::validate<test::common::upstream::LeastRequestLoadBalancerTestCase>(test::common::upstream::LeastRequestLoadBalancerTestCase const&, bool)
Line
Count
Source
649
1.10k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
1.10k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
1.10k
  }
void Envoy::TestUtility::validate<test::extensions::filters::http::FilterFuzzTestCase>(test::extensions::filters::http::FilterFuzzTestCase const&, bool)
Line
Count
Source
649
6.36k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
6.36k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
6.36k
  }
void Envoy::TestUtility::validate<test::extensions::filters::common::expr::EvaluatorTestCase>(test::extensions::filters::common::expr::EvaluatorTestCase const&, bool)
Line
Count
Source
649
3.35k
  static void validate(const MessageType& message, bool recurse_into_any = false) {
650
3.35k
    MessageUtil::validate(message, ProtobufMessage::getStrictValidationVisitor(), recurse_into_any);
651
3.35k
  }
652
653
  template <class MessageType>
654
  static const MessageType& downcastAndValidate(const Protobuf::Message& config) {
655
    return MessageUtil::downcastAndValidate<MessageType>(
656
        config, ProtobufMessage::getStrictValidationVisitor());
657
  }
658
659
  /**
660
   * Extract the Protobuf binary format of a google.protobuf.Message as a string.
661
   * @param message message of type type.googleapis.com/google.protobuf.Message.
662
   * @return std::string of the Protobuf binary object.
663
   */
664
2.64k
  static std::string getProtobufBinaryStringFromMessage(const Protobuf::Message& message) {
665
2.64k
    std::string pb_binary_str;
666
2.64k
    pb_binary_str.reserve(message.ByteSizeLong());
667
2.64k
    message.SerializeToString(&pb_binary_str);
668
2.64k
    return pb_binary_str;
669
2.64k
  }
670
671
  template <class MessageType>
672
  static Config::DecodedResourcesWrapper
673
  decodeResources(std::initializer_list<MessageType> resources,
674
                  const std::string& name_field = "name") {
675
    Config::DecodedResourcesWrapper decoded_resources;
676
    for (const auto& resource : resources) {
677
      auto owned_resource = std::make_unique<MessageType>(resource);
678
      decoded_resources.owned_resources_.emplace_back(new Config::DecodedResourceImpl(
679
          std::move(owned_resource), MessageUtil::getStringField(resource, name_field), {}, ""));
680
      decoded_resources.refvec_.emplace_back(*decoded_resources.owned_resources_.back());
681
    }
682
    return decoded_resources;
683
  }
684
685
  template <class MessageType>
686
  static Config::DecodedResourcesWrapper decodeResources(std::vector<MessageType> resources,
687
                                                         const std::string& name_field = "name") {
688
    Config::DecodedResourcesWrapper decoded_resources;
689
    for (const auto& resource : resources) {
690
      auto owned_resource = std::make_unique<MessageType>(resource);
691
      decoded_resources.owned_resources_.emplace_back(new Config::DecodedResourceImpl(
692
          std::move(owned_resource), MessageUtil::getStringField(resource, name_field), {}, ""));
693
      decoded_resources.refvec_.emplace_back(*decoded_resources.owned_resources_.back());
694
    }
695
    return decoded_resources;
696
  }
697
698
  template <class MessageType>
699
  static Config::DecodedResourcesWrapper
700
  decodeResources(const Protobuf::RepeatedPtrField<ProtobufWkt::Any>& resources,
701
                  const std::string& version, const std::string& name_field = "name") {
702
    TestOpaqueResourceDecoderImpl<MessageType> resource_decoder(name_field);
703
    return Config::DecodedResourcesWrapper(resource_decoder, resources, version);
704
  }
705
706
  template <class MessageType>
707
  static Config::DecodedResourcesWrapper
708
  decodeResources(const envoy::service::discovery::v3::DiscoveryResponse& resources,
709
                  const std::string& name_field = "name") {
710
    return decodeResources<MessageType>(resources.resources(), resources.version_info(),
711
                                        name_field);
712
  }
713
714
  template <class MessageType>
715
  static Config::DecodedResourcesWrapper decodeResources(
716
      const Protobuf::RepeatedPtrField<envoy::service::discovery::v3::Resource>& resources,
717
      const std::string& name_field = "name") {
718
    Config::DecodedResourcesWrapper decoded_resources;
719
    TestOpaqueResourceDecoderImpl<MessageType> resource_decoder(name_field);
720
    for (const auto& resource : resources) {
721
      decoded_resources.owned_resources_.emplace_back(
722
          new Config::DecodedResourceImpl(resource_decoder, resource));
723
      decoded_resources.refvec_.emplace_back(*decoded_resources.owned_resources_.back());
724
    }
725
    return decoded_resources;
726
  }
727
728
  template <typename Current>
729
  class TestOpaqueResourceDecoderImpl : public Config::OpaqueResourceDecoderImpl<Current> {
730
  public:
731
    TestOpaqueResourceDecoderImpl(absl::string_view name_field)
732
        : Config::OpaqueResourceDecoderImpl<Current>(ProtobufMessage::getStrictValidationVisitor(),
733
                                                     name_field) {}
734
  };
735
736
  /**
737
   * Returns the string representation of a envoy::config::core::v3::ApiVersion.
738
   *
739
   * @param api_version to be converted.
740
   * @return std::string representation of envoy::config::core::v3::ApiVersion.
741
   */
742
  static std::string
743
0
  getVersionStringFromApiVersion(envoy::config::core::v3::ApiVersion api_version) {
744
0
    switch (api_version) {
745
0
    case envoy::config::core::v3::ApiVersion::AUTO:
746
0
      return "AUTO";
747
0
    case envoy::config::core::v3::ApiVersion::V2:
748
0
      return "V2";
749
0
    case envoy::config::core::v3::ApiVersion::V3:
750
0
      return "V3";
751
0
    default:
752
0
      PANIC("reached unexpected code");
753
0
    }
754
0
  }
755
756
#ifdef ENVOY_ENABLE_YAML
757
  /**
758
   * Compare two JSON strings serialized from ProtobufWkt::Struct for equality. When two identical
759
   * ProtobufWkt::Struct are serialized into JSON strings, the results have the same set of
760
   * properties (values), but the positions may be different.
761
   *
762
   * @param lhs JSON string on LHS.
763
   * @param rhs JSON string on RHS.
764
   * @param support_root_array Whether to support parsing JSON arrays.
765
   * @return bool indicating whether the JSON strings are equal.
766
   */
767
  static bool jsonStringEqual(const std::string& lhs, const std::string& rhs,
768
0
                              bool support_root_array = false) {
769
0
    if (!support_root_array) {
770
0
      return protoEqual(jsonToStruct(lhs), jsonToStruct(rhs));
771
0
    }
772
0
773
0
    return protoEqual(jsonArrayToStruct(lhs), jsonArrayToStruct(rhs));
774
0
  }
775
776
  /**
777
   * Return typed proto message object for YAML.
778
   * @param yaml YAML string.
779
   * @return MessageType parsed from yaml.
780
   */
781
  template <class MessageType> static MessageType parseYaml(const std::string& yaml) {
782
    MessageType message;
783
    TestUtility::loadFromYaml(yaml, message);
784
    return message;
785
  }
786
787
  // Strict variants of Protobuf::MessageUtil
788
0
  static void loadFromJson(const std::string& json, Protobuf::Message& message) {
789
0
    MessageUtil::loadFromJson(json, message, ProtobufMessage::getStrictValidationVisitor());
790
0
  }
791
792
0
  static void loadFromJson(const std::string& json, ProtobufWkt::Struct& message) {
793
0
    MessageUtil::loadFromJson(json, message);
794
0
  }
795
796
4.13k
  static void loadFromYaml(const std::string& yaml, Protobuf::Message& message) {
797
4.13k
    MessageUtil::loadFromYaml(yaml, message, ProtobufMessage::getStrictValidationVisitor());
798
4.13k
  }
799
800
0
  static void loadFromFile(const std::string& path, Protobuf::Message& message, Api::Api& api) {
801
0
    MessageUtil::loadFromFile(path, message, ProtobufMessage::getStrictValidationVisitor(), api);
802
0
  }
803
804
0
  static void jsonConvert(const Protobuf::Message& source, Protobuf::Message& dest) {
805
0
    // Explicit round-tripping to support conversions inside tests between arbitrary messages as a
806
0
    // convenience.
807
0
    ProtobufWkt::Struct tmp;
808
0
    MessageUtil::jsonConvert(source, tmp);
809
0
    MessageUtil::jsonConvert(tmp, ProtobufMessage::getStrictValidationVisitor(), dest);
810
0
  }
811
812
0
  static ProtobufWkt::Struct jsonToStruct(const std::string& json) {
813
0
    ProtobufWkt::Struct message;
814
0
    MessageUtil::loadFromJson(json, message);
815
0
    return message;
816
0
  }
817
818
0
  static ProtobufWkt::Struct jsonArrayToStruct(const std::string& json) {
819
0
    // Hacky: add a surrounding root message, allowing JSON to be parsed into a struct.
820
0
    std::string root_message = absl::StrCat("{ \"testOnlyArrayRoot\": ", json, "}");
821
0
822
0
    ProtobufWkt::Struct message;
823
0
    MessageUtil::loadFromJson(root_message, message);
824
0
    return message;
825
0
  }
826
827
  template <class MessageType>
828
0
  static void loadFromYamlAndValidate(const std::string& yaml, MessageType& message) {
829
0
    MessageUtil::loadFromYamlAndValidate(yaml, message,
830
0
                                         ProtobufMessage::getStrictValidationVisitor());
831
0
  }
832
#endif
833
};
834
835
/**
836
 * Wraps the common case of having a cross-thread "one shot" ready condition.
837
 *
838
 * It functions like absl::Notification except the usage of notifyAll() appears
839
 * to trigger tighter simultaneous wakeups in multiple threads, resulting in
840
 * more contentions, e.g. for BM_CreateRace in
841
 * ../common/stats/symbol_table_speed_test.cc.
842
 *
843
 * See
844
 *     https://github.com/abseil/abseil-cpp/blob/master/absl/synchronization/notification.h
845
 * for the absl impl, which appears to result in fewer contentions (and in
846
 * tests we want contentions).
847
 */
848
class ConditionalInitializer {
849
public:
850
  /**
851
   * Set the conditional to ready.
852
   */
853
  void setReady();
854
855
  /**
856
   * Block until the conditional is ready, will return immediately if it is already ready. This
857
   * routine will also reset ready_ so that the initializer can be used again. setReady() should
858
   * only be called once in between a call to waitReady().
859
   */
860
  void waitReady();
861
862
  /**
863
   * Waits until ready; does not reset it. This variation is immune to spurious
864
   * condvar wakeups, and is also suitable for having multiple threads wait on
865
   * a common condition.
866
   */
867
  void wait();
868
869
private:
870
  absl::Mutex mutex_;
871
  bool ready_ ABSL_GUARDED_BY(mutex_){false};
872
};
873
874
namespace Tracing {
875
876
class TestTraceContextImpl : public Tracing::TraceContext {
877
public:
878
0
  TestTraceContextImpl(const std::initializer_list<std::pair<std::string, std::string>>& values) {
879
0
    for (const auto& value : values) {
880
0
      context_map_[value.first] = value.second;
881
0
    }
882
0
  }
883
0
  absl::string_view protocol() const override { return context_protocol_; }
884
0
  absl::string_view host() const override { return context_host_; }
885
0
  absl::string_view path() const override { return context_path_; }
886
0
  absl::string_view method() const override { return context_method_; }
887
0
  void forEach(IterateCallback callback) const override {
888
0
    for (const auto& pair : context_map_) {
889
0
      if (!callback(pair.first, pair.second)) {
890
0
        break;
891
0
      }
892
0
    }
893
0
  }
894
0
  absl::optional<absl::string_view> getByKey(absl::string_view key) const override {
895
0
    auto iter = context_map_.find(key);
896
0
    if (iter == context_map_.end()) {
897
0
      return absl::nullopt;
898
0
    }
899
0
    return iter->second;
900
0
  }
901
0
  void setByKey(absl::string_view key, absl::string_view val) override {
902
0
    context_map_.insert({std::string(key), std::string(val)});
903
0
  }
904
0
  void setByReferenceKey(absl::string_view key, absl::string_view val) override {
905
0
    setByKey(key, val);
906
0
  }
907
0
  void setByReference(absl::string_view key, absl::string_view val) override { setByKey(key, val); }
908
0
  void removeByKey(absl::string_view key) override { context_map_.erase(std::string(key)); }
909
910
  std::string context_protocol_;
911
  std::string context_host_;
912
  std::string context_path_;
913
  std::string context_method_;
914
  absl::flat_hash_map<std::string, std::string> context_map_;
915
};
916
917
} // namespace Tracing
918
919
namespace Http {
920
921
/**
922
 * All of the inline header functions that just pass through to the child header map.
923
 */
924
#define DEFINE_TEST_INLINE_HEADER_FUNCS(name)                                                      \
925
5.09M
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ClientTraceId() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyDownstreamServiceCluster() const
Line
Count
Source
925
9
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::EnvoyDownstreamServiceNode() const
Line
Count
Source
925
3
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyExternalAddress() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyForceTrace() const
Line
Count
Source
925
115k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::EnvoyHedgeOnPerTryTimeout() const
Line
Count
Source
925
6
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::EnvoyInternalRequest() const
Line
Count
Source
925
57
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyIpTags() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyRetryOn() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyRetryGrpcOn() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyRetriableStatusCodes() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyRetriableHeaderNames() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyIsTimeoutRetry() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyOriginalPath() const
Line
Count
Source
925
11.2k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyOriginalUrl() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyUpstreamAltStatName() const
Line
Count
Source
925
6
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::EnvoyUpstreamRequestTimeoutAltResponse() const
Line
Count
Source
925
6
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Expect() const
Line
Count
Source
925
7
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ForwardedClientCert() const
Envoy::Http::TestRequestHeaderMapImpl::ForwardedFor() const
Line
Count
Source
925
60.7k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ForwardedHost() const
Envoy::Http::TestRequestHeaderMapImpl::ForwardedProto() const
Line
Count
Source
925
60.7k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::GrpcTimeout() const
Line
Count
Source
925
170k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Host() const
Line
Count
Source
925
730k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Method() const
Line
Count
Source
925
2.18M
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Path() const
Line
Count
Source
925
530k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Protocol() const
Line
Count
Source
925
1.21k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Scheme() const
Line
Count
Source
925
231k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::TE() const
Envoy::Http::TestRequestHeaderMapImpl::UserAgent() const
Line
Count
Source
925
663
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyExpectedRequestTimeoutMs() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyMaxRetries() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyUpstreamRequestTimeoutMs() const
Line
Count
Source
925
6
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyUpstreamRequestPerTryTimeoutMs() const
Envoy::Http::TestRequestHeaderMapImpl::EnvoyUpstreamStreamDurationMs() const
Line
Count
Source
925
6
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ForwardedPort() const
Envoy::Http::TestRequestHeaderMapImpl::Connection() const
Line
Count
Source
925
172k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ContentType() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyDecoratorOperation() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::KeepAlive() const
Envoy::Http::TestRequestHeaderMapImpl::ProxyConnection() const
Line
Count
Source
925
171k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::ProxyStatus() const
Envoy::Http::TestRequestHeaderMapImpl::RequestId() const
Line
Count
Source
925
7
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::TransferEncoding() const
Line
Count
Source
925
11.4k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestRequestHeaderMapImpl::Upgrade() const
Line
Count
Source
925
529k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::Via() const
Envoy::Http::TestRequestHeaderMapImpl::ContentLength() const
Line
Count
Source
925
11.8k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::EnvoyAttemptCount() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::EnvoyRateLimited() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::EnvoyUpstreamCanary() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::Location() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::Server() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::EnvoyUpstreamServiceTime() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::EnvoyDecoratorOperation() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::KeepAlive() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::ProxyStatus() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::RequestId() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::Via() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::EnvoyAttemptCount() const
Envoy::Http::TestResponseHeaderMapImpl::Connection() const
Line
Count
Source
925
1.62k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::ContentType() const
Line
Count
Source
925
5
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::ProxyConnection() const
Line
Count
Source
925
1.75k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::TransferEncoding() const
Line
Count
Source
925
11.3k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::Upgrade() const
Line
Count
Source
925
5.18k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::ContentLength() const
Line
Count
Source
925
11.3k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::Date() const
Line
Count
Source
925
512
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::EnvoyDegraded() const
Line
Count
Source
925
341
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::EnvoyImmediateHealthCheckFail() const
Line
Count
Source
925
953
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::EnvoyUpstreamHealthCheckedCluster() const
Line
Count
Source
925
102
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::Status() const
Line
Count
Source
925
64.9k
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::GrpcMessage() const
Line
Count
Source
925
327
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseHeaderMapImpl::GrpcStatus() const
Line
Count
Source
925
931
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseTrailerMapImpl::GrpcMessage() const
Line
Count
Source
925
194
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
Envoy::Http::TestResponseTrailerMapImpl::GrpcStatus() const
Line
Count
Source
925
23
  const HeaderEntry* name() const override { return header_map_->name(); }                         \
926
1.54M
  size_t remove##name() override {                                                                 \
927
1.54M
    const size_t headers_removed = header_map_->remove##name();                                    \
928
1.54M
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
1.54M
    return headers_removed;                                                                        \
930
1.54M
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeClientTraceId()
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyDownstreamServiceCluster()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyDownstreamServiceNode()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyExternalAddress()
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyForceTrace()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyHedgeOnPerTryTimeout()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyInternalRequest()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyIpTags()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyRetryOn()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyRetryGrpcOn()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyRetriableStatusCodes()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyRetriableHeaderNames()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyIsTimeoutRetry()
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyOriginalPath()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyOriginalUrl()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyUpstreamAltStatName()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyUpstreamRequestTimeoutAltResponse()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeExpect()
Envoy::Http::TestRequestHeaderMapImpl::removeForwardedClientCert()
Line
Count
Source
926
60.4k
  size_t remove##name() override {                                                                 \
927
60.4k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.4k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.4k
    return headers_removed;                                                                        \
930
60.4k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeForwardedFor()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeForwardedHost()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeForwardedProto()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeGrpcTimeout()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeHost()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeMethod()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removePath()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeProtocol()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeScheme()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeTE()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeUserAgent()
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyExpectedRequestTimeoutMs()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyMaxRetries()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyUpstreamRequestTimeoutMs()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyUpstreamRequestPerTryTimeoutMs()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyUpstreamStreamDurationMs()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeForwardedPort()
Envoy::Http::TestRequestHeaderMapImpl::removeConnection()
Line
Count
Source
926
60.0k
  size_t remove##name() override {                                                                 \
927
60.0k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.0k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.0k
    return headers_removed;                                                                        \
930
60.0k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeContentType()
Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyDecoratorOperation()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeKeepAlive()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeProxyConnection()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeProxyStatus()
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeRequestId()
Envoy::Http::TestRequestHeaderMapImpl::removeTransferEncoding()
Line
Count
Source
926
60.7k
  size_t remove##name() override {                                                                 \
927
60.7k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.7k
    return headers_removed;                                                                        \
930
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::removeUpgrade()
Line
Count
Source
926
60.0k
  size_t remove##name() override {                                                                 \
927
60.0k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
60.0k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
60.0k
    return headers_removed;                                                                        \
930
60.0k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeVia()
Envoy::Http::TestRequestHeaderMapImpl::removeContentLength()
Line
Count
Source
926
744
  size_t remove##name() override {                                                                 \
927
744
    const size_t headers_removed = header_map_->remove##name();                                    \
928
744
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
744
    return headers_removed;                                                                        \
930
744
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::removeEnvoyAttemptCount()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeDate()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyDegraded()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyImmediateHealthCheckFail()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyRateLimited()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyUpstreamCanary()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyUpstreamHealthCheckedCluster()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeLocation()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeServer()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyUpstreamServiceTime()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeStatus()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeContentType()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyDecoratorOperation()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeProxyStatus()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeRequestId()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeVia()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeContentLength()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeEnvoyAttemptCount()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeGrpcMessage()
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::removeGrpcStatus()
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::removeGrpcMessage()
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::removeGrpcStatus()
Envoy::Http::TestResponseHeaderMapImpl::removeConnection()
Line
Count
Source
926
4.70k
  size_t remove##name() override {                                                                 \
927
4.70k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
4.70k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
4.70k
    return headers_removed;                                                                        \
930
4.70k
  }                                                                                                \
Envoy::Http::TestResponseHeaderMapImpl::removeKeepAlive()
Line
Count
Source
926
4.92k
  size_t remove##name() override {                                                                 \
927
4.92k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
4.92k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
4.92k
    return headers_removed;                                                                        \
930
4.92k
  }                                                                                                \
Envoy::Http::TestResponseHeaderMapImpl::removeProxyConnection()
Line
Count
Source
926
4.92k
  size_t remove##name() override {                                                                 \
927
4.92k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
4.92k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
4.92k
    return headers_removed;                                                                        \
930
4.92k
  }                                                                                                \
Envoy::Http::TestResponseHeaderMapImpl::removeTransferEncoding()
Line
Count
Source
926
4.92k
  size_t remove##name() override {                                                                 \
927
4.92k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
4.92k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
4.92k
    return headers_removed;                                                                        \
930
4.92k
  }                                                                                                \
Envoy::Http::TestResponseHeaderMapImpl::removeUpgrade()
Line
Count
Source
926
4.70k
  size_t remove##name() override {                                                                 \
927
4.70k
    const size_t headers_removed = header_map_->remove##name();                                    \
928
4.70k
    header_map_->verifyByteSizeInternalForTest();                                                  \
929
4.70k
    return headers_removed;                                                                        \
930
4.70k
  }                                                                                                \
931
1.18M
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getClientTraceIdValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyDownstreamServiceClusterValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyDownstreamServiceNodeValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyExternalAddressValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyForceTraceValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyHedgeOnPerTryTimeoutValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyInternalRequestValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyIpTagsValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyRetryOnValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyRetryGrpcOnValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyRetriableStatusCodesValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyRetriableHeaderNamesValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyIsTimeoutRetryValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyOriginalPathValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyOriginalUrlValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyUpstreamAltStatNameValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyUpstreamRequestTimeoutAltResponseValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getExpectValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getForwardedClientCertValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getForwardedForValue() const
Envoy::Http::TestRequestHeaderMapImpl::getForwardedHostValue() const
Line
Count
Source
931
128
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestRequestHeaderMapImpl::getForwardedProtoValue() const
Line
Count
Source
931
64.2k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getGrpcTimeoutValue() const
Envoy::Http::TestRequestHeaderMapImpl::getHostValue() const
Line
Count
Source
931
184k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestRequestHeaderMapImpl::getMethodValue() const
Line
Count
Source
931
173k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestRequestHeaderMapImpl::getPathValue() const
Line
Count
Source
931
452k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getProtocolValue() const
Envoy::Http::TestRequestHeaderMapImpl::getSchemeValue() const
Line
Count
Source
931
73.0k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getTEValue() const
Envoy::Http::TestRequestHeaderMapImpl::getUserAgentValue() const
Line
Count
Source
931
4.03k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyExpectedRequestTimeoutMsValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyMaxRetriesValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyUpstreamRequestTimeoutMsValue() const
Envoy::Http::TestRequestHeaderMapImpl::getEnvoyUpstreamRequestPerTryTimeoutMsValue() const
Line
Count
Source
931
6
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyUpstreamStreamDurationMsValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getForwardedPortValue() const
Envoy::Http::TestRequestHeaderMapImpl::getConnectionValue() const
Line
Count
Source
931
36.4k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestRequestHeaderMapImpl::getContentTypeValue() const
Line
Count
Source
931
131k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyDecoratorOperationValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getKeepAliveValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getProxyConnectionValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getProxyStatusValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getRequestIdValue() const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getTransferEncodingValue() const
Envoy::Http::TestRequestHeaderMapImpl::getUpgradeValue() const
Line
Count
Source
931
23.6k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getViaValue() const
Envoy::Http::TestRequestHeaderMapImpl::getContentLengthValue() const
Line
Count
Source
931
317
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getEnvoyAttemptCountValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getDateValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyDegradedValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyImmediateHealthCheckFailValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyRateLimitedValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyUpstreamCanaryValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyUpstreamHealthCheckedClusterValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getLocationValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getServerValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyUpstreamServiceTimeValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyDecoratorOperationValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getKeepAliveValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getProxyConnectionValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getProxyStatusValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getRequestIdValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getTransferEncodingValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getUpgradeValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getViaValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getEnvoyAttemptCountValue() const
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::getGrpcMessageValue() const
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::getGrpcMessageValue() const
Envoy::Http::TestResponseHeaderMapImpl::getConnectionValue() const
Line
Count
Source
931
454
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestResponseHeaderMapImpl::getContentTypeValue() const
Line
Count
Source
931
2.07k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestResponseHeaderMapImpl::getContentLengthValue() const
Line
Count
Source
931
15
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestResponseHeaderMapImpl::getStatusValue() const
Line
Count
Source
931
33.3k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestResponseHeaderMapImpl::getGrpcStatusValue() const
Line
Count
Source
931
1.56k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
Envoy::Http::TestResponseTrailerMapImpl::getGrpcStatusValue() const
Line
Count
Source
931
1.74k
  absl::string_view get##name##Value() const override { return header_map_->get##name##Value(); }  \
932
374k
  void set##name(absl::string_view value) override {                                               \
933
374k
    header_map_->set##name(value);                                                                 \
934
374k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
374k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setClientTraceId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyDownstreamServiceCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyDownstreamServiceNode(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setEnvoyExternalAddress(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
60.7k
  void set##name(absl::string_view value) override {                                               \
933
60.7k
    header_map_->set##name(value);                                                                 \
934
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
60.7k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyForceTrace(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyHedgeOnPerTryTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyInternalRequest(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyIpTags(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyRetryOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyRetryGrpcOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyRetriableStatusCodes(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyRetriableHeaderNames(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyIsTimeoutRetry(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setEnvoyOriginalPath(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
652
  void set##name(absl::string_view value) override {                                               \
933
652
    header_map_->set##name(value);                                                                 \
934
652
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
652
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyOriginalUrl(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamAltStatName(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamRequestTimeoutAltResponse(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setExpect(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedClientCert(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedFor(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedProto(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setGrpcTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
43.1k
  void set##name(absl::string_view value) override {                                               \
933
43.1k
    header_map_->set##name(value);                                                                 \
934
43.1k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
43.1k
  }
Envoy::Http::TestRequestHeaderMapImpl::setMethod(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
41.0k
  void set##name(absl::string_view value) override {                                               \
933
41.0k
    header_map_->set##name(value);                                                                 \
934
41.0k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
41.0k
  }
Envoy::Http::TestRequestHeaderMapImpl::setPath(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
39.0k
  void set##name(absl::string_view value) override {                                               \
933
39.0k
    header_map_->set##name(value);                                                                 \
934
39.0k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
39.0k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setProtocol(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setScheme(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
128k
  void set##name(absl::string_view value) override {                                               \
933
128k
    header_map_->set##name(value);                                                                 \
934
128k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
128k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setTE(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setUserAgent(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyExpectedRequestTimeoutMs(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyMaxRetries(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamRequestTimeoutMs(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamRequestPerTryTimeoutMs(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamStreamDurationMs(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedPort(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
38
  void set##name(absl::string_view value) override {                                               \
933
38
    header_map_->set##name(value);                                                                 \
934
38
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
38
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
60.7k
  void set##name(absl::string_view value) override {                                               \
933
60.7k
    header_map_->set##name(value);                                                                 \
934
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
60.7k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setContentLength(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyAttemptCount(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyDegraded(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyImmediateHealthCheckFail(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyRateLimited(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyUpstreamCanary(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setLocation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setServer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyUpstreamServiceTime(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setContentLength(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyAttemptCount(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setGrpcStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::setGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::setGrpcStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestResponseHeaderMapImpl::setContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
37
  void set##name(absl::string_view value) override {                                               \
933
37
    header_map_->set##name(value);                                                                 \
934
37
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
37
  }
Envoy::Http::TestResponseHeaderMapImpl::setDate(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
501
  void set##name(absl::string_view value) override {                                               \
933
501
    header_map_->set##name(value);                                                                 \
934
501
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
501
  }
Envoy::Http::TestResponseHeaderMapImpl::setEnvoyUpstreamHealthCheckedCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
932
24
  void set##name(absl::string_view value) override {                                               \
933
24
    header_map_->set##name(value);                                                                 \
934
24
    header_map_->verifyByteSizeInternalForTest();                                                  \
935
24
  }
936
937
#define DEFINE_TEST_INLINE_STRING_HEADER_FUNCS(name)                                               \
938
public:                                                                                            \
939
  DEFINE_TEST_INLINE_HEADER_FUNCS(name)                                                            \
940
60.7k
  void append##name(absl::string_view data, absl::string_view delimiter) override {                \
941
60.7k
    header_map_->append##name(data, delimiter);                                                    \
942
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
943
60.7k
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendClientTraceId(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyDownstreamServiceCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyDownstreamServiceNode(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyExternalAddress(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyForceTrace(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyHedgeOnPerTryTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyInternalRequest(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyIpTags(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyRetryOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyRetryGrpcOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyRetriableStatusCodes(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyRetriableHeaderNames(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyIsTimeoutRetry(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyOriginalPath(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyOriginalUrl(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyUpstreamAltStatName(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyUpstreamRequestTimeoutAltResponse(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendExpect(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendForwardedClientCert(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::appendForwardedFor(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
940
60.7k
  void append##name(absl::string_view data, absl::string_view delimiter) override {                \
941
60.7k
    header_map_->append##name(data, delimiter);                                                    \
942
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
943
60.7k
  }                                                                                                \
Envoy::Http::TestRequestHeaderMapImpl::appendForwardedHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
940
5
  void append##name(absl::string_view data, absl::string_view delimiter) override {                \
941
5
    header_map_->append##name(data, delimiter);                                                    \
942
5
    header_map_->verifyByteSizeInternalForTest();                                                  \
943
5
  }                                                                                                \
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendForwardedProto(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendGrpcTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendMethod(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendPath(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendProtocol(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendScheme(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendTE(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendUserAgent(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::appendVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendDate(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyDegraded(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyImmediateHealthCheckFail(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyRateLimited(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyUpstreamCanary(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyUpstreamHealthCheckedCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendLocation(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendServer(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::appendGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::appendGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
944
65.1k
  void setReference##name(absl::string_view value) override {                                      \
945
65.1k
    header_map_->setReference##name(value);                                                        \
946
65.1k
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
65.1k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceClientTraceId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyDownstreamServiceCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyDownstreamServiceNode(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyExternalAddress(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyForceTrace(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyHedgeOnPerTryTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyInternalRequest(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
7
  void setReference##name(absl::string_view value) override {                                      \
945
7
    header_map_->setReference##name(value);                                                        \
946
7
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
7
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyIpTags(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyRetryOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyRetryGrpcOn(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyRetriableStatusCodes(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyRetriableHeaderNames(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyIsTimeoutRetry(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyOriginalPath(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyOriginalUrl(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyUpstreamAltStatName(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyUpstreamRequestTimeoutAltResponse(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceExpect(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceForwardedClientCert(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceForwardedFor(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceForwardedHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setReferenceForwardedProto(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
60.7k
  void setReference##name(absl::string_view value) override {                                      \
945
60.7k
    header_map_->setReference##name(value);                                                        \
946
60.7k
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
60.7k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceGrpcTimeout(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceHost(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setReferenceMethod(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
252
  void setReference##name(absl::string_view value) override {                                      \
945
252
    header_map_->setReference##name(value);                                                        \
946
252
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
252
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferencePath(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceProtocol(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setReferenceScheme(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
2.64k
  void setReference##name(absl::string_view value) override {                                      \
945
2.64k
    header_map_->setReference##name(value);                                                        \
946
2.64k
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
2.64k
  }
Envoy::Http::TestRequestHeaderMapImpl::setReferenceTE(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
252
  void setReference##name(absl::string_view value) override {                                      \
945
252
    header_map_->setReference##name(value);                                                        \
946
252
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
252
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceUserAgent(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestRequestHeaderMapImpl::setReferenceContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
252
  void setReference##name(absl::string_view value) override {                                      \
945
252
    header_map_->setReference##name(value);                                                        \
946
252
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
252
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setReferenceVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceDate(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyDegraded(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyImmediateHealthCheckFail(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyRateLimited(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyUpstreamCanary(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyUpstreamHealthCheckedCluster(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceLocation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceEnvoyDecoratorOperation(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceKeepAlive(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceProxyConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceProxyStatus(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceRequestId(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceTransferEncoding(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceUpgrade(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceVia(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setReferenceGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestResponseTrailerMapImpl::setReferenceGrpcMessage(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestResponseHeaderMapImpl::setReferenceConnection(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
401
  void setReference##name(absl::string_view value) override {                                      \
945
401
    header_map_->setReference##name(value);                                                        \
946
401
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
401
  }
Envoy::Http::TestResponseHeaderMapImpl::setReferenceContentType(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
67
  void setReference##name(absl::string_view value) override {                                      \
945
67
    header_map_->setReference##name(value);                                                        \
946
67
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
67
  }
Envoy::Http::TestResponseHeaderMapImpl::setReferenceServer(std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
944
512
  void setReference##name(absl::string_view value) override {                                      \
945
512
    header_map_->setReference##name(value);                                                        \
946
512
    header_map_->verifyByteSizeInternalForTest();                                                  \
947
512
  }
948
949
#define DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS(name)                                              \
950
public:                                                                                            \
951
  DEFINE_TEST_INLINE_HEADER_FUNCS(name)                                                            \
952
5.99k
  void set##name(uint64_t value) override {                                                        \
953
5.99k
    header_map_->set##name(value);                                                                 \
954
5.99k
    header_map_->verifyByteSizeInternalForTest();                                                  \
955
5.99k
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyExpectedRequestTimeoutMs(unsigned long)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyMaxRetries(unsigned long)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamRequestTimeoutMs(unsigned long)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamRequestPerTryTimeoutMs(unsigned long)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyUpstreamStreamDurationMs(unsigned long)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setForwardedPort(unsigned long)
Envoy::Http::TestRequestHeaderMapImpl::setContentLength(unsigned long)
Line
Count
Source
952
8
  void set##name(uint64_t value) override {                                                        \
953
8
    header_map_->set##name(value);                                                                 \
954
8
    header_map_->verifyByteSizeInternalForTest();                                                  \
955
8
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setEnvoyAttemptCount(unsigned long)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyUpstreamServiceTime(unsigned long)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setEnvoyAttemptCount(unsigned long)
Unexecuted instantiation: Envoy::Http::TestResponseHeaderMapImpl::setGrpcStatus(unsigned long)
Envoy::Http::TestResponseHeaderMapImpl::setContentLength(unsigned long)
Line
Count
Source
952
251
  void set##name(uint64_t value) override {                                                        \
953
251
    header_map_->set##name(value);                                                                 \
954
251
    header_map_->verifyByteSizeInternalForTest();                                                  \
955
251
  }
Envoy::Http::TestResponseHeaderMapImpl::setStatus(unsigned long)
Line
Count
Source
952
5.70k
  void set##name(uint64_t value) override {                                                        \
953
5.70k
    header_map_->set##name(value);                                                                 \
954
5.70k
    header_map_->verifyByteSizeInternalForTest();                                                  \
955
5.70k
  }
Envoy::Http::TestResponseTrailerMapImpl::setGrpcStatus(unsigned long)
Line
Count
Source
952
29
  void set##name(uint64_t value) override {                                                        \
953
29
    header_map_->set##name(value);                                                                 \
954
29
    header_map_->verifyByteSizeInternalForTest();                                                  \
955
29
  }
956
957
/**
958
 * Base class for all test header map types. This class wraps an underlying real header map
959
 * implementation, passes through all calls, and adds some niceties for testing that we don't
960
 * want in the production implementation for performance reasons. The wrapping functionality is
961
 * primarily here to deal with complexities around virtual calls in some constructor paths in
962
 * HeaderMapImpl.
963
 */
964
template <class Interface, class Impl> class TestHeaderMapImplBase : public Interface {
965
public:
966
742k
  TestHeaderMapImplBase() = default;
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::TestHeaderMapImplBase()
Line
Count
Source
966
588k
  TestHeaderMapImplBase() = default;
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::TestHeaderMapImplBase()
Line
Count
Source
966
59.8k
  TestHeaderMapImplBase() = default;
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::TestHeaderMapImplBase()
Line
Count
Source
966
61.1k
  TestHeaderMapImplBase() = default;
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::TestHeaderMapImplBase()
Line
Count
Source
966
32.6k
  TestHeaderMapImplBase() = default;
967
20.6k
  TestHeaderMapImplBase(const std::initializer_list<std::pair<std::string, std::string>>& values) {
968
28.5k
    for (auto& value : values) {
969
28.5k
      header_map_->addCopy(LowerCaseString(value.first), value.second);
970
28.5k
    }
971
20.6k
    header_map_->verifyByteSizeInternalForTest();
972
20.6k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::TestHeaderMapImplBase(std::initializer_list<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
Line
Count
Source
967
16.8k
  TestHeaderMapImplBase(const std::initializer_list<std::pair<std::string, std::string>>& values) {
968
16.8k
    for (auto& value : values) {
969
16.8k
      header_map_->addCopy(LowerCaseString(value.first), value.second);
970
16.8k
    }
971
16.8k
    header_map_->verifyByteSizeInternalForTest();
972
16.8k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::TestHeaderMapImplBase(std::initializer_list<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
Line
Count
Source
967
3.75k
  TestHeaderMapImplBase(const std::initializer_list<std::pair<std::string, std::string>>& values) {
968
11.6k
    for (auto& value : values) {
969
11.6k
      header_map_->addCopy(LowerCaseString(value.first), value.second);
970
11.6k
    }
971
3.75k
    header_map_->verifyByteSizeInternalForTest();
972
3.75k
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::TestHeaderMapImplBase(std::initializer_list<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::TestHeaderMapImplBase(std::initializer_list<std::__1::pair<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > const&)
973
  TestHeaderMapImplBase(const std::initializer_list<std::pair<std::string, std::string>>& values,
974
                        const uint32_t max_headers_kb, const uint32_t max_headers_count) {
975
    if (header_map_) {
976
      header_map_.reset();
977
    }
978
    header_map_ = Impl::create(max_headers_kb, max_headers_count);
979
980
    for (auto& value : values) {
981
      header_map_->addCopy(LowerCaseString(value.first), value.second);
982
    }
983
    header_map_->verifyByteSizeInternalForTest();
984
  }
985
986
  TestHeaderMapImplBase(const TestHeaderMapImplBase& rhs)
987
8.16k
      : TestHeaderMapImplBase(*rhs.header_map_) {}
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::TestHeaderMapImplBase(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl> const&)
Line
Count
Source
987
6.05k
      : TestHeaderMapImplBase(*rhs.header_map_) {}
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::TestHeaderMapImplBase(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl> const&)
Line
Count
Source
987
1.61k
      : TestHeaderMapImplBase(*rhs.header_map_) {}
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::TestHeaderMapImplBase(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl> const&)
Line
Count
Source
987
7
      : TestHeaderMapImplBase(*rhs.header_map_) {}
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::TestHeaderMapImplBase(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl> const&)
Line
Count
Source
987
480
      : TestHeaderMapImplBase(*rhs.header_map_) {}
988
180k
  TestHeaderMapImplBase(const HeaderMap& rhs) {
989
180k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
990
180k
    header_map_->verifyByteSizeInternalForTest();
991
180k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::TestHeaderMapImplBase(Envoy::Http::HeaderMap const&)
Line
Count
Source
988
171k
  TestHeaderMapImplBase(const HeaderMap& rhs) {
989
171k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
990
171k
    header_map_->verifyByteSizeInternalForTest();
991
171k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::TestHeaderMapImplBase(Envoy::Http::HeaderMap const&)
Line
Count
Source
988
7.13k
  TestHeaderMapImplBase(const HeaderMap& rhs) {
989
7.13k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
990
7.13k
    header_map_->verifyByteSizeInternalForTest();
991
7.13k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::TestHeaderMapImplBase(Envoy::Http::HeaderMap const&)
Line
Count
Source
988
1.61k
  TestHeaderMapImplBase(const HeaderMap& rhs) {
989
1.61k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
990
1.61k
    header_map_->verifyByteSizeInternalForTest();
991
1.61k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::TestHeaderMapImplBase(Envoy::Http::HeaderMap const&)
Line
Count
Source
988
480
  TestHeaderMapImplBase(const HeaderMap& rhs) {
989
480
    HeaderMapImpl::copyFrom(*header_map_, rhs);
990
480
    header_map_->verifyByteSizeInternalForTest();
991
480
  }
992
  void copyFrom(const TestHeaderMapImplBase& rhs) { copyFrom(*rhs.header_map_); }
993
  void copyFrom(const HeaderMap& rhs) {
994
    HeaderMapImpl::copyFrom(*header_map_, rhs);
995
    header_map_->verifyByteSizeInternalForTest();
996
  }
997
145k
  TestHeaderMapImplBase& operator=(const TestHeaderMapImplBase& rhs) {
998
145k
    if (this == &rhs) {
999
0
      return *this;
1000
0
    }
1001
145k
    clear();
1002
145k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
1003
145k
    header_map_->verifyByteSizeInternalForTest();
1004
145k
    return *this;
1005
145k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::operator=(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl> const&)
Line
Count
Source
997
141k
  TestHeaderMapImplBase& operator=(const TestHeaderMapImplBase& rhs) {
998
141k
    if (this == &rhs) {
999
0
      return *this;
1000
0
    }
1001
141k
    clear();
1002
141k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
1003
141k
    header_map_->verifyByteSizeInternalForTest();
1004
141k
    return *this;
1005
141k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::operator=(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl> const&)
Line
Count
Source
997
1.09k
  TestHeaderMapImplBase& operator=(const TestHeaderMapImplBase& rhs) {
998
1.09k
    if (this == &rhs) {
999
0
      return *this;
1000
0
    }
1001
1.09k
    clear();
1002
1.09k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
1003
1.09k
    header_map_->verifyByteSizeInternalForTest();
1004
1.09k
    return *this;
1005
1.09k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::operator=(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl> const&)
Line
Count
Source
997
1.84k
  TestHeaderMapImplBase& operator=(const TestHeaderMapImplBase& rhs) {
998
1.84k
    if (this == &rhs) {
999
0
      return *this;
1000
0
    }
1001
1.84k
    clear();
1002
1.84k
    HeaderMapImpl::copyFrom(*header_map_, rhs);
1003
1.84k
    header_map_->verifyByteSizeInternalForTest();
1004
1.84k
    return *this;
1005
1.84k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::operator=(Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl> const&)
Line
Count
Source
997
271
  TestHeaderMapImplBase& operator=(const TestHeaderMapImplBase& rhs) {
998
271
    if (this == &rhs) {
999
0
      return *this;
1000
0
    }
1001
271
    clear();
1002
271
    HeaderMapImpl::copyFrom(*header_map_, rhs);
1003
271
    header_map_->verifyByteSizeInternalForTest();
1004
271
    return *this;
1005
271
  }
1006
1007
  // Value added methods on top of HeaderMap.
1008
1.20M
  void addCopy(const std::string& key, const std::string& value) {
1009
1.20M
    addCopy(LowerCaseString(key), value);
1010
1.20M
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addCopy(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
1008
140k
  void addCopy(const std::string& key, const std::string& value) {
1009
140k
    addCopy(LowerCaseString(key), value);
1010
140k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addCopy(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
1008
13.4k
  void addCopy(const std::string& key, const std::string& value) {
1009
13.4k
    addCopy(LowerCaseString(key), value);
1010
13.4k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addCopy(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
1008
8.46k
  void addCopy(const std::string& key, const std::string& value) {
1009
8.46k
    addCopy(LowerCaseString(key), value);
1010
8.46k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addCopy(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)
Line
Count
Source
1008
1.04M
  void addCopy(const std::string& key, const std::string& value) {
1009
1.04M
    addCopy(LowerCaseString(key), value);
1010
1.04M
  }
1011
7.53k
  std::string get_(const std::string& key) const { return get_(LowerCaseString(key)); }
1012
7.53k
  std::string get_(const LowerCaseString& key) const {
1013
    // TODO(mattklein123): Possibly allow getting additional headers beyond the first.
1014
7.53k
    auto headers = get(key);
1015
7.53k
    if (headers.empty()) {
1016
7.53k
      return EMPTY_STRING;
1017
7.53k
    } else {
1018
0
      return std::string(headers[0]->value().getStringView());
1019
0
    }
1020
7.53k
  }
1021
  bool has(const std::string& key) const { return !get(LowerCaseString(key)).empty(); }
1022
  bool has(const LowerCaseString& key) const { return !get(key).empty(); }
1023
  size_t remove(const std::string& key) { return remove(LowerCaseString(key)); }
1024
1025
  // HeaderMap
1026
0
  bool operator==(const HeaderMap& rhs) const override { return header_map_->operator==(rhs); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::operator==(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::operator==(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::operator==(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::operator==(Envoy::Http::HeaderMap const&) const
1027
0
  bool operator!=(const HeaderMap& rhs) const override { return header_map_->operator!=(rhs); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::operator!=(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::operator!=(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::operator!=(Envoy::Http::HeaderMap const&) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::operator!=(Envoy::Http::HeaderMap const&) const
1028
1029
  bool operator==(const TestHeaderMapImplBase& rhs) const { return header_map_->operator==(rhs); }
1030
  bool operator!=(const TestHeaderMapImplBase& rhs) const { return header_map_->operator!=(rhs); }
1031
0
  void addViaMove(HeaderString&& key, HeaderString&& value) override {
1032
0
    header_map_->addViaMove(std::move(key), std::move(value));
1033
0
    header_map_->verifyByteSizeInternalForTest();
1034
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addViaMove(Envoy::Http::HeaderString&&, Envoy::Http::HeaderString&&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addViaMove(Envoy::Http::HeaderString&&, Envoy::Http::HeaderString&&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addViaMove(Envoy::Http::HeaderString&&, Envoy::Http::HeaderString&&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addViaMove(Envoy::Http::HeaderString&&, Envoy::Http::HeaderString&&)
1035
0
  void addReference(const LowerCaseString& key, absl::string_view value) override {
1036
0
    header_map_->addReference(key, value);
1037
0
    header_map_->verifyByteSizeInternalForTest();
1038
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1039
0
  void addReferenceKey(const LowerCaseString& key, uint64_t value) override {
1040
0
    header_map_->addReferenceKey(key, value);
1041
0
    header_map_->verifyByteSizeInternalForTest();
1042
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, unsigned long)
1043
164k
  void addReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1044
164k
    header_map_->addReferenceKey(key, value);
1045
164k
    header_map_->verifyByteSizeInternalForTest();
1046
164k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1043
163k
  void addReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1044
163k
    header_map_->addReferenceKey(key, value);
1045
163k
    header_map_->verifyByteSizeInternalForTest();
1046
163k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1043
79
  void addReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1044
79
    header_map_->addReferenceKey(key, value);
1045
79
    header_map_->verifyByteSizeInternalForTest();
1046
79
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1047
0
  void addCopy(const LowerCaseString& key, uint64_t value) override {
1048
0
    header_map_->addCopy(key, value);
1049
0
    header_map_->verifyByteSizeInternalForTest();
1050
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, unsigned long)
1051
1.22M
  void addCopy(const LowerCaseString& key, absl::string_view value) override {
1052
1.22M
    header_map_->addCopy(key, value);
1053
1.22M
    header_map_->verifyByteSizeInternalForTest();
1054
1.22M
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1051
1.06M
  void addCopy(const LowerCaseString& key, absl::string_view value) override {
1052
1.06M
    header_map_->addCopy(key, value);
1053
1.06M
    header_map_->verifyByteSizeInternalForTest();
1054
1.06M
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1051
140k
  void addCopy(const LowerCaseString& key, absl::string_view value) override {
1052
140k
    header_map_->addCopy(key, value);
1053
140k
    header_map_->verifyByteSizeInternalForTest();
1054
140k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1051
13.4k
  void addCopy(const LowerCaseString& key, absl::string_view value) override {
1052
13.4k
    header_map_->addCopy(key, value);
1053
13.4k
    header_map_->verifyByteSizeInternalForTest();
1054
13.4k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::addCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1051
9.65k
  void addCopy(const LowerCaseString& key, absl::string_view value) override {
1052
9.65k
    header_map_->addCopy(key, value);
1053
9.65k
    header_map_->verifyByteSizeInternalForTest();
1054
9.65k
  }
1055
3
  void appendCopy(const LowerCaseString& key, absl::string_view value) override {
1056
3
    header_map_->appendCopy(key, value);
1057
3
    header_map_->verifyByteSizeInternalForTest();
1058
3
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::appendCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1055
3
  void appendCopy(const LowerCaseString& key, absl::string_view value) override {
1056
3
    header_map_->appendCopy(key, value);
1057
3
    header_map_->verifyByteSizeInternalForTest();
1058
3
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::appendCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::appendCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::appendCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1059
12
  void setReference(const LowerCaseString& key, absl::string_view value) override {
1060
12
    header_map_->setReference(key, value);
1061
12
    header_map_->verifyByteSizeInternalForTest();
1062
12
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1059
12
  void setReference(const LowerCaseString& key, absl::string_view value) override {
1060
12
    header_map_->setReference(key, value);
1061
12
    header_map_->verifyByteSizeInternalForTest();
1062
12
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setReference(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1063
220k
  void setReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1064
220k
    header_map_->setReferenceKey(key, value);
1065
220k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1063
206k
  void setReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1064
206k
    header_map_->setReferenceKey(key, value);
1065
206k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1063
14.6k
  void setReferenceKey(const LowerCaseString& key, absl::string_view value) override {
1064
14.6k
    header_map_->setReferenceKey(key, value);
1065
14.6k
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setReferenceKey(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1066
25.5k
  void setCopy(const LowerCaseString& key, absl::string_view value) override {
1067
25.5k
    header_map_->setCopy(key, value);
1068
25.5k
    header_map_->verifyByteSizeInternalForTest();
1069
25.5k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1066
13.8k
  void setCopy(const LowerCaseString& key, absl::string_view value) override {
1067
13.8k
    header_map_->setCopy(key, value);
1068
13.8k
    header_map_->verifyByteSizeInternalForTest();
1069
13.8k
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setCopy(Envoy::Http::LowerCaseString const&, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1066
11.6k
  void setCopy(const LowerCaseString& key, absl::string_view value) override {
1067
11.6k
    header_map_->setCopy(key, value);
1068
11.6k
    header_map_->verifyByteSizeInternalForTest();
1069
11.6k
  }
1070
2.16k
  uint64_t byteSize() const override { return header_map_->byteSize(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::byteSize() const
Line
Count
Source
1070
1.20k
  uint64_t byteSize() const override { return header_map_->byteSize(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::byteSize() const
Line
Count
Source
1070
285
  uint64_t byteSize() const override { return header_map_->byteSize(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::byteSize() const
Line
Count
Source
1070
251
  uint64_t byteSize() const override { return header_map_->byteSize(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::byteSize() const
Line
Count
Source
1070
422
  uint64_t byteSize() const override { return header_map_->byteSize(); }
1071
1.49k
  uint32_t maxHeadersKb() const override { return header_map_->maxHeadersKb(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::maxHeadersKb() const
Line
Count
Source
1071
1.06k
  uint32_t maxHeadersKb() const override { return header_map_->maxHeadersKb(); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::maxHeadersKb() const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::maxHeadersKb() const
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::maxHeadersKb() const
Line
Count
Source
1071
422
  uint32_t maxHeadersKb() const override { return header_map_->maxHeadersKb(); }
1072
3.12k
  uint32_t maxHeadersCount() const override { return header_map_->maxHeadersCount(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::maxHeadersCount() const
Line
Count
Source
1072
2.24k
  uint32_t maxHeadersCount() const override { return header_map_->maxHeadersCount(); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::maxHeadersCount() const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::maxHeadersCount() const
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::maxHeadersCount() const
Line
Count
Source
1072
884
  uint32_t maxHeadersCount() const override { return header_map_->maxHeadersCount(); }
1073
346k
  HeaderMap::GetResult get(const LowerCaseString& key) const override {
1074
346k
    return header_map_->get(key);
1075
346k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::get(Envoy::Http::LowerCaseString const&) const
Line
Count
Source
1073
228k
  HeaderMap::GetResult get(const LowerCaseString& key) const override {
1074
228k
    return header_map_->get(key);
1075
228k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::get(Envoy::Http::LowerCaseString const&) const
Line
Count
Source
1073
83.5k
  HeaderMap::GetResult get(const LowerCaseString& key) const override {
1074
83.5k
    return header_map_->get(key);
1075
83.5k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::get(Envoy::Http::LowerCaseString const&) const
Line
Count
Source
1073
31.4k
  HeaderMap::GetResult get(const LowerCaseString& key) const override {
1074
31.4k
    return header_map_->get(key);
1075
31.4k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::get(Envoy::Http::LowerCaseString const&) const
Line
Count
Source
1073
2.32k
  HeaderMap::GetResult get(const LowerCaseString& key) const override {
1074
2.32k
    return header_map_->get(key);
1075
2.32k
  }
1076
570k
  void iterate(HeaderMap::ConstIterateCb cb) const override { header_map_->iterate(cb); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::iterate(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Line
Count
Source
1076
542k
  void iterate(HeaderMap::ConstIterateCb cb) const override { header_map_->iterate(cb); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::iterate(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Line
Count
Source
1076
21.8k
  void iterate(HeaderMap::ConstIterateCb cb) const override { header_map_->iterate(cb); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::iterate(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Line
Count
Source
1076
4.05k
  void iterate(HeaderMap::ConstIterateCb cb) const override { header_map_->iterate(cb); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::iterate(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Line
Count
Source
1076
2.06k
  void iterate(HeaderMap::ConstIterateCb cb) const override { header_map_->iterate(cb); }
1077
0
  void iterateReverse(HeaderMap::ConstIterateCb cb) const override {
1078
0
    header_map_->iterateReverse(cb);
1079
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::iterateReverse(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::iterateReverse(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::iterateReverse(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::iterateReverse(std::__1::function<Envoy::Http::HeaderMap::Iterate (Envoy::Http::HeaderEntry const&)>) const
1080
290k
  void clear() override {
1081
290k
    header_map_->clear();
1082
290k
    header_map_->verifyByteSizeInternalForTest();
1083
290k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::clear()
Line
Count
Source
1080
170k
  void clear() override {
1081
170k
    header_map_->clear();
1082
170k
    header_map_->verifyByteSizeInternalForTest();
1083
170k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::clear()
Line
Count
Source
1080
30.8k
  void clear() override {
1081
30.8k
    header_map_->clear();
1082
30.8k
    header_map_->verifyByteSizeInternalForTest();
1083
30.8k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::clear()
Line
Count
Source
1080
58.2k
  void clear() override {
1081
58.2k
    header_map_->clear();
1082
58.2k
    header_map_->verifyByteSizeInternalForTest();
1083
58.2k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::clear()
Line
Count
Source
1080
30.0k
  void clear() override {
1081
30.0k
    header_map_->clear();
1082
30.0k
    header_map_->verifyByteSizeInternalForTest();
1083
30.0k
  }
1084
73.6k
  size_t remove(const LowerCaseString& key) override {
1085
73.6k
    size_t headers_removed = header_map_->remove(key);
1086
73.6k
    header_map_->verifyByteSizeInternalForTest();
1087
73.6k
    return headers_removed;
1088
73.6k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::remove(Envoy::Http::LowerCaseString const&)
Line
Count
Source
1084
60.4k
  size_t remove(const LowerCaseString& key) override {
1085
60.4k
    size_t headers_removed = header_map_->remove(key);
1086
60.4k
    header_map_->verifyByteSizeInternalForTest();
1087
60.4k
    return headers_removed;
1088
60.4k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::remove(Envoy::Http::LowerCaseString const&)
Line
Count
Source
1084
115
  size_t remove(const LowerCaseString& key) override {
1085
115
    size_t headers_removed = header_map_->remove(key);
1086
115
    header_map_->verifyByteSizeInternalForTest();
1087
115
    return headers_removed;
1088
115
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::remove(Envoy::Http::LowerCaseString const&)
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::remove(Envoy::Http::LowerCaseString const&)
Line
Count
Source
1084
13.0k
  size_t remove(const LowerCaseString& key) override {
1085
13.0k
    size_t headers_removed = header_map_->remove(key);
1086
13.0k
    header_map_->verifyByteSizeInternalForTest();
1087
13.0k
    return headers_removed;
1088
13.0k
  }
1089
0
  size_t removeIf(const HeaderMap::HeaderMatchPredicate& predicate) override {
1090
0
    size_t headers_removed = header_map_->removeIf(predicate);
1091
0
    header_map_->verifyByteSizeInternalForTest();
1092
0
    return headers_removed;
1093
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::removeIf(std::__1::function<bool (Envoy::Http::HeaderEntry const&)> const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::removeIf(std::__1::function<bool (Envoy::Http::HeaderEntry const&)> const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::removeIf(std::__1::function<bool (Envoy::Http::HeaderEntry const&)> const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::removeIf(std::__1::function<bool (Envoy::Http::HeaderEntry const&)> const&)
1094
0
  size_t removePrefix(const LowerCaseString& key) override {
1095
0
    size_t headers_removed = header_map_->removePrefix(key);
1096
0
    header_map_->verifyByteSizeInternalForTest();
1097
0
    return headers_removed;
1098
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::removePrefix(Envoy::Http::LowerCaseString const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::removePrefix(Envoy::Http::LowerCaseString const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::removePrefix(Envoy::Http::LowerCaseString const&)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::removePrefix(Envoy::Http::LowerCaseString const&)
1099
83.9k
  size_t size() const override { return header_map_->size(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::size() const
Line
Count
Source
1099
79.3k
  size_t size() const override { return header_map_->size(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::size() const
Line
Count
Source
1099
3.74k
  size_t size() const override { return header_map_->size(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::size() const
Line
Count
Source
1099
83
  size_t size() const override { return header_map_->size(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::size() const
Line
Count
Source
1099
800
  size_t size() const override { return header_map_->size(); }
1100
628
  bool empty() const override { return header_map_->empty(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::empty() const
Line
Count
Source
1100
3
  bool empty() const override { return header_map_->empty(); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::empty() const
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::empty() const
Line
Count
Source
1100
101
  bool empty() const override { return header_map_->empty(); }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::empty() const
Line
Count
Source
1100
524
  bool empty() const override { return header_map_->empty(); }
1101
0
  void dumpState(std::ostream& os, int indent_level = 0) const override {
1102
0
    header_map_->dumpState(os, indent_level);
1103
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::dumpState(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::dumpState(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::dumpState(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::dumpState(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int) const
1104
1105
  using Handle = typename CustomInlineHeaderRegistry::Handle<Interface::header_map_type>;
1106
149
  const HeaderEntry* getInline(Handle handle) const override {
1107
149
    return header_map_->getInline(handle);
1108
149
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::getInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>) const
Line
Count
Source
1106
149
  const HeaderEntry* getInline(Handle handle) const override {
1107
149
    return header_map_->getInline(handle);
1108
149
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::getInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::getInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>) const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::getInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>) const
1109
0
  void appendInline(Handle handle, absl::string_view data, absl::string_view delimiter) override {
1110
0
    header_map_->appendInline(handle, data, delimiter);
1111
0
    header_map_->verifyByteSizeInternalForTest();
1112
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::appendInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::appendInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::appendInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::appendInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>, std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1113
0
  void setReferenceInline(Handle handle, absl::string_view value) override {
1114
0
    header_map_->setReferenceInline(handle, value);
1115
0
    header_map_->verifyByteSizeInternalForTest();
1116
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setReferenceInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setReferenceInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setReferenceInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setReferenceInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1117
38
  void setInline(Handle handle, absl::string_view value) override {
1118
38
    header_map_->setInline(handle, value);
1119
38
    header_map_->verifyByteSizeInternalForTest();
1120
38
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Line
Count
Source
1117
38
  void setInline(Handle handle, absl::string_view value) override {
1118
38
    header_map_->setInline(handle, value);
1119
38
    header_map_->verifyByteSizeInternalForTest();
1120
38
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1121
0
  void setInline(Handle handle, uint64_t value) override {
1122
0
    header_map_->setInline(handle, value);
1123
0
    header_map_->verifyByteSizeInternalForTest();
1124
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>, unsigned long)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::setInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>, unsigned long)
1125
0
  size_t removeInline(Handle handle) override {
1126
0
    const size_t rc = header_map_->removeInline(handle);
1127
0
    header_map_->verifyByteSizeInternalForTest();
1128
0
    return rc;
1129
0
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::removeInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)0>)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::removeInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)2>)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::removeInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)3>)
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::removeInline(Envoy::Http::CustomInlineHeaderRegistry::Handle<(Envoy::Http::CustomInlineHeaderRegistry::Type)1>)
1130
33.6k
  StatefulHeaderKeyFormatterOptConstRef formatter() const override {
1131
33.6k
    return StatefulHeaderKeyFormatterOptConstRef(header_map_->formatter());
1132
33.6k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::formatter() const
Line
Count
Source
1130
11.4k
  StatefulHeaderKeyFormatterOptConstRef formatter() const override {
1131
11.4k
    return StatefulHeaderKeyFormatterOptConstRef(header_map_->formatter());
1132
11.4k
  }
Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::formatter() const
Line
Count
Source
1130
22.2k
  StatefulHeaderKeyFormatterOptConstRef formatter() const override {
1131
22.2k
    return StatefulHeaderKeyFormatterOptConstRef(header_map_->formatter());
1132
22.2k
  }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::formatter() const
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::formatter() const
1133
0
  StatefulHeaderKeyFormatterOptRef formatter() override { return header_map_->formatter(); }
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestHeaderMap, Envoy::Http::RequestHeaderMapImpl>::formatter()
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseHeaderMap, Envoy::Http::ResponseHeaderMapImpl>::formatter()
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::ResponseTrailerMap, Envoy::Http::ResponseTrailerMapImpl>::formatter()
Unexecuted instantiation: Envoy::Http::TestHeaderMapImplBase<Envoy::Http::RequestTrailerMap, Envoy::Http::RequestTrailerMapImpl>::formatter()
1134
1135
  std::unique_ptr<Impl> header_map_{Impl::create()};
1136
};
1137
1138
/**
1139
 * Typed test implementations for all of the concrete header types.
1140
 */
1141
class TestRequestHeaderMapImpl
1142
    : public TestHeaderMapImplBase<RequestHeaderMap, RequestHeaderMapImpl> {
1143
public:
1144
  using TestHeaderMapImplBase::TestHeaderMapImplBase;
1145
1146
  INLINE_REQ_STRING_HEADERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1147
  INLINE_REQ_NUMERIC_HEADERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1148
  INLINE_REQ_RESP_STRING_HEADERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1149
  INLINE_REQ_RESP_NUMERIC_HEADERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1150
1151
  // Tracing::TraceContext
1152
0
  absl::string_view protocol() const override { return header_map_->getProtocolValue(); }
1153
0
  absl::string_view host() const override { return header_map_->getHostValue(); }
1154
0
  absl::string_view path() const override { return header_map_->getPathValue(); }
1155
0
  absl::string_view method() const override { return header_map_->getMethodValue(); }
1156
0
  void forEach(IterateCallback callback) const override {
1157
0
    ASSERT(header_map_);
1158
0
    header_map_->iterate([cb = std::move(callback)](const HeaderEntry& entry) {
1159
0
      if (cb(entry.key().getStringView(), entry.value().getStringView())) {
1160
0
        return HeaderMap::Iterate::Continue;
1161
0
      }
1162
0
      return HeaderMap::Iterate::Break;
1163
0
    });
1164
0
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::forEach(std::__1::function<bool (std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)>) const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::forEach(std::__1::function<bool (std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)>) const
1165
0
  absl::optional<absl::string_view> getByKey(absl::string_view key) const override {
1166
0
    ASSERT(header_map_);
1167
0
    return header_map_->getByKey(key);
1168
0
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getByKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >) const
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::getByKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >) const
1169
0
  void setByKey(absl::string_view key, absl::string_view value) override {
1170
0
    ASSERT(header_map_);
1171
0
    header_map_->setByKey(key, value);
1172
0
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1173
0
  void setByReference(absl::string_view key, absl::string_view val) override {
1174
0
    ASSERT(header_map_);
1175
0
    header_map_->setByReference(key, val);
1176
0
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByReference(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByReference(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1177
0
  void setByReferenceKey(absl::string_view key, absl::string_view val) override {
1178
0
    ASSERT(header_map_);
1179
0
    header_map_->setByReferenceKey(key, val);
1180
0
  }
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByReferenceKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
Unexecuted instantiation: Envoy::Http::TestRequestHeaderMapImpl::setByReferenceKey(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)
1181
0
  void removeByKey(absl::string_view key) override { header_map_->removeByKey(key); }
1182
};
1183
1184
using TestRequestTrailerMapImpl = TestHeaderMapImplBase<RequestTrailerMap, RequestTrailerMapImpl>;
1185
1186
class TestResponseHeaderMapImpl
1187
    : public TestHeaderMapImplBase<ResponseHeaderMap, ResponseHeaderMapImpl> {
1188
public:
1189
  using TestHeaderMapImplBase::TestHeaderMapImplBase;
1190
1191
  INLINE_RESP_STRING_HEADERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1192
  INLINE_RESP_NUMERIC_HEADERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1193
  INLINE_REQ_RESP_STRING_HEADERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1194
  INLINE_REQ_RESP_NUMERIC_HEADERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1195
  INLINE_RESP_STRING_HEADERS_TRAILERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1196
  INLINE_RESP_NUMERIC_HEADERS_TRAILERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1197
};
1198
1199
class TestResponseTrailerMapImpl
1200
    : public TestHeaderMapImplBase<ResponseTrailerMap, ResponseTrailerMapImpl> {
1201
public:
1202
  using TestHeaderMapImplBase::TestHeaderMapImplBase;
1203
1204
  INLINE_RESP_STRING_HEADERS_TRAILERS(DEFINE_TEST_INLINE_STRING_HEADER_FUNCS)
1205
  INLINE_RESP_NUMERIC_HEADERS_TRAILERS(DEFINE_TEST_INLINE_NUMERIC_HEADER_FUNCS)
1206
};
1207
1208
// Helper method to create a header map from an initializer list. Useful due to make_unique's
1209
// inability to infer the initializer list type.
1210
template <class T>
1211
inline std::unique_ptr<T>
1212
makeHeaderMap(const std::initializer_list<std::pair<std::string, std::string>>& values) {
1213
  return std::make_unique<T, const std::initializer_list<std::pair<std::string, std::string>>&>(
1214
      values);
1215
}
1216
1217
} // namespace Http
1218
1219
namespace Api {
1220
ApiPtr createApiForTest();
1221
ApiPtr createApiForTest(Filesystem::Instance& filesystem);
1222
ApiPtr createApiForTest(Random::RandomGenerator& random);
1223
ApiPtr createApiForTest(Stats::Store& stat_store);
1224
ApiPtr createApiForTest(Stats::Store& stat_store, Random::RandomGenerator& random);
1225
ApiPtr createApiForTest(Event::TimeSystem& time_system);
1226
ApiPtr createApiForTest(Stats::Store& stat_store, Event::TimeSystem& time_system);
1227
} // namespace Api
1228
1229
// Useful for testing ScopeTrackedObject order of deletion.
1230
class MessageTrackedObject : public ScopeTrackedObject {
1231
public:
1232
0
  MessageTrackedObject(absl::string_view sv) : sv_(sv) {}
1233
0
  void dumpState(std::ostream& os, int /*indent_level*/) const override { os << sv_; }
1234
1235
private:
1236
  absl::string_view sv_;
1237
};
1238
1239
0
MATCHER_P(HeaderMapEqualIgnoreOrder, expected, "") {
1240
0
  const bool equal = TestUtility::headerMapEqualIgnoreOrder(*arg, *expected);
1241
0
  if (!equal) {
1242
0
    *result_listener << "\n"
1243
0
                     << TestUtility::addLeftAndRightPadding("Expected header map:") << "\n"
1244
0
                     << *expected
1245
0
                     << TestUtility::addLeftAndRightPadding("is not equal to actual header map:")
1246
0
                     << "\n"
1247
0
                     << *arg << TestUtility::addLeftAndRightPadding("") // line full of padding
1248
0
                     << "\n";
1249
0
  }
1250
0
  return equal;
1251
0
}
1252
1253
#if defined(ENVOY_ENABLE_FULL_PROTOS)
1254
MATCHER_P(ProtoEq, expected, "") {
1255
  const bool equal =
1256
      TestUtility::protoEqual(arg, expected, /*ignore_repeated_field_ordering=*/false);
1257
  if (!equal) {
1258
    *result_listener << "\n"
1259
                     << "==========================Expected proto:===========================\n"
1260
                     << expected.DebugString()
1261
                     << "------------------is not equal to actual proto:---------------------\n"
1262
                     << arg.DebugString()
1263
                     << "====================================================================\n";
1264
  }
1265
  return equal;
1266
}
1267
1268
MATCHER_P(ProtoEqIgnoreRepeatedFieldOrdering, expected, "") {
1269
  const bool equal =
1270
      TestUtility::protoEqual(arg, expected, /*ignore_repeated_field_ordering=*/true);
1271
  if (!equal) {
1272
    *result_listener << "\n"
1273
                     << TestUtility::addLeftAndRightPadding("Expected proto:") << "\n"
1274
                     << expected.DebugString()
1275
                     << TestUtility::addLeftAndRightPadding("is not equal to actual proto:") << "\n"
1276
                     << arg.DebugString()
1277
                     << TestUtility::addLeftAndRightPadding("") // line full of padding
1278
                     << "\n";
1279
  }
1280
  return equal;
1281
}
1282
1283
MATCHER_P2(ProtoEqIgnoringField, expected, ignored_field, "") {
1284
  const bool equal = TestUtility::protoEqualIgnoringField(arg, expected, ignored_field);
1285
  if (!equal) {
1286
    std::string but_ignoring = absl::StrCat("(but ignoring ", ignored_field, ")");
1287
    *result_listener << "\n"
1288
                     << TestUtility::addLeftAndRightPadding("Expected proto:") << "\n"
1289
                     << TestUtility::addLeftAndRightPadding(but_ignoring) << "\n"
1290
                     << expected.DebugString()
1291
                     << TestUtility::addLeftAndRightPadding("is not equal to actual proto:") << "\n"
1292
                     << arg.DebugString()
1293
                     << TestUtility::addLeftAndRightPadding("") // line full of padding
1294
                     << "\n";
1295
  }
1296
  return equal;
1297
}
1298
1299
MATCHER_P(RepeatedProtoEq, expected, "") {
1300
  const bool equal = TestUtility::repeatedPtrFieldEqual(arg, expected);
1301
  if (!equal) {
1302
    *result_listener << "\n"
1303
                     << TestUtility::addLeftAndRightPadding("Expected repeated:") << "\n"
1304
                     << RepeatedPtrUtil::debugString(expected) << "\n"
1305
                     << TestUtility::addLeftAndRightPadding("is not equal to actual repeated:")
1306
                     << "\n"
1307
                     << RepeatedPtrUtil::debugString(arg) << "\n"
1308
                     << TestUtility::addLeftAndRightPadding("") // line full of padding
1309
                     << "\n";
1310
  }
1311
  return equal;
1312
}
1313
1314
MATCHER_P(DecodedResourcesEq, expected, "") {
1315
  const bool equal = std::equal(arg.begin(), arg.end(), expected.begin(), expected.end(),
1316
                                TestUtility::decodedResourceEq);
1317
  if (!equal) {
1318
    const auto format_resources =
1319
        [](const std::vector<Config::DecodedResourceRef>& resources) -> std::string {
1320
      std::vector<std::string> resource_strs;
1321
      std::transform(
1322
          resources.begin(), resources.end(), std::back_inserter(resource_strs),
1323
          [](const Config::DecodedResourceRef& resource) -> std::string {
1324
            return fmt::format(
1325
                "<name: {}, aliases: {}, version: {}, resource: {}>", resource.get().name(),
1326
                absl::StrJoin(resource.get().aliases(), ","), resource.get().version(),
1327
                resource.get().hasResource() ? resource.get().resource().DebugString() : "(none)");
1328
          });
1329
      return absl::StrJoin(resource_strs, ", ");
1330
    };
1331
    *result_listener << "\n"
1332
                     << TestUtility::addLeftAndRightPadding("Expected resources:") << "\n"
1333
                     << format_resources(expected) << "\n"
1334
                     << TestUtility::addLeftAndRightPadding("are not equal to actual resources:")
1335
                     << "\n"
1336
                     << format_resources(arg) << "\n"
1337
                     << TestUtility::addLeftAndRightPadding("") // line full of padding
1338
                     << "\n";
1339
  }
1340
  return equal;
1341
}
1342
1343
MATCHER_P(Percent, rhs, "") {
1344
  envoy::type::v3::FractionalPercent expected;
1345
  expected.set_numerator(rhs);
1346
  expected.set_denominator(envoy::type::v3::FractionalPercent::HUNDRED);
1347
  return TestUtility::protoEqual(expected, arg, /*ignore_repeated_field_ordering=*/false);
1348
}
1349
1350
#endif
1351
1352
#ifdef ENVOY_ENABLE_YAML
1353
MATCHER_P(JsonStringEq, expected, "") {
1354
  const bool equal = TestUtility::jsonStringEqual(arg, expected);
1355
  if (!equal) {
1356
    *result_listener << "\n"
1357
                     << TestUtility::addLeftAndRightPadding("Expected JSON string:") << "\n"
1358
                     << expected
1359
                     << TestUtility::addLeftAndRightPadding("is not equal to actual JSON string:")
1360
                     << "\n"
1361
                     << arg << TestUtility::addLeftAndRightPadding("") // line full of padding
1362
                     << "\n";
1363
  }
1364
  return equal;
1365
}
1366
#endif
1367
1368
#ifdef WIN32
1369
#define DISABLE_UNDER_WINDOWS return
1370
#else
1371
#define DISABLE_UNDER_WINDOWS                                                                      \
1372
  do {                                                                                             \
1373
  } while (0)
1374
#endif
1375
1376
} // namespace Envoy