should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,50 @@
#include "catch.hpp"
#include "duckdb/common/file_system.hpp"
#include "test_helpers.hpp"
#include <fstream>
#include <streambuf>
#include <sstream>
#include <string>
using namespace duckdb;
using namespace std;
constexpr const char *QUERY_DIRECTORY = "test/ossfuzz/cases";
static void test_runner() {
duckdb::unique_ptr<FileSystem> fs = FileSystem::CreateLocal();
auto file_name = Catch::getResultCapture().getCurrentTestName();
duckdb::unique_ptr<QueryResult> result;
DuckDB db(nullptr);
Connection con(db);
std::ifstream t(file_name);
duckdb::stringstream buffer;
buffer << t.rdbuf();
auto query = buffer.str();
result = con.Query(query.c_str());
unordered_set<string> internal_error_messages = {"Unoptimized Result differs from original result!", "INTERNAL"};
if (result->HasError()) {
if (TestIsInternalError(internal_error_messages, result->GetError())) {
result->Print();
REQUIRE(!result->GetErrorObject().HasError());
}
}
// we don't know whether the query fails or not and we don't know the
// correct result we just don't want it to crash
REQUIRE(1 == 1);
}
struct RegisterOssfuzzTests {
RegisterOssfuzzTests() {
// register a separate test for each file in the QUERY_DIRECTORY
duckdb::unique_ptr<FileSystem> fs = FileSystem::CreateLocal();
fs->ListFiles(QUERY_DIRECTORY, [&](string path, bool) {
REGISTER_TEST_CASE(test_runner, string(QUERY_DIRECTORY) + "/" + path, "[ossfuzz][.]");
});
}
};
RegisterOssfuzzTests register_ossfuzz_test;