From e5792b5a36c2431675e377f34595e4894c55a452 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Tue, 22 Mar 2022 15:30:06 +0200 Subject: [PATCH] drop QUuid class [ci reset] Signed-off-by: Ivailo Monev --- package/freebsd/pkg-plist | 2 - package/netbsd/PLIST | 2 - package/openbsd/pkg/PLIST | 2 - scripts/namefsck.py | 1 - src/core/CMakeLists.txt | 3 - src/core/plugin/quuid.cpp | 790 ---------------------- src/core/plugin/quuid.h | 123 ---- src/tools/uic/cpp/cppwriteincludes.cpp | 1 - tests/auto/quuid/CMakeLists.txt | 9 - tests/auto/quuid/testProcessUniqueness/main.cpp | 42 -- tests/auto/quuid/tst_quuid.cpp | 335 --------- tests/benchmarks/core/plugin/quuid/CMakeLists.txt | 3 - tests/benchmarks/core/plugin/quuid/tst_quuid.cpp | 219 ------ 13 files changed, 1532 deletions(-) delete mode 100644 src/core/plugin/quuid.cpp delete mode 100644 src/core/plugin/quuid.h delete mode 100644 tests/auto/quuid/CMakeLists.txt delete mode 100644 tests/auto/quuid/testProcessUniqueness/main.cpp delete mode 100644 tests/auto/quuid/tst_quuid.cpp delete mode 100644 tests/benchmarks/core/plugin/quuid/CMakeLists.txt delete mode 100644 tests/benchmarks/core/plugin/quuid/tst_quuid.cpp diff --git a/package/freebsd/pkg-plist b/package/freebsd/pkg-plist index c8bdaca07..a54a433c3 100644 --- a/package/freebsd/pkg-plist +++ b/package/freebsd/pkg-plist @@ -170,7 +170,6 @@ include/katie/QtCore/QTimerEvent include/katie/QtCore/QTranslator include/katie/QtCore/QTypeInfo include/katie/QtCore/QUrl -include/katie/QtCore/QUuid include/katie/QtCore/QVarLengthArray include/katie/QtCore/QVariant include/katie/QtCore/QVariantHash @@ -309,7 +308,6 @@ include/katie/QtCore/qtimeline.h include/katie/QtCore/qtimer.h include/katie/QtCore/qtranslator.h include/katie/QtCore/qurl.h -include/katie/QtCore/quuid.h include/katie/QtCore/qvariant.h include/katie/QtCore/qvarlengtharray.h include/katie/QtCore/qvector.h diff --git a/package/netbsd/PLIST b/package/netbsd/PLIST index b9520119c..816d352c3 100644 --- a/package/netbsd/PLIST +++ b/package/netbsd/PLIST @@ -173,7 +173,6 @@ include/katie/QtCore/QTimerEvent include/katie/QtCore/QTranslator include/katie/QtCore/QTypeInfo include/katie/QtCore/QUrl -include/katie/QtCore/QUuid include/katie/QtCore/QVarLengthArray include/katie/QtCore/QVariant include/katie/QtCore/QVariantHash @@ -312,7 +311,6 @@ include/katie/QtCore/qtimeline.h include/katie/QtCore/qtimer.h include/katie/QtCore/qtranslator.h include/katie/QtCore/qurl.h -include/katie/QtCore/quuid.h include/katie/QtCore/qvariant.h include/katie/QtCore/qvarlengtharray.h include/katie/QtCore/qvector.h diff --git a/package/openbsd/pkg/PLIST b/package/openbsd/pkg/PLIST index 9b4d3d068..a38aacc6b 100644 --- a/package/openbsd/pkg/PLIST +++ b/package/openbsd/pkg/PLIST @@ -173,7 +173,6 @@ include/katie/QtCore/QTimerEvent include/katie/QtCore/QTranslator include/katie/QtCore/QTypeInfo include/katie/QtCore/QUrl -include/katie/QtCore/QUuid include/katie/QtCore/QVarLengthArray include/katie/QtCore/QVariant include/katie/QtCore/QVariantHash @@ -312,7 +311,6 @@ include/katie/QtCore/qtimeline.h include/katie/QtCore/qtimer.h include/katie/QtCore/qtranslator.h include/katie/QtCore/qurl.h -include/katie/QtCore/quuid.h include/katie/QtCore/qvariant.h include/katie/QtCore/qvarlengtharray.h include/katie/QtCore/qvector.h diff --git a/scripts/namefsck.py b/scripts/namefsck.py index 4fd806d7e..dffeaa7d0 100755 --- a/scripts/namefsck.py +++ b/scripts/namefsck.py @@ -687,7 +687,6 @@ classlist = [ "QUnixPrintWidget", "QUpdateLaterEvent", "QUrl", - "QUuid", "QValidator", "QVariant", "QVariantAnimation", diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index cc3c91f84..7c949dec9 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -51,7 +51,6 @@ set(CORE_PUBLIC_HEADERS QEventLoop QDataStream QScopedValueRollback - QUuid QAbstractItemModel QTextBoundaryFinder QTimer @@ -211,7 +210,6 @@ set(CORE_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qlibrary.h ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qlibrary_p.h ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qplugin.h - ${CMAKE_CURRENT_SOURCE_DIR}/plugin/quuid.h ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qfactoryloader_p.h ${CMAKE_CURRENT_SOURCE_DIR}/thread/qmutex.h ${CMAKE_CURRENT_SOURCE_DIR}/thread/qreadwritelock.h @@ -340,7 +338,6 @@ set(CORE_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/kernel/qeventdispatcher_unix.cpp ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qpluginloader.cpp ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qfactoryloader.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/plugin/quuid.cpp ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qlibrary.cpp ${CMAKE_CURRENT_SOURCE_DIR}/plugin/qlibrary_unix.cpp ${CMAKE_CURRENT_SOURCE_DIR}/thread/qatomic.cpp diff --git a/src/core/plugin/quuid.cpp b/src/core/plugin/quuid.cpp deleted file mode 100644 index 52e1f0c6f..000000000 --- a/src/core/plugin/quuid.cpp +++ /dev/null @@ -1,790 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2016 Ivailo Monev -** -** This file is part of the QtCore module of the Katie Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "quuid.h" -#include "qdatastream.h" -#include "qendian.h" -#include "qcorecommon_p.h" - -QT_BEGIN_NAMESPACE - -#ifndef QT_NO_QUUID_STRING -template -void _q_toHex(Char *&dst, Integral value) -{ - static const char digits[] = "0123456789abcdef"; - - value = qToBigEndian(value); - - const char* p = reinterpret_cast(&value); - - for (uint i = 0; i < sizeof(Integral); ++i, dst += 2) { - uint j = (p[i] >> 4) & 0xf; - dst[0] = Char(digits[j]); - j = p[i] & 0xf; - dst[1] = Char(digits[j]); - } -} - -template -bool _q_fromHex(const Char *&src, Integral &value) -{ - value = 0; - - for (uint i = 0; i < sizeof(Integral) * 2; ++i) { - int ch = *src++; - int tmp; - if (ch >= '0' && ch <= '9') - tmp = ch - '0'; - else if (ch >= 'a' && ch <= 'f') - tmp = ch - 'a' + 10; - else if (ch >= 'A' && ch <= 'F') - tmp = ch - 'A' + 10; - else - return false; - - value = value * 16 + tmp; - } - - return true; -} - -template -void _q_uuidToHex(Char *dst, const uint &d1, const ushort &d2, const ushort &d3, const uchar (&d4)[8]) -{ - *dst++ = Char('{'); - _q_toHex(dst, d1); - *dst++ = Char('-'); - _q_toHex(dst, d2); - *dst++ = Char('-'); - _q_toHex(dst, d3); - *dst++ = Char('-'); - for (int i = 0; i < 2; i++) - _q_toHex(dst, d4[i]); - *dst++ = Char('-'); - for (int i = 2; i < 8; i++) - _q_toHex(dst, d4[i]); - *dst = Char('}'); -} - -template -bool _q_uuidFromHex(const Char *&src, uint &d1, ushort &d2, ushort &d3, uchar (&d4)[8]) -{ - if (*src == Char('{')) - src++; - if (!_q_fromHex(src, d1) - || *src++ != Char('-') - || !_q_fromHex(src, d2) - || *src++ != Char('-') - || !_q_fromHex(src, d3) - || *src++ != Char('-') - || !_q_fromHex(src, d4[0]) - || !_q_fromHex(src, d4[1]) - || *src++ != Char('-') - || !_q_fromHex(src, d4[2]) - || !_q_fromHex(src, d4[3]) - || !_q_fromHex(src, d4[4]) - || !_q_fromHex(src, d4[5]) - || !_q_fromHex(src, d4[6]) - || !_q_fromHex(src, d4[7])) { - return false; - } - - return true; -} -#endif - -/*! - \class QUuid - \brief The QUuid class stores a Universally Unique Identifier (UUID). - - \reentrant - - Using \e{U}niversally \e{U}nique \e{ID}entifiers (UUID) is a - standard way to uniquely identify entities in a distributed - computing environment. A UUID is a 16-byte (128-bit) number - generated by some algorithm that is meant to guarantee that the - UUID will be unique in the distributed computing environment where - it is used. The acronym GUID is often used instead, \e{G}lobally - \e{U}nique \e{ID}entifiers, but it refers to the same thing. - - \target Variant field - Actually, the GUID is one \e{variant} of UUID. Multiple variants - are in use. Each UUID contains a bit field that specifies which - type (variant) of UUID it is. Call variant() to discover which - type of UUID an instance of QUuid contains. It extracts the three - most signifcant bits of byte 8 of the 16 bytes. In QUuid, byte 8 - is \c{QUuid::data4[0]}. If you create instances of QUuid using the - constructor that accepts all the numeric values as parameters, use - the following table to set the three most significant bits of - parameter \c{b1}, which becomes \c{QUuid::data4[0]} and contains - the variant field in its three most significant bits. In the - table, 'x' means \e {don't care}. - - \table - \header - \o msb0 - \o msb1 - \o msb2 - \o Variant - - \row - \o 0 - \o x - \o x - \o NCS (Network Computing System) - - \row - \o 1 - \o 0 - \o x - \o DCE (Distributed Computing Environment) - - \row - \o 1 - \o 1 - \o 0 - \o Microsoft (GUID) - - \row - \o 1 - \o 1 - \o 1 - \o Reserved for future expansion - - \endtable - - \target Version field - If variant() returns QUuid::DCE, the UUID also contains a - \e{version} field in the four most significant bits of - \c{QUuid::data3}, and you can call version() to discover which - version your QUuid contains. If you create instances of QUuid - using the constructor that accepts all the numeric values as - parameters, use the following table to set the four most - significant bits of parameter \c{w2}, which becomes - \c{QUuid::data3} and contains the version field in its four most - significant bits. - - \table - \header - \o msb0 - \o msb1 - \o msb2 - \o msb3 - \o Version - - \row - \o 0 - \o 0 - \o 0 - \o 1 - \o Time - - \row - \o 0 - \o 0 - \o 1 - \o 0 - \o Embedded POSIX - - \row - \o 0 - \o 0 - \o 1 - \o 1 - \o Name - - \row - \o 0 - \o 1 - \o 0 - \o 0 - \o Random - - \endtable - - The field layouts for the DCE versions listed in the table above - are specified in the \l{https://www.ietf.org/rfc/rfc4122.txt} - {Network Working Group UUID Specification}. - - Most platforms provide a tool for generating new UUIDs, e.g. \c - uuidgen and \c guidgen. You can also use createUuid(). UUIDs - generated by createUuid() are of the random type. Their - QUuid::Version bits are set to QUuid::Random, and their - QUuid::Variant bits are set to QUuid::DCE. The rest of the UUID is - composed of random numbers. Theoretically, this means there is a - small chance that a UUID generated by createUuid() will not be - unique. But it is - \l{https://en.wikipedia.org/wiki/Universally_unique_identifier#Collisions} - {a \e{very} small chance}. - - UUIDs can be constructed from numeric values or from strings, or - using the static createUuid() function. They can be converted to a - string with toString(). UUIDs have a variant() and a version(), - and null UUIDs return true from isNull(). -*/ - -/*! - \fn QUuid::QUuid() - - Creates the null UUID. toString() will output the null UUID - as "{00000000-0000-0000-0000-000000000000}". -*/ - -/*! - \fn QUuid::QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) - - Creates a UUID with the value specified by the parameters, \a l, - \a w1, \a w2, \a b1, \a b2, \a b3, \a b4, \a b5, \a b6, \a b7, \a - b8. - - Example: - \snippet doc/src/snippets/code/src_corelib_plugin_quuid.cpp 0 -*/ - -#ifndef QT_NO_QUUID_STRING -/*! - Creates a QUuid object from the string \a text, which must be - formatted as five hex fields separated by '-', e.g., - "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex - digit. The curly braces shown here are optional, but it is normal to - include them. If the conversion fails, a null UUID is created. See - toString() for an explanation of how the five hex fields map to the - public data members in QUuid. - - \sa toString(), QUuid() -*/ -QUuid::QUuid(const QString &text) -{ - if (text.length() < 36) { - *this = QUuid(); - return; - } - - const ushort *data = reinterpret_cast(text.unicode()); - - if (*data == '{' && text.length() < 37) { - *this = QUuid(); - return; - } - - if (!_q_uuidFromHex(data, data1, data2, data3, data4)) { - *this = QUuid(); - return; - } -} - -/*! - \internal -*/ -QUuid::QUuid(const char *text) -{ - if (!text) { - *this = QUuid(); - return; - } - - if (!_q_uuidFromHex(text, data1, data2, data3, data4)) { - *this = QUuid(); - return; - } -} - -/*! - Creates a QUuid object from the QByteArray \a text, which must be - formatted as five hex fields separated by '-', e.g., - "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where 'x' is a hex - digit. The curly braces shown here are optional, but it is normal to - include them. If the conversion fails, a null UUID is created. See - toByteArray() for an explanation of how the five hex fields map to the - public data members in QUuid. - - \since 4.8 - - \sa toByteArray(), QUuid() -*/ -QUuid::QUuid(const QByteArray &text) -{ - if (text.length() < 36) { - *this = QUuid(); - return; - } - - const char *data = text.constData(); - - if (*data == '{' && text.length() < 37) { - *this = QUuid(); - return; - } - - if (!_q_uuidFromHex(data, data1, data2, data3, data4)) { - *this = QUuid(); - return; - } -} -#endif - -/*! - \since 4.8 - - Creates a QUuid object from the binary representation of the UUID given - by \a bytes, as specified by RFC 4122 section 4.1.2. See toRfc4122() for a - further explanation of the order of bytes required. - - The byte array accepted is \e not a human readable format. - - If the conversion fails, a null UUID is created. - - \sa toRfc4122(), QUuid() -*/ -QUuid QUuid::fromRfc4122(const QByteArray &bytes) -{ - if (bytes.isEmpty() || bytes.length() != 16) - return QUuid(); - - const uchar *data = reinterpret_cast(bytes.constData()); - - uint d1 = qFromBigEndian(data); - data += sizeof(quint32); - ushort d2 = qFromBigEndian(data); - data += sizeof(quint16); - ushort d3 = qFromBigEndian(data); - data += sizeof(quint16); - - QSTACKARRAY(uchar, d4, 8); - for (int i = 0; i < 8; ++i) { - d4[i] = *(data); - data++; - } - - return QUuid(d1, d2, d3, d4[0], d4[1], d4[2], d4[3], d4[4], d4[5], d4[6], d4[7]); -} - -/*! - \fn bool QUuid::operator==(const QUuid &other) const - - Returns true if this QUuid and the \a other QUuid are identical; - otherwise returns false. -*/ - -/*! - \fn bool QUuid::operator!=(const QUuid &other) const - - Returns true if this QUuid and the \a other QUuid are different; - otherwise returns false. -*/ -#ifndef QT_NO_QUUID_STRING -/*! - Returns the string representation of this QUuid. The string is - formatted as five hex fields separated by '-' and enclosed in - curly braces, i.e., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where - 'x' is a hex digit. From left to right, the five hex fields are - obtained from the four public data members in QUuid as follows: - - \table - \header - \o Field # - \o Source - - \row - \o 1 - \o data1 - - \row - \o 2 - \o data2 - - \row - \o 3 - \o data3 - - \row - \o 4 - \o data4[0] .. data4[1] - - \row - \o 5 - \o data4[2] .. data4[7] - - \endtable -*/ -QString QUuid::toString() const -{ - QSTACKARRAY(char, data, 38); - _q_uuidToHex(data, data1, data2, data3, data4); - return QString::fromLatin1(data, 38); -} - -/*! - Returns the binary representation of this QUuid. The byte array is - formatted as five hex fields separated by '-' and enclosed in - curly braces, i.e., "{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}" where - 'x' is a hex digit. From left to right, the five hex fields are - obtained from the four public data members in QUuid as follows: - - \table - \header - \o Field # - \o Source - - \row - \o 1 - \o data1 - - \row - \o 2 - \o data2 - - \row - \o 3 - \o data3 - - \row - \o 4 - \o data4[0] .. data4[1] - - \row - \o 5 - \o data4[2] .. data4[7] - - \endtable - - \since 4.8 -*/ -QByteArray QUuid::toByteArray() const -{ - QSTACKARRAY(char, data, 38); - _q_uuidToHex(data, data1, data2, data3, data4); - return QByteArray(data, 38); -} -#endif - -/*! - Returns the binary representation of this QUuid. The byte array is in big - endian format, and formatted according to RFC 4122, section 4.1.2 - - "Layout and byte order". - - The order is as follows: - - \table - \header - \o Field # - \o Source - - \row - \o 1 - \o data1 - - \row - \o 2 - \o data2 - - \row - \o 3 - \o data3 - - \row - \o 4 - \o data4[0] .. data4[7] - - \endtable - - \since 4.8 -*/ -QByteArray QUuid::toRfc4122() const -{ - // we know how many bytes a UUID has, I hope :) - QByteArray bytes(16, Qt::Uninitialized); - uchar *data = reinterpret_cast(bytes.data()); - - qToBigEndian(data1, data); - data += sizeof(quint32); - qToBigEndian(data2, data); - data += sizeof(quint16); - qToBigEndian(data3, data); - data += sizeof(quint16); - - for (int i = 0; i < 8; ++i) { - *(data) = data4[i]; - data++; - } - - return bytes; -} - -#ifndef QT_NO_DATASTREAM -/*! - \relates QUuid - Writes the UUID \a id to the data stream \a s. -*/ -QDataStream &operator<<(QDataStream &s, const QUuid &id) -{ - QByteArray bytes; - if (s.byteOrder() == QDataStream::BigEndian) { - bytes = id.toRfc4122(); - } else { - // we know how many bytes a UUID has, I hope :) - bytes = QByteArray(16, Qt::Uninitialized); - uchar *data = reinterpret_cast(bytes.data()); - - qToLittleEndian(id.data1, data); - data += sizeof(quint32); - qToLittleEndian(id.data2, data); - data += sizeof(quint16); - qToLittleEndian(id.data3, data); - data += sizeof(quint16); - - for (int i = 0; i < 8; ++i) { - *(data) = id.data4[i]; - data++; - } - } - - if (s.writeRawData(bytes.data(), 16) != 16) { - s.setStatus(QDataStream::WriteFailed); - } - return s; -} - -/*! - \relates QUuid - Reads a UUID from the stream \a s into \a id. -*/ -QDataStream &operator>>(QDataStream &s, QUuid &id) -{ - QByteArray bytes(16, Qt::Uninitialized); - if (s.readRawData(bytes.data(), 16) != 16) { - s.setStatus(QDataStream::ReadPastEnd); - return s; - } - - if (s.byteOrder() == QDataStream::BigEndian) { - id = QUuid::fromRfc4122(bytes); - } else { - const uchar *data = reinterpret_cast(bytes.constData()); - - id.data1 = qFromLittleEndian(data); - data += sizeof(quint32); - id.data2 = qFromLittleEndian(data); - data += sizeof(quint16); - id.data3 = qFromLittleEndian(data); - data += sizeof(quint16); - - for (int i = 0; i < 8; ++i) { - id.data4[i] = *(data); - data++; - } - } - - return s; -} -#endif // QT_NO_DATASTREAM - -/*! - Returns true if this is the null UUID - {00000000-0000-0000-0000-000000000000}; otherwise returns false. -*/ -bool QUuid::isNull() const -{ - return data4[0] == 0 && data4[1] == 0 && data4[2] == 0 && data4[3] == 0 && - data4[4] == 0 && data4[5] == 0 && data4[6] == 0 && data4[7] == 0 && - data1 == 0 && data2 == 0 && data3 == 0; -} - -/*! - \enum QUuid::Variant - - This enum defines the values used in the \l{Variant field} - {variant field} of the UUID. The value in the variant field - determines the layout of the 128-bit value. - - \value VarUnknown Variant is unknown - \value NCS Reserved for NCS (Network Computing System) backward compatibility - \value DCE Distributed Computing Environment, the scheme used by QUuid - \value Microsoft Reserved for Microsoft backward compatibility (GUID) - \value Reserved Reserved for future definition -*/ - -/*! - \enum QUuid::Version - - This enum defines the values used in the \l{Version field} - {version field} of the UUID. The version field is meaningful - only if the value in the \l{Variant field} {variant field} - is QUuid::DCE. - - \value VerUnknown Version is unknown - \value Time Time-based, by using timestamp, clock sequence, and - MAC network card address (if available) for the node sections - \value EmbeddedPOSIX DCE Security version, with embedded POSIX UUIDs - \value Name Name-based, by using values from a name for all sections - \value Random Random-based, by using random numbers for all sections -*/ - -/*! - \fn QUuid::Variant QUuid::variant() const - - Returns the value in the \l{Variant field} {variant field} of the - UUID. If the return value is QUuid::DCE, call version() to see - which layout it uses. The null UUID is considered to be of an - unknown variant. - - \sa version() -*/ -QUuid::Variant QUuid::variant() const -{ - if (isNull()) - return VarUnknown; - // Check the 3 MSB of data4[0] - if ((data4[0] & 0x80) == 0x00) return NCS; - else if ((data4[0] & 0xC0) == 0x80) return DCE; - else if ((data4[0] & 0xE0) == 0xC0) return Microsoft; - else if ((data4[0] & 0xE0) == 0xE0) return Reserved; - return VarUnknown; -} - -/*! - \fn QUuid::Version QUuid::version() const - - Returns the \l{Version field} {version field} of the UUID, if the - UUID's \l{Variant field} {variant field} is QUuid::DCE. Otherwise - it returns QUuid::VerUnknown. - - \sa variant() -*/ -QUuid::Version QUuid::version() const -{ - // Check the 4 MSB of data3 - Version ver = (Version)(data3>>12); - if (isNull() - || (variant() != DCE) - || ver < Time - || ver > Random) - return VerUnknown; - return ver; -} - -/*! - \fn bool QUuid::operator<(const QUuid &other) const - - Returns true if this QUuid has the same \l{Variant field} - {variant field} as the \a other QUuid and is lexicographically - \e{before} the \a other QUuid. If the \a other QUuid has a - different variant field, the return value is determined by - comparing the two \l{QUuid::Variant} {variants}. - - \sa variant() -*/ -#define ISLESS(f1, f2) if (f1!=f2) return (f1(const QUuid &other) const - - Returns true if this QUuid has the same \l{Variant field} - {variant field} as the \a other QUuid and is lexicographically - \e{after} the \a other QUuid. If the \a other QUuid has a - different variant field, the return value is determined by - comparing the two \l{QUuid::Variant} {variants}. - - \sa variant() -*/ -#define ISMORE(f1, f2) if (f1!=f2) return (f1>f2); -bool QUuid::operator>(const QUuid &other) const -{ - if (variant() != other.variant()) - return variant() > other.variant(); - - ISMORE(data1, other.data1); - ISMORE(data2, other.data2); - ISMORE(data3, other.data3); - for (int n = 0; n < 8; n++) { - ISMORE(data4[n], other.data4[n]); - } - return false; -} -#undef ISMORE - -/*! - \fn QUuid QUuid::createUuid() - - This function returns a new UUID with variant QUuid::DCE and - version QUuid::Random. The randomness of the created UUID depends - on qrand(). - - \sa variant(), version() -*/ - -QUuid QUuid::createUuid() -{ - QUuid result; - uint *data = &(result.data1); - - int chunks = 16 / sizeof(uint); - while (chunks--) { - *(data+chunks) = qrand(); - } - - result.data4[0] = (result.data4[0] & 0x3F) | 0x80; // UV_DCE - result.data3 = (result.data3 & 0x0FFF) | 0x4000; // UV_Random - - return result; -} - -/*! - \fn bool QUuid::operator==(const GUID &guid) const - - Returns true if this UUID is equal to the Windows GUID \a guid; - otherwise returns false. -*/ - -/*! - \fn bool QUuid::operator!=(const GUID &guid) const - - Returns true if this UUID is not equal to the Windows GUID \a - guid; otherwise returns false. -*/ - -/** - Returns a hash of the QUuid - */ -uint qHash(const QUuid &uuid) -{ - return uuid.data1 ^ uuid.data2 ^ (uuid.data3 << 16) - ^ ((uuid.data4[0] << 24) | (uuid.data4[1] << 16) | (uuid.data4[2] << 8) | uuid.data4[3]) - ^ ((uuid.data4[4] << 24) | (uuid.data4[5] << 16) | (uuid.data4[6] << 8) | uuid.data4[7]); -} - - -QT_END_NAMESPACE diff --git a/src/core/plugin/quuid.h b/src/core/plugin/quuid.h deleted file mode 100644 index bf65b01e4..000000000 --- a/src/core/plugin/quuid.h +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2016 Ivailo Monev -** -** This file is part of the QtCore module of the Katie Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QUUID_H -#define QUUID_H - -#include - - -QT_BEGIN_NAMESPACE - - -struct Q_CORE_EXPORT QUuid -{ - enum Variant { - VarUnknown = -1, - NCS = 0, // 0 - - - DCE = 2, // 1 0 - - Microsoft = 6, // 1 1 0 - Reserved = 7 // 1 1 1 - }; - - enum Version { - VerUnknown = -1, - Time = 1, // 0 0 0 1 - EmbeddedPOSIX = 2, // 0 0 1 0 - Name = 3, // 0 0 1 1 - Random = 4 // 0 1 0 0 - }; - - QUuid() - { - data1 = 0; - data2 = 0; - data3 = 0; - for(int i = 0; i < 8; i++) - data4[i] = 0; - } - QUuid(uint l, ushort w1, ushort w2, uchar b1, uchar b2, uchar b3, uchar b4, uchar b5, uchar b6, uchar b7, uchar b8) - { - data1 = l; - data2 = w1; - data3 = w2; - data4[0] = b1; - data4[1] = b2; - data4[2] = b3; - data4[3] = b4; - data4[4] = b5; - data4[5] = b6; - data4[6] = b7; - data4[7] = b8; - } -#ifndef QT_NO_QUUID_STRING - QUuid(const QString &); - QUuid(const char *); - QString toString() const; - QUuid(const QByteArray &); - QByteArray toByteArray() const; -#endif - QByteArray toRfc4122() const; - static QUuid fromRfc4122(const QByteArray &); - bool isNull() const; - - bool operator==(const QUuid &orig) const - { - if (data1 != orig.data1 || data2 != orig.data2 || - data3 != orig.data3) - return false; - - for(int i = 0; i < 8; i++) - if (data4[i] != orig.data4[i]) - return false; - - return true; - } - - bool operator!=(const QUuid &orig) const - { - return !(*this == orig); - } - - bool operator<(const QUuid &other) const; - bool operator>(const QUuid &other) const; - - static QUuid createUuid(); - QUuid::Variant variant() const; - QUuid::Version version() const; - - uint data1; - ushort data2; - ushort data3; - uchar data4[8]; -}; - -#ifndef QT_NO_DATASTREAM -Q_CORE_EXPORT QDataStream &operator<<(QDataStream &, const QUuid &); -Q_CORE_EXPORT QDataStream &operator>>(QDataStream &, QUuid &); -#endif - -Q_CORE_EXPORT uint qHash(const QUuid &uuid); - -QT_END_NAMESPACE - - -#endif // QUUID_H diff --git a/src/tools/uic/cpp/cppwriteincludes.cpp b/src/tools/uic/cpp/cppwriteincludes.cpp index 555cc5cd4..d6faabc89 100644 --- a/src/tools/uic/cpp/cppwriteincludes.cpp +++ b/src/tools/uic/cpp/cppwriteincludes.cpp @@ -598,7 +598,6 @@ static const struct ClassTblData { { QLatin1String("QUndoStack"), QLatin1String("QtGui/qundostack.h") }, { QLatin1String("QUndoView"), QLatin1String("QtGui/qundoview.h") }, { QLatin1String("QUrl"), QLatin1String("QtCore/qurl.h") }, - { QLatin1String("QUuid"), QLatin1String("QtCore/quuid.h") }, { QLatin1String("QVBoxLayout"), QLatin1String("QtGui/qboxlayout.h") }, { QLatin1String("QValidator"), QLatin1String("QtGui/qvalidator.h") }, { QLatin1String("QVarLengthArray"), QLatin1String("QtCore/qvarlengtharray.h") }, diff --git a/tests/auto/quuid/CMakeLists.txt b/tests/auto/quuid/CMakeLists.txt deleted file mode 100644 index 9d60376c1..000000000 --- a/tests/auto/quuid/CMakeLists.txt +++ /dev/null @@ -1,9 +0,0 @@ -katie_test(tst_quuid - ${CMAKE_CURRENT_SOURCE_DIR}/tst_quuid.cpp -) - -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) -add_executable(quuid_testProcessUniqueness - ${CMAKE_CURRENT_SOURCE_DIR}/testProcessUniqueness/main.cpp -) -target_link_libraries(quuid_testProcessUniqueness KtCore) diff --git a/tests/auto/quuid/testProcessUniqueness/main.cpp b/tests/auto/quuid/testProcessUniqueness/main.cpp deleted file mode 100644 index b3877156a..000000000 --- a/tests/auto/quuid/testProcessUniqueness/main.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2016 Ivailo Monev -** -** This file is part of the test suite of the Katie Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include - -// This is a testcase for QTBUG-11213 -int main(int argc, char **argv) -{ - Q_UNUSED(argc) - Q_UNUSED(argv) - - // First, break QUuid. - qrand(); - - // Now print a few uuids. - printf("%s", qPrintable(QUuid::createUuid().toRfc4122().toHex())); - printf("%s", qPrintable(QUuid::createUuid().toRfc4122().toHex())); - printf("%s", qPrintable(QUuid::createUuid().toRfc4122().toHex())); - - // Done - return 0; -} - diff --git a/tests/auto/quuid/tst_quuid.cpp b/tests/auto/quuid/tst_quuid.cpp deleted file mode 100644 index 1ba746ef4..000000000 --- a/tests/auto/quuid/tst_quuid.cpp +++ /dev/null @@ -1,335 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2016 Ivailo Monev -** -** This file is part of the test suite of the Katie Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - - -#include - -#include -#include -#include -#include -#include -#include - -//TESTED_CLASS= -//TESTED_FILES= - -class tst_QUuid : public QObject -{ - Q_OBJECT - -public: - tst_QUuid(); - -private slots: - void initTestCase(); - void fromChar(); - void toString(); - void fromString(); - void toByteArray(); - void fromByteArray(); - void toRfc4122(); - void fromRfc4122(); - void check_QDataStream(); - void isNull(); - void equal(); - void notEqual(); - - // Only in Qt > 3.2.x - void generate(); - void less(); - void more(); - void variants(); - void versions(); - - void threadUniqueness(); - void processUniqueness(); - -public: - // Variables - QUuid uuidA; - QUuid uuidB; -}; - -tst_QUuid::tst_QUuid() -{ - //"{fc69b59e-cc34-4436-a43c-ee95d128b8c5}"; - uuidA = QUuid(0xfc69b59e, 0xcc34 ,0x4436 ,0xa4 ,0x3c ,0xee ,0x95 ,0xd1 ,0x28 ,0xb8 ,0xc5); - - //"{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}"; - uuidB = QUuid(0x1ab6e93a ,0xb1cb ,0x4a87 ,0xba ,0x47 ,0xec ,0x7e ,0x99 ,0x03 ,0x9a ,0x7b); -} - -void tst_QUuid::initTestCase() -{ -} - -void tst_QUuid::fromChar() -{ -#ifndef QT_NO_QUUID_STRING - QCOMPARE(uuidA, QUuid("{fc69b59e-cc34-4436-a43c-ee95d128b8c5}")); - QCOMPARE(uuidA, QUuid("fc69b59e-cc34-4436-a43c-ee95d128b8c5}")); - QCOMPARE(uuidA, QUuid("{fc69b59e-cc34-4436-a43c-ee95d128b8c5")); - QCOMPARE(uuidA, QUuid("fc69b59e-cc34-4436-a43c-ee95d128b8c5")); - QCOMPARE(QUuid(), QUuid("{fc69b59e-cc34-4436-a43c-ee95d128b8c")); - QCOMPARE(QUuid(), QUuid("{fc69b59e-cc34")); - QCOMPARE(QUuid(), QUuid("fc69b59e-cc34-")); - QCOMPARE(QUuid(), QUuid("fc69b59e-cc34")); - QCOMPARE(QUuid(), QUuid("cc34")); - QCOMPARE(QUuid(), QUuid(NULL)); - - QCOMPARE(uuidB, QUuid(QString("{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}"))); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::toString() -{ -#ifndef QT_NO_QUUID_STRING - QCOMPARE(uuidA.toString(), QString("{fc69b59e-cc34-4436-a43c-ee95d128b8c5}")); - - QCOMPARE(uuidB.toString(), QString("{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}")); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::fromString() -{ -#ifndef QT_NO_QUUID_STRING - QCOMPARE(uuidA, QUuid(QString("{fc69b59e-cc34-4436-a43c-ee95d128b8c5}"))); - QCOMPARE(uuidA, QUuid(QString("fc69b59e-cc34-4436-a43c-ee95d128b8c5}"))); - QCOMPARE(uuidA, QUuid(QString("{fc69b59e-cc34-4436-a43c-ee95d128b8c5"))); - QCOMPARE(uuidA, QUuid(QString("fc69b59e-cc34-4436-a43c-ee95d128b8c5"))); - QCOMPARE(QUuid(), QUuid(QString("{fc69b59e-cc34-4436-a43c-ee95d128b8c"))); - - QCOMPARE(uuidB, QUuid(QString("{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}"))); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::toByteArray() -{ -#ifndef QT_NO_QUUID_STRING - QCOMPARE(uuidA.toByteArray(), QByteArray("{fc69b59e-cc34-4436-a43c-ee95d128b8c5}")); - - QCOMPARE(uuidB.toByteArray(), QByteArray("{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}")); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::fromByteArray() -{ -#ifndef QT_NO_QUUID_STRING - QCOMPARE(uuidA, QUuid(QByteArray("{fc69b59e-cc34-4436-a43c-ee95d128b8c5}"))); - QCOMPARE(uuidA, QUuid(QByteArray("fc69b59e-cc34-4436-a43c-ee95d128b8c5}"))); - QCOMPARE(uuidA, QUuid(QByteArray("{fc69b59e-cc34-4436-a43c-ee95d128b8c5"))); - QCOMPARE(uuidA, QUuid(QByteArray("fc69b59e-cc34-4436-a43c-ee95d128b8c5"))); - QCOMPARE(QUuid(), QUuid(QByteArray("{fc69b59e-cc34-4436-a43c-ee95d128b8c"))); - - QCOMPARE(uuidB, QUuid(QByteArray("{1ab6e93a-b1cb-4a87-ba47-ec7e99039a7b}"))); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::toRfc4122() -{ - QCOMPARE(uuidA.toRfc4122(), QByteArray::fromHex("fc69b59ecc344436a43cee95d128b8c5")); - - QCOMPARE(uuidB.toRfc4122(), QByteArray::fromHex("1ab6e93ab1cb4a87ba47ec7e99039a7b")); -} - -void tst_QUuid::fromRfc4122() -{ - QCOMPARE(uuidA, QUuid::fromRfc4122(QByteArray::fromHex("fc69b59ecc344436a43cee95d128b8c5"))); - - QCOMPARE(uuidB, QUuid::fromRfc4122(QByteArray::fromHex("1ab6e93ab1cb4a87ba47ec7e99039a7b"))); -} - -void tst_QUuid::check_QDataStream() -{ - QUuid tmp; - QByteArray ar; - { - QDataStream out(&ar,QIODevice::WriteOnly); - out.setByteOrder(QDataStream::BigEndian); - out << uuidA; - } - { - QDataStream in(&ar,QIODevice::ReadOnly); - in.setByteOrder(QDataStream::BigEndian); - in >> tmp; - QCOMPARE(uuidA, tmp); - } - { - QDataStream out(&ar,QIODevice::WriteOnly); - out.setByteOrder(QDataStream::LittleEndian); - out << uuidA; - } - { - QDataStream in(&ar,QIODevice::ReadOnly); - in.setByteOrder(QDataStream::LittleEndian); - in >> tmp; - QCOMPARE(uuidA, tmp); - } -} - -void tst_QUuid::isNull() -{ - QVERIFY( !uuidA.isNull() ); - - QUuid should_be_null_uuid; - QVERIFY( should_be_null_uuid.isNull() ); -} - -void tst_QUuid::equal() -{ - QVERIFY( !(uuidA == uuidB) ); - - QUuid copy(uuidA); - QVERIFY(uuidA == copy); - - QUuid assigned; - assigned = uuidA; - QVERIFY(uuidA == assigned); -} - -void tst_QUuid::notEqual() -{ - QVERIFY( uuidA != uuidB ); -} - -void tst_QUuid::generate() -{ - QUuid shouldnt_be_null_uuidA = QUuid::createUuid(); - QUuid shouldnt_be_null_uuidB = QUuid::createUuid(); - QVERIFY( !shouldnt_be_null_uuidA.isNull() ); - QVERIFY( !shouldnt_be_null_uuidB.isNull() ); - QVERIFY( shouldnt_be_null_uuidA != shouldnt_be_null_uuidB ); -} - -void tst_QUuid::less() -{ - QVERIFY( !(uuidA < uuidB) ); - - QUuid null_uuid; - QVERIFY(null_uuid < uuidA); // Null uuid is always less than a valid one -} - -void tst_QUuid::more() -{ - QVERIFY( uuidA > uuidB ); - - QUuid null_uuid; - QVERIFY( !(null_uuid > uuidA) ); // Null uuid is always less than a valid one -} - -void tst_QUuid::variants() -{ - QVERIFY( uuidA.variant() == QUuid::DCE ); - QVERIFY( uuidB.variant() == QUuid::DCE ); - -#ifndef QT_NO_QUUID_STRING - QUuid NCS = "{3a2f883c-4000-000d-0000-00fb40000000}"; - QVERIFY( NCS.variant() == QUuid::NCS ); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_QUuid::versions() -{ - QVERIFY( uuidA.version() == QUuid::Random ); - QVERIFY( uuidB.version() == QUuid::Random ); - -#ifndef QT_NO_QUUID_STRING - QUuid DCE_time = "{406c45a0-3b7e-11d0-80a3-0000c08810a7}"; - QVERIFY( DCE_time.version() == QUuid::Time ); - - QUuid NCS = "{3a2f883c-4000-000d-0000-00fb40000000}"; - QVERIFY( NCS.version() == QUuid::VerUnknown ); -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -class UuidThread : public QThread -{ -public: - QUuid uuid; - - void run() - { - uuid = QUuid::createUuid(); - } -}; - -void tst_QUuid::threadUniqueness() -{ - QVector threads(qMax(2, QThread::idealThreadCount())); - for (int i = 0; i < threads.count(); ++i) - threads[i] = new UuidThread; - for (int i = 0; i < threads.count(); ++i) - threads[i]->start(); - for (int i = 0; i < threads.count(); ++i) - QVERIFY(threads[i]->wait(1000)); - for (int i = 1; i < threads.count(); ++i) - QVERIFY(threads[0]->uuid != threads[i]->uuid); - qDeleteAll(threads); -} - -static inline QByteArray msgCannotStartProcess(const QString &binary, const QString &why) -{ - return QString::fromLatin1("Cannot start '%1' from '%2': %3") - .arg(QDir::toNativeSeparators(binary), - QDir::toNativeSeparators(QDir::currentPath()), - why).toLocal8Bit(); -} - -void tst_QUuid::processUniqueness() -{ - QDir workingDirectory = QCoreApplication::applicationDirPath(); - const QString binary = workingDirectory.absoluteFilePath(QLatin1String("quuid_testProcessUniqueness")); - - // Start it once - QProcess process; - process.start(binary); - QVERIFY2(process.waitForStarted(), msgCannotStartProcess(binary, process.errorString()).constData()); - QVERIFY(process.waitForFinished()); - const QByteArray processOneOutput = process.readAllStandardOutput(); - - // Start it twice - process.start(binary); - QVERIFY2(process.waitForStarted(), msgCannotStartProcess(binary, process.errorString()).constData()); - QVERIFY(process.waitForFinished()); - const QByteArray processTwoOutput = process.readAllStandardOutput(); - - // They should be *different*! - QVERIFY(processOneOutput != processTwoOutput); -} - -QTEST_MAIN(tst_QUuid) - -#include "moc_tst_quuid.cpp" diff --git a/tests/benchmarks/core/plugin/quuid/CMakeLists.txt b/tests/benchmarks/core/plugin/quuid/CMakeLists.txt deleted file mode 100644 index c77499326..000000000 --- a/tests/benchmarks/core/plugin/quuid/CMakeLists.txt +++ /dev/null @@ -1,3 +0,0 @@ -katie_test(tst_bench_quuid - ${CMAKE_CURRENT_SOURCE_DIR}/tst_quuid.cpp -) diff --git a/tests/benchmarks/core/plugin/quuid/tst_quuid.cpp b/tests/benchmarks/core/plugin/quuid/tst_quuid.cpp deleted file mode 100644 index 01400847e..000000000 --- a/tests/benchmarks/core/plugin/quuid/tst_quuid.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2016 Ivailo Monev -** -** This file is part of the test suite of the Katie Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** -** GNU Lesser General Public License Usage -** This file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include -#include -#include - -QT_USE_NAMESPACE - -class tst_bench_QUuid : public QObject -{ - Q_OBJECT - -public: - tst_bench_QUuid() - { } - -private slots: - void qRandomUuid_vs_createUuid_data(); - void qRandomUuid_vs_createUuid(); - void createUuid(); - void fromChar(); - void toString(); - void fromString(); - void toByteArray(); - void fromByteArray(); - void toRfc4122(); - void fromRfc4122(); - void toDataStream(); - void fromDataStream(); - void isNull(); - void operatorLess(); - void operatorMore(); -}; - -void tst_bench_QUuid::qRandomUuid_vs_createUuid_data() -{ - QTest::addColumn("qrandomuuid"); - - QTest::newRow("qRandomUuid()") << true; - QTest::newRow("QUuid::createUuid") << false; -} - -void tst_bench_QUuid::qRandomUuid_vs_createUuid() -{ - QFETCH(bool, qrandomuuid); - - if (qrandomuuid) { - QBENCHMARK { - (void)qRandomUuid(); - } - } else { - QBENCHMARK { - (void)QUuid::createUuid().toByteArray(); - } - } -} - -void tst_bench_QUuid::createUuid() -{ - QBENCHMARK { - QUuid::createUuid(); - } -} - -void tst_bench_QUuid::fromChar() -{ -#ifndef QT_NO_QUUID_STRING - QBENCHMARK { - QUuid uuid("{67C8770B-44F1-410A-AB9A-F9B5446F13EE}"); - } -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_bench_QUuid::toString() -{ -#ifndef QT_NO_QUUID_STRING - QUuid uuid = QUuid::createUuid(); - QBENCHMARK { - uuid.toString(); - } -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_bench_QUuid::fromString() -{ -#ifndef QT_NO_QUUID_STRING - QString string = QLatin1String("{67C8770B-44F1-410A-AB9A-F9B5446F13EE}"); - QBENCHMARK { - QUuid uuid(string); - } -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_bench_QUuid::toByteArray() -{ -#ifndef QT_NO_QUUID_STRING - QUuid uuid = QUuid::createUuid(); - QBENCHMARK { - uuid.toByteArray(); - } -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_bench_QUuid::fromByteArray() -{ -#ifndef QT_NO_QUUID_STRING - QByteArray string = "{67C8770B-44F1-410A-AB9A-F9B5446F13EE}"; - QBENCHMARK { - QUuid uuid(string); - } -#else // QT_NO_QUUID_STRING - QSKIP("Katie compiled without uuid from/to string support (QT_NO_QUUID_STRING)", SkipAll); -#endif // QT_NO_QUUID_STRING -} - -void tst_bench_QUuid::toRfc4122() -{ - QUuid uuid = QUuid::createUuid(); - QBENCHMARK { - uuid.toRfc4122(); - } -} - -void tst_bench_QUuid::fromRfc4122() -{ - QByteArray string = QByteArray::fromHex("67C8770B44F1410AAB9AF9B5446F13EE"); - QBENCHMARK { - QUuid::fromRfc4122(string); - } -} - -void tst_bench_QUuid::toDataStream() -{ - QUuid uuid1, uuid2; - uuid1 = QUuid::createUuid(); - QByteArray ar; - { - QDataStream out(&ar,QIODevice::WriteOnly); - QBENCHMARK { - out << uuid1; - } - } -} - -void tst_bench_QUuid::fromDataStream() -{ - QUuid uuid1, uuid2; - uuid1 = QUuid::createUuid(); - QByteArray ar; - { - QDataStream out(&ar,QIODevice::WriteOnly); - out << uuid1; - } - { - QDataStream in(&ar,QIODevice::ReadOnly); - QBENCHMARK { - in >> uuid2; - } - } -} - -void tst_bench_QUuid::isNull() -{ - QUuid uuid = QUuid(); - QBENCHMARK { - uuid.isNull(); - } -} - -void tst_bench_QUuid::operatorLess() -{ - QUuid uuid1, uuid2; - uuid1 = QUuid::createUuid(); - uuid2 = QUuid::createUuid(); - QBENCHMARK { - (void)(uuid1 < uuid2); - } -} - -void tst_bench_QUuid::operatorMore() -{ - QUuid uuid1, uuid2; - uuid1 = QUuid::createUuid(); - uuid2 = QUuid::createUuid(); - QBENCHMARK { - (void)(uuid1 > uuid2); - } -} - -QTEST_MAIN(tst_bench_QUuid); - -#include "moc_tst_quuid.cpp" -- 2.11.0