Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mobile
Path: blob/master/test/hotspot/gtest/gc/z/test_zPhysicalMemory.cpp
41152 views
1
/*
2
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
3
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
*
5
* This code is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU General Public License version 2 only, as
7
* published by the Free Software Foundation.
8
*
9
* This code is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12
* version 2 for more details (a copy is included in the LICENSE file that
13
* accompanied this code).
14
*
15
* You should have received a copy of the GNU General Public License version
16
* 2 along with this work; if not, write to the Free Software Foundation,
17
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18
*
19
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20
* or visit www.oracle.com if you need additional information or have any
21
* questions.
22
*/
23
24
#include "precompiled.hpp"
25
#include "gc/z/zPhysicalMemory.inline.hpp"
26
#include "unittest.hpp"
27
28
TEST(ZPhysicalMemoryTest, copy) {
29
const ZPhysicalMemorySegment seg0(0, 100, true);
30
const ZPhysicalMemorySegment seg1(200, 100, true);
31
32
ZPhysicalMemory pmem0;
33
pmem0.add_segment(seg0);
34
EXPECT_EQ(pmem0.nsegments(), 1);
35
EXPECT_EQ(pmem0.segment(0).size(), 100u);
36
37
ZPhysicalMemory pmem1;
38
pmem1.add_segment(seg0);
39
pmem1.add_segment(seg1);
40
EXPECT_EQ(pmem1.nsegments(), 2);
41
EXPECT_EQ(pmem1.segment(0).size(), 100u);
42
EXPECT_EQ(pmem1.segment(1).size(), 100u);
43
44
ZPhysicalMemory pmem2(pmem0);
45
EXPECT_EQ(pmem2.nsegments(), 1);
46
EXPECT_EQ(pmem2.segment(0).size(), 100u);
47
48
pmem2 = pmem1;
49
EXPECT_EQ(pmem2.nsegments(), 2);
50
EXPECT_EQ(pmem2.segment(0).size(), 100u);
51
EXPECT_EQ(pmem2.segment(1).size(), 100u);
52
}
53
54
TEST(ZPhysicalMemoryTest, add) {
55
const ZPhysicalMemorySegment seg0(0, 1, true);
56
const ZPhysicalMemorySegment seg1(1, 1, true);
57
const ZPhysicalMemorySegment seg2(2, 1, true);
58
const ZPhysicalMemorySegment seg3(3, 1, true);
59
const ZPhysicalMemorySegment seg4(4, 1, true);
60
const ZPhysicalMemorySegment seg5(5, 1, true);
61
const ZPhysicalMemorySegment seg6(6, 1, true);
62
63
ZPhysicalMemory pmem0;
64
EXPECT_EQ(pmem0.nsegments(), 0);
65
EXPECT_EQ(pmem0.is_null(), true);
66
67
ZPhysicalMemory pmem1;
68
pmem1.add_segment(seg0);
69
pmem1.add_segment(seg1);
70
pmem1.add_segment(seg2);
71
pmem1.add_segment(seg3);
72
pmem1.add_segment(seg4);
73
pmem1.add_segment(seg5);
74
pmem1.add_segment(seg6);
75
EXPECT_EQ(pmem1.nsegments(), 1);
76
EXPECT_EQ(pmem1.segment(0).size(), 7u);
77
EXPECT_EQ(pmem1.is_null(), false);
78
79
ZPhysicalMemory pmem2;
80
pmem2.add_segment(seg0);
81
pmem2.add_segment(seg1);
82
pmem2.add_segment(seg2);
83
pmem2.add_segment(seg4);
84
pmem2.add_segment(seg5);
85
pmem2.add_segment(seg6);
86
EXPECT_EQ(pmem2.nsegments(), 2);
87
EXPECT_EQ(pmem2.segment(0).size(), 3u);
88
EXPECT_EQ(pmem2.segment(1).size(), 3u);
89
EXPECT_EQ(pmem2.is_null(), false);
90
91
ZPhysicalMemory pmem3;
92
pmem3.add_segment(seg0);
93
pmem3.add_segment(seg2);
94
pmem3.add_segment(seg3);
95
pmem3.add_segment(seg4);
96
pmem3.add_segment(seg6);
97
EXPECT_EQ(pmem3.nsegments(), 3);
98
EXPECT_EQ(pmem3.segment(0).size(), 1u);
99
EXPECT_EQ(pmem3.segment(1).size(), 3u);
100
EXPECT_EQ(pmem3.segment(2).size(), 1u);
101
EXPECT_EQ(pmem3.is_null(), false);
102
103
ZPhysicalMemory pmem4;
104
pmem4.add_segment(seg0);
105
pmem4.add_segment(seg2);
106
pmem4.add_segment(seg4);
107
pmem4.add_segment(seg6);
108
EXPECT_EQ(pmem4.nsegments(), 4);
109
EXPECT_EQ(pmem4.segment(0).size(), 1u);
110
EXPECT_EQ(pmem4.segment(1).size(), 1u);
111
EXPECT_EQ(pmem4.segment(2).size(), 1u);
112
EXPECT_EQ(pmem4.segment(3).size(), 1u);
113
EXPECT_EQ(pmem4.is_null(), false);
114
}
115
116
TEST(ZPhysicalMemoryTest, remove) {
117
ZPhysicalMemory pmem;
118
119
pmem.add_segment(ZPhysicalMemorySegment(10, 10, true));
120
pmem.add_segment(ZPhysicalMemorySegment(30, 10, true));
121
pmem.add_segment(ZPhysicalMemorySegment(50, 10, true));
122
EXPECT_EQ(pmem.nsegments(), 3);
123
EXPECT_EQ(pmem.size(), 30u);
124
EXPECT_FALSE(pmem.is_null());
125
126
pmem.remove_segments();
127
EXPECT_EQ(pmem.nsegments(), 0);
128
EXPECT_EQ(pmem.size(), 0u);
129
EXPECT_TRUE(pmem.is_null());
130
}
131
132
TEST(ZPhysicalMemoryTest, split) {
133
ZPhysicalMemory pmem;
134
135
pmem.add_segment(ZPhysicalMemorySegment(0, 10, true));
136
pmem.add_segment(ZPhysicalMemorySegment(10, 10, true));
137
pmem.add_segment(ZPhysicalMemorySegment(30, 10, true));
138
EXPECT_EQ(pmem.nsegments(), 2);
139
EXPECT_EQ(pmem.size(), 30u);
140
141
ZPhysicalMemory pmem0 = pmem.split(1);
142
EXPECT_EQ(pmem0.nsegments(), 1);
143
EXPECT_EQ(pmem0.size(), 1u);
144
EXPECT_EQ(pmem.nsegments(), 2);
145
EXPECT_EQ(pmem.size(), 29u);
146
147
ZPhysicalMemory pmem1 = pmem.split(25);
148
EXPECT_EQ(pmem1.nsegments(), 2);
149
EXPECT_EQ(pmem1.size(), 25u);
150
EXPECT_EQ(pmem.nsegments(), 1);
151
EXPECT_EQ(pmem.size(), 4u);
152
153
ZPhysicalMemory pmem2 = pmem.split(4);
154
EXPECT_EQ(pmem2.nsegments(), 1);
155
EXPECT_EQ(pmem2.size(), 4u);
156
EXPECT_EQ(pmem.nsegments(), 0);
157
EXPECT_EQ(pmem.size(), 0u);
158
}
159
160
TEST(ZPhysicalMemoryTest, split_committed) {
161
ZPhysicalMemory pmem0;
162
pmem0.add_segment(ZPhysicalMemorySegment(0, 10, true));
163
pmem0.add_segment(ZPhysicalMemorySegment(10, 10, false));
164
pmem0.add_segment(ZPhysicalMemorySegment(20, 10, true));
165
pmem0.add_segment(ZPhysicalMemorySegment(30, 10, false));
166
EXPECT_EQ(pmem0.nsegments(), 4);
167
EXPECT_EQ(pmem0.size(), 40u);
168
169
ZPhysicalMemory pmem1 = pmem0.split_committed();
170
EXPECT_EQ(pmem0.nsegments(), 2);
171
EXPECT_EQ(pmem0.size(), 20u);
172
EXPECT_EQ(pmem1.nsegments(), 2);
173
EXPECT_EQ(pmem1.size(), 20u);
174
}
175
176