Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/src/tests/compiler_tests/ImmutableString_test.cpp
1693 views
1
// Copyright 2018 The ANGLE Project Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
//
5
// ImmutableString_test.cpp:
6
// Tests for ImmutableString and ImmutableStringBuilder.
7
8
#include "compiler/translator/ImmutableString.h"
9
#include "compiler/translator/ImmutableStringBuilder.h"
10
#include "compiler/translator/PoolAlloc.h"
11
#include "gtest/gtest.h"
12
13
using namespace sh;
14
15
class ImmutableStringBuilderTest : public testing::Test
16
{
17
public:
18
ImmutableStringBuilderTest() {}
19
20
protected:
21
void SetUp() override
22
{
23
allocator.push();
24
SetGlobalPoolAllocator(&allocator);
25
}
26
27
void TearDown() override
28
{
29
SetGlobalPoolAllocator(nullptr);
30
allocator.pop();
31
}
32
33
angle::PoolAllocator allocator;
34
};
35
36
// Test writing a 32-bit signed int as hexadecimal using ImmutableStringBuilder.
37
TEST_F(ImmutableStringBuilderTest, AppendHexInt32)
38
{
39
int32_t i = -1;
40
ImmutableStringBuilder strBuilder(2 * sizeof(int32_t));
41
strBuilder.appendHex(i);
42
ImmutableString str = strBuilder;
43
EXPECT_EQ(std::string("ffffffff"), str.data());
44
}
45
46
// Test writing a 32-bit unsigned int as hexadecimal using ImmutableStringBuilder.
47
TEST_F(ImmutableStringBuilderTest, AppendHexUint32)
48
{
49
uint32_t i = 0x1234beefu;
50
ImmutableStringBuilder strBuilder(2 * sizeof(uint32_t));
51
strBuilder.appendHex(i);
52
ImmutableString str = strBuilder;
53
EXPECT_EQ(std::string("1234beef"), str.data());
54
}
55
56
// Test writing a 64-bit signed int as hexadecimal using ImmutableStringBuilder.
57
TEST_F(ImmutableStringBuilderTest, AppendHexInt64)
58
{
59
int64_t i = -1;
60
ImmutableStringBuilder strBuilder(2 * sizeof(int64_t));
61
strBuilder.appendHex(i);
62
ImmutableString str = strBuilder;
63
EXPECT_EQ(std::string("ffffffffffffffff"), str.data());
64
}
65
66
// Test writing a 64-bit unsigned int as hexadecimal using ImmutableStringBuilder.
67
TEST_F(ImmutableStringBuilderTest, AppendHexUint64)
68
{
69
uint64_t i = 0xfeedcafe9876beefull;
70
ImmutableStringBuilder strBuilder(2 * sizeof(uint64_t));
71
strBuilder.appendHex(i);
72
ImmutableString str = strBuilder;
73
EXPECT_EQ(std::string("feedcafe9876beef"), str.data());
74
}
75
76