mirror of
https://github.com/crystalidea/qt6windows7.git
synced 2025-07-04 00:05:25 +08:00
qt 6.5.1 original
This commit is contained in:
@ -0,0 +1,30 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: BSD-3-Clause
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
project(fromstring LANGUAGES CXX)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
set(CMAKE_AUTOMOC ON)
|
||||
set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
|
||||
find_package(Qt6 REQUIRED COMPONENTS Core)
|
||||
|
||||
qt_add_executable(fromstring
|
||||
main.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(fromstring PUBLIC
|
||||
Qt::Core
|
||||
)
|
||||
if(DEFINED ENV{LIB_FUZZING_ENGINE})
|
||||
target_link_libraries(fromstring PRIVATE
|
||||
$ENV{LIB_FUZZING_ENGINE}
|
||||
)
|
||||
else()
|
||||
target_link_libraries(fromstring PRIVATE
|
||||
-fsanitize=fuzzer
|
||||
)
|
||||
endif()
|
88
tests/libfuzzer/corelib/time/qdatetime/fromstring/main.cpp
Normal file
88
tests/libfuzzer/corelib/time/qdatetime/fromstring/main.cpp
Normal file
@ -0,0 +1,88 @@
|
||||
// Copyright (C) 2020 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
// Enable to report the currently used format, e.g. when reproducing issues
|
||||
// #define LOG_FORMAT
|
||||
#ifdef LOG_FORMAT
|
||||
#include <QDebug>
|
||||
#endif
|
||||
|
||||
static const QString formats[] = {
|
||||
QStringLiteral("M/d/yyyy"),
|
||||
QStringLiteral("h"),
|
||||
QStringLiteral("hh"),
|
||||
QStringLiteral("H"),
|
||||
QStringLiteral("HH"),
|
||||
QStringLiteral("m"),
|
||||
QStringLiteral("mm"),
|
||||
QStringLiteral("s"),
|
||||
QStringLiteral("ss"),
|
||||
QStringLiteral("z"),
|
||||
QStringLiteral("zzz"),
|
||||
QStringLiteral("A"),
|
||||
QStringLiteral("t"),
|
||||
QStringLiteral("M/d/yyyy hh:mm"),
|
||||
QStringLiteral("M/d/yyyy hh:mm A"),
|
||||
QStringLiteral("M/d/yyyy, hh:mm"),
|
||||
QStringLiteral("M/d/yyyy, hh:mm A"),
|
||||
QStringLiteral("MMM d yyyy"),
|
||||
QStringLiteral("MMM d yyyy hh:mm"),
|
||||
QStringLiteral("MMM d yyyy hh:mm:ss"),
|
||||
QStringLiteral("MMM d yyyy, hh:mm"),
|
||||
QStringLiteral("MMM d yyyy, hh:mm:ss"),
|
||||
QStringLiteral("MMMM d yyyy"),
|
||||
QStringLiteral("MMMM d yyyy hh:mm"),
|
||||
QStringLiteral("MMMM d yyyy hh:mm:ss"),
|
||||
QStringLiteral("MMMM d yyyy, hh:mm"),
|
||||
QStringLiteral("MMMM d yyyy, hh:mm:ss"),
|
||||
QStringLiteral("MMMM d yyyy, hh:mm:ss t"),
|
||||
QStringLiteral("MMM d, yyyy"),
|
||||
QStringLiteral("MMM d, yyyy hh:mm"),
|
||||
QStringLiteral("MMM d, yyyy hh:mm:ss"),
|
||||
QStringLiteral("MMMM d, yyyy"),
|
||||
QStringLiteral("MMMM d, yyyy hh:mm"),
|
||||
QStringLiteral("MMMM d, yyyy hh:mm:ss"),
|
||||
QStringLiteral("MMMM d, yyyy hh:mm:ss t"),
|
||||
QStringLiteral("d MMM yyyy"),
|
||||
QStringLiteral("d MMM yyyy hh:mm"),
|
||||
QStringLiteral("d MMM yyyy hh:mm:ss"),
|
||||
QStringLiteral("d MMM yyyy, hh:mm"),
|
||||
QStringLiteral("d MMM yyyy, hh:mm:ss"),
|
||||
QStringLiteral("d MMMM yyyy"),
|
||||
QStringLiteral("d MMMM yyyy hh:mm"),
|
||||
QStringLiteral("d MMMM yyyy hh:mm:ss"),
|
||||
QStringLiteral("d MMMM yyyy, hh:mm"),
|
||||
QStringLiteral("d MMMM yyyy, hh:mm:ss"),
|
||||
QStringLiteral("d MMM, yyyy"),
|
||||
QStringLiteral("d MMM, yyyy hh:mm"),
|
||||
QStringLiteral("d MMM, yyyy hh:mm:ss"),
|
||||
QStringLiteral("d MMMM, yyyy"),
|
||||
QStringLiteral("d MMMM, yyyy hh:mm"),
|
||||
QStringLiteral("d MMMM, yyyy hh:mm:ss"),
|
||||
QStringLiteral("yyyy-MM-ddThh:mm:ss.zt"),
|
||||
};
|
||||
|
||||
// libFuzzer entry-point for testing QDateTimeParser
|
||||
extern "C" int LLVMFuzzerTestOneInput(const char *Data, size_t Size)
|
||||
{
|
||||
const QString userString = QString::fromUtf8(Data, Size);
|
||||
|
||||
QDateTime::fromString(userString, Qt::TextDate);
|
||||
QDateTime::fromString(userString, Qt::ISODate);
|
||||
QDateTime::fromString(userString, Qt::RFC2822Date);
|
||||
QDateTime::fromString(userString, Qt::ISODateWithMs);
|
||||
|
||||
QDateTime::fromString(userString, formats[0], QCalendar(QCalendar::System::Gregorian));
|
||||
for (int sys = int(QCalendar::System::Julian); sys <= int(QCalendar::System::Last); ++sys)
|
||||
QDateTime::fromString(userString, formats[0], QCalendar(QCalendar::System(sys)));
|
||||
|
||||
for (const auto &format : formats) {
|
||||
#ifdef LOG_FORMAT
|
||||
qDebug() << "Trying format:" << format;
|
||||
#endif
|
||||
QDateTime::fromString(userString, format);
|
||||
}
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user