GCC Support for Linux
Updates and fixes to support GCC for Linux Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com> Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
#include <AzCore/std/string/regex.h>
|
||||
#include <AzCore/std/string/wildcard.h>
|
||||
#include <AzCore/std/string/fixed_string.h>
|
||||
#include <AzCore/std/typetraits/is_convertible.h>
|
||||
|
||||
// we need this for AZ_TEST_FLOAT compare
|
||||
#include <cinttypes>
|
||||
@@ -1458,34 +1459,33 @@ namespace UnitTest
|
||||
|
||||
using ValidFormatArg = AZStd::string::_Format_Internal::ValidFormatArg;
|
||||
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v1), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v2), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v3), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v4), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v5), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v6), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v7), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v8), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v9), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v10), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v11), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v12), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v13), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v14), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v15), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v16), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v17), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZSTD_IS_CONVERTIBLE(decltype(v18), ValidFormatArg), "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v1), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v2), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v3), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v4), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v5), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v7), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v8), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v9), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v10), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v11), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v12), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v13), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v14), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v15), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v16), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v17), ValidFormatArg>, "Should be valid format argument");
|
||||
static_assert(AZStd::is_convertible_v<decltype(v18), ValidFormatArg>, "Should be valid format argument");
|
||||
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(AZStd::string, ValidFormatArg), "AZStd::string shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(std::string, ValidFormatArg), "std::string shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(AZStd::wstring, ValidFormatArg), "AZStd::wstring shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(std::wstring, ValidFormatArg), "std::wstring shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(WrappedInt, ValidFormatArg), "WrappedInt shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(AZStd::string_view, ValidFormatArg), "AZStd::string_view shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(AZStd::wstring_view, ValidFormatArg), "AZStd::wstring_view shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(std::string_view, ValidFormatArg), "string_view shouldn't be a valid format argument");
|
||||
static_assert(!AZSTD_IS_CONVERTIBLE(std::wstring_view, ValidFormatArg), "wstring_view shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<AZStd::string, ValidFormatArg>, "AZStd::string shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<std::string, ValidFormatArg>, "std::string shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<AZStd::wstring, ValidFormatArg>, "AZStd::wstring shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<std::wstring, ValidFormatArg>, "std::wstring shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<WrappedInt, ValidFormatArg>, "WrappedInt shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<AZStd::string_view, ValidFormatArg>, "AZStd::string_view shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<AZStd::wstring_view, ValidFormatArg>, "AZStd::wstring_view shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<std::string_view, ValidFormatArg>, "string_view shouldn't be a valid format argument");
|
||||
static_assert(!AZStd::is_convertible_v<std::wstring_view, ValidFormatArg>, "wstring_view shouldn't be a valid format argument");
|
||||
}
|
||||
|
||||
TEST_F(String, StringViewPrintf)
|
||||
|
||||
@@ -373,8 +373,8 @@ namespace UnitTest
|
||||
: public AllocatorsFixture
|
||||
{
|
||||
public:
|
||||
using Handler = Handler<Bus>;
|
||||
using MultiHandlerById = MultiHandlerById<Bus>;
|
||||
using BusHandler = Handler<Bus>;
|
||||
using BusMultiHandlerById = MultiHandlerById<Bus>;
|
||||
|
||||
EBusTestAll()
|
||||
{
|
||||
@@ -402,7 +402,7 @@ namespace UnitTest
|
||||
{
|
||||
for (int handler = 0; handler < numHandlersPerAddress; ++handler)
|
||||
{
|
||||
m_handlers[address].emplace_back(aznew Handler(address, connectOnConstruct));
|
||||
m_handlers[address].emplace_back(aznew BusHandler(address, connectOnConstruct));
|
||||
++m_numHandlers;
|
||||
}
|
||||
}
|
||||
@@ -429,7 +429,7 @@ namespace UnitTest
|
||||
{
|
||||
for (const auto& handlerPair : m_handlers)
|
||||
{
|
||||
for (Handler* handler : handlerPair.second)
|
||||
for (BusHandler* handler : handlerPair.second)
|
||||
{
|
||||
delete handler;
|
||||
}
|
||||
@@ -452,7 +452,7 @@ namespace UnitTest
|
||||
if (AddressesAreOrdered())
|
||||
{
|
||||
// Collect the first handler from each address
|
||||
using PairType = AZStd::pair<int, Handler*>;
|
||||
using PairType = AZStd::pair<int, BusHandler*>;
|
||||
AZStd::vector<PairType> sortedHandlers;
|
||||
for (const auto& handlerPair : m_handlers)
|
||||
{
|
||||
@@ -495,7 +495,7 @@ namespace UnitTest
|
||||
{
|
||||
auto& handlers = m_handlers[id];
|
||||
|
||||
for (Handler* handler : handlers)
|
||||
for (BusHandler* handler : handlers)
|
||||
{
|
||||
EXPECT_EQ(expected, handler->m_eventCalls);
|
||||
}
|
||||
@@ -505,11 +505,11 @@ namespace UnitTest
|
||||
{
|
||||
// Sort the handlers the same way we expect the bus to sort them
|
||||
auto sortedHandlers = handlers;
|
||||
AZStd::sort(sortedHandlers.begin(), sortedHandlers.end(), AZStd::bind(&Handler::Compare, AZStd::placeholders::_1, AZStd::placeholders::_2));
|
||||
AZStd::sort(sortedHandlers.begin(), sortedHandlers.end(), AZStd::bind(&BusHandler::Compare, AZStd::placeholders::_1, AZStd::placeholders::_2));
|
||||
|
||||
// Iterate over the list, and validate that they were called in the correct order
|
||||
unsigned int lastExecuted = 0;
|
||||
for (const Handler* handler : sortedHandlers)
|
||||
for (const BusHandler* handler : sortedHandlers)
|
||||
{
|
||||
if (lastExecuted > 0)
|
||||
{
|
||||
@@ -550,7 +550,7 @@ namespace UnitTest
|
||||
}
|
||||
|
||||
protected:
|
||||
AZStd::unordered_map<int, AZStd::vector<Handler*>> m_handlers;
|
||||
AZStd::unordered_map<int, AZStd::vector<BusHandler*>> m_handlers;
|
||||
int m_numHandlers = 0;
|
||||
};
|
||||
TYPED_TEST_CASE(EBusTestAll, BusTypesAll);
|
||||
@@ -578,7 +578,7 @@ namespace UnitTest
|
||||
TYPED_TEST(EBusTestAll, ConnectDisconnect)
|
||||
{
|
||||
using Bus = TypeParam;
|
||||
using Handler = typename EBusTestAll<Bus>::Handler;
|
||||
using Handler = typename EBusTestAll<Bus>::BusHandler;
|
||||
|
||||
constexpr bool connectOnConstruct{ true };
|
||||
Handler meh(0, connectOnConstruct);
|
||||
@@ -602,13 +602,13 @@ namespace UnitTest
|
||||
TYPED_TEST(EBusTestIdMultiHandlers, EnumerateHandlers_MultiHandler)
|
||||
{
|
||||
using Bus = TypeParam;
|
||||
using MultiHandlerById = typename EBusTestAll<Bus>::MultiHandlerById;
|
||||
using BusMultiHandlerById = typename EBusTestAll<Bus>::BusMultiHandlerById;
|
||||
|
||||
MultiHandlerById sourceMultiHandler{ 0, 1, 2 };
|
||||
MultiHandlerById multiHandlerWithOverlappingIds{ 1, 3, 5 };
|
||||
BusMultiHandlerById sourceMultiHandler{ 0, 1, 2 };
|
||||
BusMultiHandlerById multiHandlerWithOverlappingIds{ 1, 3, 5 };
|
||||
|
||||
// Test handlers' enumeration functionality
|
||||
Bus::EnumerateHandlers([](typename MultiHandlerById::Interface* interfaceInst) -> bool
|
||||
Bus::EnumerateHandlers([](typename BusMultiHandlerById::Interface* interfaceInst) -> bool
|
||||
{
|
||||
interfaceInst->OnEvent();
|
||||
return true;
|
||||
@@ -618,7 +618,7 @@ namespace UnitTest
|
||||
TYPED_TEST(EBusTestId, FindFirstHandler)
|
||||
{
|
||||
using Bus = TypeParam;
|
||||
using Handler = typename EBusTestAll<Bus>::Handler;
|
||||
using Handler = typename EBusTestAll<Bus>::BusHandler;
|
||||
constexpr bool connectOnConstruct{ true };
|
||||
Handler meh0(0, connectOnConstruct); /// <-- Bind to bus 0
|
||||
Handler meh1(1, connectOnConstruct); /// <-- Bind to bus 1
|
||||
|
||||
@@ -4014,9 +4014,12 @@ TEST_F(SerializeBasicTest, BasicTypeTest_Succeed)
|
||||
};
|
||||
}
|
||||
} // namespace UnitTest
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::EditTest::MyEditStruct3::EditEnum, "{4AF433C2-055E-4E34-921A-A7D16AB548CA}");
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::EditTest::MyEditStruct3::EditEnumClass, "{4FEC2F0B-A599-4FCD-836B-89E066791793}");
|
||||
|
||||
namespace AZ
|
||||
{
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::EditTest::MyEditStruct3::EditEnum, "{4AF433C2-055E-4E34-921A-A7D16AB548CA}");
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::EditTest::MyEditStruct3::EditEnumClass, "{4FEC2F0B-A599-4FCD-836B-89E066791793}");
|
||||
}
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
@@ -7798,10 +7801,12 @@ namespace UnitTest
|
||||
};
|
||||
}
|
||||
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestUnscopedSerializationEnum, "{83383BFA-F6DA-4124-BE4F-2FAAB7C594E7}");
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestScopedSerializationEnum, "{17341C5E-81C3-44CB-A40D-F97D49C2531D}");
|
||||
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestUnsignedEnum, "{0F91A5AE-DADA-4455-B158-8DB79D277495}");
|
||||
namespace AZ
|
||||
{
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestUnscopedSerializationEnum, "{83383BFA-F6DA-4124-BE4F-2FAAB7C594E7}");
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestScopedSerializationEnum, "{17341C5E-81C3-44CB-A40D-F97D49C2531D}");
|
||||
AZ_TYPE_INFO_SPECIALIZE(UnitTest::TestUnsignedEnum, "{0F91A5AE-DADA-4455-B158-8DB79D277495}");
|
||||
}
|
||||
|
||||
namespace UnitTest
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user