Coverage Report

Created: 2026-07-25 06:09

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/poco/Foundation/fuzzing/DateTimeParse.cpp
Line
Count
Source
1
#include "Poco/DateTimeParser.h"
2
#include "Poco/DateTimeFormat.h"
3
#include "Poco/DateTimeFormatter.h"
4
5
using namespace Poco;
6
7
extern "C" int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
8
1.97k
{
9
1.97k
  const std::string input(reinterpret_cast<const char*>(data), size);
10
11
1.97k
  const std::string formats[] = {
12
1.97k
    DateTimeFormat::ISO8601_FORMAT,
13
1.97k
    DateTimeFormat::ISO8601_FRAC_FORMAT,
14
1.97k
    DateTimeFormat::RFC822_FORMAT,
15
1.97k
    DateTimeFormat::RFC1123_FORMAT,
16
1.97k
    DateTimeFormat::HTTP_FORMAT,
17
1.97k
    DateTimeFormat::RFC850_FORMAT,
18
1.97k
    DateTimeFormat::RFC1036_FORMAT,
19
1.97k
    DateTimeFormat::ASCTIME_FORMAT,
20
1.97k
    DateTimeFormat::SORTABLE_FORMAT,
21
1.97k
    "%m/%d/%y %h:%M %a",
22
1.97k
    "T%H:%M:%F",
23
1.97k
  };
24
25
1.97k
  int tzd = 0;
26
1.97k
  DateTime dt;
27
28
1.97k
  for (const auto& format : formats)
29
21.6k
  {
30
21.6k
    DateTimeParser::tryParse(format, input, dt, tzd);
31
21.6k
    DateTimeFormatter::format(dt.timestamp(), format, tzd);
32
21.6k
  }
33
34
1.97k
  try { dt.makeLocal(tzd); } catch (const std::exception&) {}
35
1.97k
  try { dt.makeUTC(tzd); } catch (const std::exception&) {}
36
37
1.97k
  try
38
1.97k
  {
39
1.97k
    dt = DateTimeParser::parse(input, tzd);
40
1.97k
  }
41
1.97k
  catch (const std::exception&)
42
1.97k
  {
43
1.67k
  }
44
45
1.97k
  return 0;
46
1.97k
}