Coverage Report

Created: 2024-09-19 09:45

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