| Index: crosstest/test_cast_main.cpp
|
| diff --git a/crosstest/test_cast_main.cpp b/crosstest/test_cast_main.cpp
|
| index 414fcbbbbc96ba489d9fdf1763cfa28d21eab6bf..7407a595c6a417fbd886fe1555d89a557090287b 100644
|
| --- a/crosstest/test_cast_main.cpp
|
| +++ b/crosstest/test_cast_main.cpp
|
| @@ -28,7 +28,7 @@ namespace Subzero_ {
|
|
|
| #define XSTR(s) STR(s)
|
| #define STR(s) #s
|
| -#define COMPARE(Func, FromCName, ToCName, Input) \
|
| +#define COMPARE(Func, FromCName, ToCName, Input, FromString) \
|
| do { \
|
| ToCName ResultSz, ResultLlc; \
|
| ResultLlc = Func<FromCName, ToCName>(Input); \
|
| @@ -38,26 +38,30 @@ namespace Subzero_ {
|
| ++Passes; \
|
| } else { \
|
| ++Failures; \
|
| - std::cout << std::fixed << XSTR(Func) \
|
| - << "<" XSTR(FromCName) ", " XSTR(ToCName) ">(" << Input \
|
| - << "): sz=" << ResultSz << " llc=" << ResultLlc << "\n"; \
|
| + std::cout << std::fixed << XSTR(Func) << "<" << FromString \
|
| + << ", " XSTR(ToCName) ">(" << Input << "): "; \
|
| + if (sizeof(ToCName) == 1) \
|
| + std::cout << "sz=" << (int)ResultSz << " llc=" << (int)ResultLlc; \
|
| + else \
|
| + std::cout << "sz=" << ResultSz << " llc=" << ResultLlc; \
|
| + std::cout << "\n"; \
|
| } \
|
| } while (0)
|
|
|
| template <typename FromType>
|
| void testValue(FromType Val, size_t &TotalTests, size_t &Passes,
|
| - size_t &Failures) {
|
| - COMPARE(cast, FromType, bool, Val);
|
| - COMPARE(cast, FromType, uint8_t, Val);
|
| - COMPARE(cast, FromType, myint8_t, Val);
|
| - COMPARE(cast, FromType, uint16_t, Val);
|
| - COMPARE(cast, FromType, int16_t, Val);
|
| - COMPARE(cast, FromType, uint32_t, Val);
|
| - COMPARE(cast, FromType, int32_t, Val);
|
| - COMPARE(cast, FromType, uint64_t, Val);
|
| - COMPARE(cast, FromType, int64_t, Val);
|
| - COMPARE(cast, FromType, float, Val);
|
| - COMPARE(cast, FromType, double, Val);
|
| + size_t &Failures, const char *FromTypeString) {
|
| + COMPARE(cast, FromType, bool, Val, FromTypeString);
|
| + COMPARE(cast, FromType, uint8_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, myint8_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, uint16_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, int16_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, uint32_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, int32_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, uint64_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, int64_t, Val, FromTypeString);
|
| + COMPARE(cast, FromType, float, Val, FromTypeString);
|
| + COMPARE(cast, FromType, double, Val, FromTypeString);
|
| }
|
|
|
| int main(int argc, char **argv) {
|
| @@ -128,7 +132,9 @@ int main(int argc, char **argv) {
|
| static const size_t NumValsSi64 = sizeof(ValsSi64) / sizeof(*ValsSi64);
|
|
|
| volatile float ValsF32[] = {
|
| - 0, 1, 0x7e,
|
| + 0, 1, 1.4,
|
| + 1.5, 1.6, -1.4,
|
| + -1.5, -1.6, 0x7e,
|
| 0x7f, 0x80, 0x81,
|
| 0xfe, 0xff, 0x7ffe,
|
| 0x7fff, 0x8000, 0x8001,
|
| @@ -142,7 +148,9 @@ int main(int argc, char **argv) {
|
| static const size_t NumValsF32 = sizeof(ValsF32) / sizeof(*ValsF32);
|
|
|
| volatile double ValsF64[] = {
|
| - 0, 1, 0x7e,
|
| + 0, 1, 1.4,
|
| + 1.5, 1.6, -1.4,
|
| + -1.5, -1.6, 0x7e,
|
| 0x7f, 0x80, 0x81,
|
| 0xfe, 0xff, 0x7ffe,
|
| 0x7fff, 0x8000, 0x8001,
|
| @@ -157,49 +165,49 @@ int main(int argc, char **argv) {
|
|
|
| for (size_t i = 0; i < NumValsUi1; ++i) {
|
| bool Val = ValsUi1[i];
|
| - testValue<bool>(Val, TotalTests, Passes, Failures);
|
| + testValue<bool>(Val, TotalTests, Passes, Failures, "bool");
|
| }
|
| for (size_t i = 0; i < NumValsUi8; ++i) {
|
| uint8_t Val = ValsUi8[i];
|
| - testValue<uint8_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<uint8_t>(Val, TotalTests, Passes, Failures, "uint8_t");
|
| }
|
| for (size_t i = 0; i < NumValsSi8; ++i) {
|
| myint8_t Val = ValsSi8[i];
|
| - testValue<myint8_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<myint8_t>(Val, TotalTests, Passes, Failures, "int8_t");
|
| }
|
| for (size_t i = 0; i < NumValsUi16; ++i) {
|
| uint16_t Val = ValsUi16[i];
|
| - testValue<uint16_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<uint16_t>(Val, TotalTests, Passes, Failures, "uint16_t");
|
| }
|
| for (size_t i = 0; i < NumValsSi16; ++i) {
|
| int16_t Val = ValsSi16[i];
|
| - testValue<int16_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<int16_t>(Val, TotalTests, Passes, Failures, "int16_t");
|
| }
|
| for (size_t i = 0; i < NumValsUi32; ++i) {
|
| uint32_t Val = ValsUi32[i];
|
| - testValue<uint32_t>(Val, TotalTests, Passes, Failures);
|
| - COMPARE(castBits, uint32_t, float, Val);
|
| + testValue<uint32_t>(Val, TotalTests, Passes, Failures, "uint32_t");
|
| + COMPARE(castBits, uint32_t, float, Val, "uint32_t");
|
| }
|
| for (size_t i = 0; i < NumValsSi32; ++i) {
|
| int32_t Val = ValsSi32[i];
|
| - testValue<int32_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<int32_t>(Val, TotalTests, Passes, Failures, "int32_t");
|
| }
|
| for (size_t i = 0; i < NumValsUi64; ++i) {
|
| uint64_t Val = ValsUi64[i];
|
| - testValue<uint64_t>(Val, TotalTests, Passes, Failures);
|
| - COMPARE(castBits, uint64_t, double, Val);
|
| + testValue<uint64_t>(Val, TotalTests, Passes, Failures, "uint64_t");
|
| + COMPARE(castBits, uint64_t, double, Val, "uint64_t");
|
| }
|
| for (size_t i = 0; i < NumValsSi64; ++i) {
|
| int64_t Val = ValsSi64[i];
|
| - testValue<int64_t>(Val, TotalTests, Passes, Failures);
|
| + testValue<int64_t>(Val, TotalTests, Passes, Failures, "int64_t");
|
| }
|
| for (size_t i = 0; i < NumValsF32; ++i) {
|
| for (unsigned j = 0; j < 2; ++j) {
|
| float Val = ValsF32[i];
|
| if (j > 0)
|
| Val = -Val;
|
| - testValue<float>(Val, TotalTests, Passes, Failures);
|
| - COMPARE(castBits, float, uint32_t, Val);
|
| + testValue<float>(Val, TotalTests, Passes, Failures, "float");
|
| + COMPARE(castBits, float, uint32_t, Val, "float");
|
| }
|
| }
|
| for (size_t i = 0; i < NumValsF64; ++i) {
|
| @@ -207,8 +215,8 @@ int main(int argc, char **argv) {
|
| double Val = ValsF64[i];
|
| if (j > 0)
|
| Val = -Val;
|
| - testValue<double>(Val, TotalTests, Passes, Failures);
|
| - COMPARE(castBits, double, uint64_t, Val);
|
| + testValue<double>(Val, TotalTests, Passes, Failures, "double");
|
| + COMPARE(castBits, double, uint64_t, Val, "double");
|
| }
|
| }
|
|
|
|
|