Mercurial > minori
view dep/fmt/test/fuzzing/chrono-timepoint.cc @ 367:8d45d892be88 default tip
*: instead of pugixml, use Qt XML features
this means we have one extra Qt dependency though...
author | Paper <paper@tflc.us> |
---|---|
date | Sun, 17 Nov 2024 22:55:47 -0500 |
parents | 1faa72660932 |
children |
line wrap: on
line source
// Copyright (c) 2021, Paul Dreik // For license information refer to format.h. #include <fmt/chrono.h> #include "fuzzer-common.h" /* * a fuzzer for the chrono timepoints formatters * C is a clock (std::chrono::system_clock etc) */ template <typename C> void doit(const uint8_t* data, size_t size) { using Rep = typename C::time_point::rep; constexpr auto N = sizeof(Rep); if (size < N) return; const auto x = assign_from_buf<Rep>(data); typename C::duration dur{x}; typename C::time_point timepoint{dur}; data += N; size -= N; data_to_string format_str(data, size); std::string message = fmt::format(format_str.get(), timepoint); } extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { try { doit<std::chrono::system_clock>(data, size); } catch (...) { } return 0; }