Coverage Report

Created: 2025-06-24 07:53

/src/duckdb/test/ossfuzz/parse_fuzz_test.cpp
Line
Count
Source (jump to first uncovered line)
1
#include "duckdb.hpp"
2
#include "duckdb/common/string_util.hpp"
3
#include <string>
4
#include <unordered_set>
5
6
10.8k
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
7
10.8k
  std::string input(reinterpret_cast<const char *>(data), size);
8
10.8k
  duckdb::DuckDB db(nullptr);
9
10.8k
  duckdb::Connection con(db);
10
11
10.8k
  std::unordered_set<std::string> internal_error_messages = {"Unoptimized Result differs from original result!",
12
10.8k
                                                             "INTERNAL"};
13
10.8k
  con.Query("PRAGMA enable_verification");
14
10.8k
  try {
15
10.8k
    auto result = con.Query(input);
16
10.8k
    if (result->HasError()) {
17
12.9k
      for (auto &internal_error : internal_error_messages) {
18
12.9k
        if (duckdb::StringUtil::Contains(result->GetError(), internal_error)) {
19
3
          return 1;
20
3
        }
21
12.9k
      }
22
6.49k
    }
23
10.8k
  } catch (std::exception &e) {
24
18
  }
25
10.8k
  return 0;
26
10.8k
}