Coverage Report

Created: 2026-01-10 06:29

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ada-url/fuzz/url_search_params.cc
Line
Count
Source
1
#include <fuzzer/FuzzedDataProvider.h>
2
3
#include <memory>
4
#include <string>
5
6
#include "ada.cpp"
7
#include "ada.h"
8
9
1.15k
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
10
1.15k
  FuzzedDataProvider fdp(data, size);
11
1.15k
  std::string source = fdp.ConsumeRandomLengthString(256);
12
1.15k
  std::string base_source = fdp.ConsumeRandomLengthString(256);
13
14
  /**
15
   * ada::url_search_params
16
   */
17
18
1.15k
  auto base_source_view =
19
1.15k
      std::string_view(base_source.data(), base_source.length());
20
1.15k
  auto initialized = ada::url_search_params(base_source_view);
21
22
1.15k
  auto search_params = ada::url_search_params();
23
1.15k
  search_params.append(source, base_source);
24
1.15k
  search_params.set(source, base_source);
25
1.15k
  search_params.to_string();
26
1.15k
  if (!search_params.has(base_source)) {
27
952
    search_params.append(base_source, source);
28
952
  }
29
1.15k
  search_params.remove(source);
30
1.15k
  search_params.remove(source, base_source);
31
1.15k
  if (search_params.has(base_source, source)) {
32
952
    search_params.remove(base_source);
33
952
    search_params.remove(base_source, source);
34
952
  }
35
36
1.15k
  auto keys = search_params.get_keys();
37
1.15k
  while (keys.has_next()) {
38
0
    keys.next();
39
0
  }
40
41
1.15k
  auto values = search_params.get_values();
42
1.15k
  while (values.has_next()) {
43
0
    values.next();
44
0
  }
45
46
1.15k
  auto entries = search_params.get_entries();
47
1.15k
  while (entries.has_next()) {
48
0
    entries.next();
49
0
  }
50
51
  // This is testing a private method used only for C API.
52
1.15k
  std::string resetted_value = fdp.ConsumeRandomLengthString(256);
53
1.15k
  search_params.reset(resetted_value);
54
55
1.15k
  return 0;
56
1.15k
}