From efe8c5b078701dac6fdc35ef8fe6973bd0c105e0 Mon Sep 17 00:00:00 2001 From: Axel Naumann <Axel.Naumann@cern.ch> Date: Fri, 5 Jul 2019 13:11:55 +0200 Subject: [PATCH] [meta] Fix testTEnum on 32bit: Instead of guessing the golden underlying type, use std::underlying_type. --- core/meta/test/testTEnum.cxx | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/meta/test/testTEnum.cxx b/core/meta/test/testTEnum.cxx index d439f0303c5..a88f0ea37c7 100644 --- a/core/meta/test/testTEnum.cxx +++ b/core/meta/test/testTEnum.cxx @@ -4,6 +4,8 @@ #include "gtest/gtest.h" #include "gmock/gmock.h" +#include <type_traits> + TEST(TEnum, UnderlyingType) { gInterpreter->Declare(R"CODE( @@ -42,9 +44,13 @@ enum class ECcl: short; )CODE" ); - EXPECT_EQ(TEnum::GetEnum("E0")->GetUnderlyingType(), kUInt_t); - EXPECT_EQ(TEnum::GetEnum("E1")->GetUnderlyingType(), kULong_t); - EXPECT_EQ(TEnum::GetEnum("E2")->GetUnderlyingType(), kULong_t); + enum E0 { kE0One }; + enum E1 { kE1One = LONG_MAX }; + enum E2 { kE2One = ULONG_MAX }; + + EXPECT_EQ(TEnum::GetEnum("E0")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E0>::type))); + EXPECT_EQ(TEnum::GetEnum("E1")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E1>::type))); + EXPECT_EQ(TEnum::GetEnum("E2")->GetUnderlyingType(), TDataType::GetType(typeid(std::underlying_type<E2>::type))); EXPECT_EQ(TEnum::GetEnum("E3")->GetUnderlyingType(), kChar_t); EXPECT_EQ(TEnum::GetEnum("Eb")->GetUnderlyingType(), kBool_t); -- GitLab