tst_QtEndian: rewrite the ENDIAN_TEST macros to support FP
No functional change, yet. Just dissociating the data name from type name, so we can add tests for FP types in a follow-up step. Pick-to: 6.5 Change-Id: I98fdebb49cca614ab27db146c4bacafd190e7d9b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> (cherry picked from commit f25804b3955d0b621ac8ff26470f950dbd1e3337) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit 8f77dffb39d01e5f23164de7c9308c395a42b20f) Reviewed-by: Marc Mutz <marc.mutz@qt.io>
This commit is contained in:
parent
d5528cdeca
commit
b1aa12b3de
@ -124,34 +124,36 @@ static const RawTestData inLittleEndian = {
|
|||||||
do { \
|
do { \
|
||||||
/* Unsigned tests */ \
|
/* Unsigned tests */ \
|
||||||
ONLY_INT128( \
|
ONLY_INT128( \
|
||||||
ENDIAN_TEST(endian, quint, 128); \
|
ENDIAN_TEST_INT(endian, ui, 128); \
|
||||||
) \
|
) \
|
||||||
ENDIAN_TEST(endian, quint, 64); \
|
ENDIAN_TEST_INT(endian, ui, 64); \
|
||||||
ENDIAN_TEST(endian, quint, 32); \
|
ENDIAN_TEST_INT(endian, ui, 32); \
|
||||||
ENDIAN_TEST(endian, quint, 16); \
|
ENDIAN_TEST_INT(endian, ui, 16); \
|
||||||
ENDIAN_TEST(endian, quint, 8); \
|
ENDIAN_TEST_INT(endian, ui, 8); \
|
||||||
\
|
\
|
||||||
/* Signed tests */ \
|
/* Signed tests */ \
|
||||||
ONLY_INT128( \
|
ONLY_INT128( \
|
||||||
ENDIAN_TEST(endian, qint, 128); \
|
ENDIAN_TEST_INT(endian, i, 128); \
|
||||||
) \
|
) \
|
||||||
ENDIAN_TEST(endian, qint, 64); \
|
ENDIAN_TEST_INT(endian, i, 64); \
|
||||||
ENDIAN_TEST(endian, qint, 32); \
|
ENDIAN_TEST_INT(endian, i, 32); \
|
||||||
ENDIAN_TEST(endian, qint, 16); \
|
ENDIAN_TEST_INT(endian, i, 16); \
|
||||||
ENDIAN_TEST(endian, qint, 8); \
|
ENDIAN_TEST_INT(endian, i, 8); \
|
||||||
} while (false) \
|
} while (false) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
#define ENDIAN_TEST(endian, type, size) \
|
#define ENDIAN_TEST_INT(Endian, Uns, Size) \
|
||||||
|
ENDIAN_TEST(Endian, q ## Uns ## nt ## Size, data ## Size)
|
||||||
|
|
||||||
|
#define ENDIAN_TEST(endian, Type, Data) \
|
||||||
do { \
|
do { \
|
||||||
static_assert(std::is_same_v<decltype(qbswap(std::declval<type ## size>())), \
|
static_assert(std::is_same_v<decltype(qbswap(std::declval<Type>())), Type>); \
|
||||||
type ## size>); \
|
|
||||||
QCOMPARE(qFrom ## endian ## Endian( \
|
QCOMPARE(qFrom ## endian ## Endian( \
|
||||||
(type ## size)(in ## endian ## Endian.data.data ## size)), \
|
(Type)(in ## endian ## Endian.data.Data)), \
|
||||||
(type ## size)(inNativeEndian.data ## size)); \
|
(Type)(inNativeEndian.Data)); \
|
||||||
QCOMPARE(qFrom ## endian ## Endian<type ## size>( \
|
QCOMPARE(qFrom ## endian ## Endian<Type>( \
|
||||||
in ## endian ## Endian.rawData + offsetof(TestData, data ## size)), \
|
in ## endian ## Endian.rawData + offsetof(TestData, Data)), \
|
||||||
(type ## size)(inNativeEndian.data ## size)); \
|
(Type)(inNativeEndian.Data)); \
|
||||||
} while (false) \
|
} while (false) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
@ -272,18 +274,18 @@ void tst_QtEndian::fromLittleEndianRegion()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#define ENDIAN_TEST(endian, type, size) \
|
#define ENDIAN_TEST(endian, Type, Data) \
|
||||||
do { \
|
do { \
|
||||||
QCOMPARE(qTo ## endian ## Endian( \
|
QCOMPARE(qTo ## endian ## Endian( \
|
||||||
(type ## size)(inNativeEndian.data ## size)), \
|
(Type)(inNativeEndian.Data)), \
|
||||||
(type ## size)(in ## endian ## Endian.data.data ## size)); \
|
(Type)(in ## endian ## Endian.data.Data)); \
|
||||||
\
|
\
|
||||||
RawTestData test; \
|
RawTestData test; \
|
||||||
qTo ## endian ## Endian( \
|
qTo ## endian ## Endian( \
|
||||||
(type ## size)(inNativeEndian.data ## size), \
|
(Type)(inNativeEndian.Data), \
|
||||||
test.rawData + offsetof(TestData, data ## size)); \
|
test.rawData + offsetof(TestData, Data)); \
|
||||||
QCOMPARE(test.data.data ## size, in ## endian ## Endian.data.data ## size ); \
|
QCOMPARE(test.data.Data, in ## endian ## Endian.data.Data ); \
|
||||||
} while (false) \
|
} while (false) \
|
||||||
/**/
|
/**/
|
||||||
|
|
||||||
void tst_QtEndian::toBigEndian()
|
void tst_QtEndian::toBigEndian()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user