2
0
mirror of https://github.com/boostorg/locale.git synced 2026-01-21 05:02:09 +00:00
Files
locale/fuzzing/fuzz_scientific_to_int.cpp
2025-01-16 19:51:23 +01:00

37 lines
939 B
C++

//
// Copyright (c) 2025 Alexander Grund
//
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt
#include "../src/util/numeric_conversion.hpp"
#include <boost/core/detail/string_view.hpp>
#include <cstdint>
#include <exception>
#include <iostream>
extern "C" int LLVMFuzzerTestOneInput(const std::uint8_t* data, std::size_t size)
{
const boost::core::string_view sv{reinterpret_cast<const char*>(data), size};
using boost::locale::util::try_scientific_to_int;
try {
uint8_t u8{};
try_scientific_to_int(sv, u8);
uint16_t u16{};
try_scientific_to_int(sv, u16);
uint32_t u32{};
try_scientific_to_int(sv, u32);
uint8_t u64{};
try_scientific_to_int(sv, u64);
} catch(...) {
std::cerr << "Error with '" << sv << "' (size " << size << ')' << std::endl;
std::terminate();
}
return 0;
}