Hash :
5546fb4f
Author :
Date :
2019-01-17T12:25:54
Vulkan:Adding custom pool allocator Migrated pool allocator used by compiler to common. Planning to use this for ANGLE custom command buffers so this some refactoring in preparation for that work. Added a unit test to check PoolAllocator functionality. Bug: angleproject:2951 Reviewed-on: https://chromium-review.googlesource.com/c/1476953 Reviewed-by: Jamie Madill <jmadill@google.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Commit-Queue: Tobin Ehlis <tobine@google.com> Change-Id: I0b4f3d55ea1799e35c9799c221f7129233f30b24 Reviewed-on: https://chromium-review.googlesource.com/c/1492972
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// ImmutableString_test.cpp:
// Tests for ImmutableString and ImmutableStringBuilder.
#include "compiler/translator/ImmutableString.h"
#include "compiler/translator/ImmutableStringBuilder.h"
#include "compiler/translator/PoolAlloc.h"
#include "gtest/gtest.h"
using namespace sh;
class ImmutableStringBuilderTest : public testing::Test
{
public:
ImmutableStringBuilderTest() {}
protected:
void SetUp() override
{
allocator.push();
SetGlobalPoolAllocator(&allocator);
}
void TearDown() override
{
SetGlobalPoolAllocator(nullptr);
allocator.pop();
}
angle::PoolAllocator allocator;
};
// Test writing a 32-bit signed int as hexadecimal using ImmutableStringBuilder.
TEST_F(ImmutableStringBuilderTest, AppendHexInt32)
{
int32_t i = -1;
ImmutableStringBuilder strBuilder(2 * sizeof(int32_t));
strBuilder.appendHex(i);
ImmutableString str = strBuilder;
EXPECT_EQ(std::string("ffffffff"), str.data());
}
// Test writing a 32-bit unsigned int as hexadecimal using ImmutableStringBuilder.
TEST_F(ImmutableStringBuilderTest, AppendHexUint32)
{
uint32_t i = 0x1234beefu;
ImmutableStringBuilder strBuilder(2 * sizeof(uint32_t));
strBuilder.appendHex(i);
ImmutableString str = strBuilder;
EXPECT_EQ(std::string("1234beef"), str.data());
}
// Test writing a 64-bit signed int as hexadecimal using ImmutableStringBuilder.
TEST_F(ImmutableStringBuilderTest, AppendHexInt64)
{
int64_t i = -1;
ImmutableStringBuilder strBuilder(2 * sizeof(int64_t));
strBuilder.appendHex(i);
ImmutableString str = strBuilder;
EXPECT_EQ(std::string("ffffffffffffffff"), str.data());
}
// Test writing a 64-bit unsigned int as hexadecimal using ImmutableStringBuilder.
TEST_F(ImmutableStringBuilderTest, AppendHexUint64)
{
uint64_t i = 0xfeedcafe9876beefull;
ImmutableStringBuilder strBuilder(2 * sizeof(uint64_t));
strBuilder.appendHex(i);
ImmutableString str = strBuilder;
EXPECT_EQ(std::string("feedcafe9876beef"), str.data());
}