xref: /aosp_15_r20/system/extras/memory_replay/tests/NativeInfoTest.cpp (revision 288bf5226967eb3dac5cce6c939ccc2a7f2b4fe5)
1*288bf522SAndroid Build Coastguard Worker /*
2*288bf522SAndroid Build Coastguard Worker  * Copyright (C) 2015 The Android Open Source Project
3*288bf522SAndroid Build Coastguard Worker  *
4*288bf522SAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
5*288bf522SAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
6*288bf522SAndroid Build Coastguard Worker  * You may obtain a copy of the License at
7*288bf522SAndroid Build Coastguard Worker  *
8*288bf522SAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
9*288bf522SAndroid Build Coastguard Worker  *
10*288bf522SAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
11*288bf522SAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
12*288bf522SAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*288bf522SAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
14*288bf522SAndroid Build Coastguard Worker  * limitations under the License.
15*288bf522SAndroid Build Coastguard Worker  */
16*288bf522SAndroid Build Coastguard Worker 
17*288bf522SAndroid Build Coastguard Worker #include <stdint.h>
18*288bf522SAndroid Build Coastguard Worker 
19*288bf522SAndroid Build Coastguard Worker #include <string>
20*288bf522SAndroid Build Coastguard Worker 
21*288bf522SAndroid Build Coastguard Worker #include <android-base/file.h>
22*288bf522SAndroid Build Coastguard Worker #include <gtest/gtest.h>
23*288bf522SAndroid Build Coastguard Worker 
24*288bf522SAndroid Build Coastguard Worker #include "NativeInfo.h"
25*288bf522SAndroid Build Coastguard Worker 
26*288bf522SAndroid Build Coastguard Worker class NativeInfoTest : public ::testing::Test {
27*288bf522SAndroid Build Coastguard Worker  protected:
SetUp()28*288bf522SAndroid Build Coastguard Worker   void SetUp() override {
29*288bf522SAndroid Build Coastguard Worker     tmp_file_ = new TemporaryFile();
30*288bf522SAndroid Build Coastguard Worker     ASSERT_TRUE(tmp_file_->fd != -1);
31*288bf522SAndroid Build Coastguard Worker   }
32*288bf522SAndroid Build Coastguard Worker 
TearDown()33*288bf522SAndroid Build Coastguard Worker   void TearDown() override {
34*288bf522SAndroid Build Coastguard Worker     delete tmp_file_;
35*288bf522SAndroid Build Coastguard Worker   }
36*288bf522SAndroid Build Coastguard Worker 
37*288bf522SAndroid Build Coastguard Worker  TemporaryFile* tmp_file_ = nullptr;
38*288bf522SAndroid Build Coastguard Worker };
39*288bf522SAndroid Build Coastguard Worker 
TEST_F(NativeInfoTest,no_matching)40*288bf522SAndroid Build Coastguard Worker TEST_F(NativeInfoTest, no_matching) {
41*288bf522SAndroid Build Coastguard Worker   std::string smaps_data =
42*288bf522SAndroid Build Coastguard Worker       "b6f1a000-b6f1c000 rw-p 00000000 00:00 0          [anon:thread signal stack]\n"
43*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
44*288bf522SAndroid Build Coastguard Worker       "Rss:                   12 kB\n"
45*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
46*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
47*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
48*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
49*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
50*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
51*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
52*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
53*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
54*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
55*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
56*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
57*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:thread signal stack]\n";
58*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(TEMP_FAILURE_RETRY(
59*288bf522SAndroid Build Coastguard Worker       write(tmp_file_->fd, smaps_data.c_str(), smaps_data.size())) != -1);
60*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(lseek(tmp_file_->fd, 0, SEEK_SET) != off_t(-1));
61*288bf522SAndroid Build Coastguard Worker 
62*288bf522SAndroid Build Coastguard Worker   size_t rss_bytes = 1;
63*288bf522SAndroid Build Coastguard Worker   size_t va_bytes = 1;
64*288bf522SAndroid Build Coastguard Worker   NativeGetInfo(tmp_file_->fd, &rss_bytes, &va_bytes);
65*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(0U, rss_bytes);
66*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(0U, va_bytes);
67*288bf522SAndroid Build Coastguard Worker }
68*288bf522SAndroid Build Coastguard Worker 
TEST_F(NativeInfoTest,multiple_anons)69*288bf522SAndroid Build Coastguard Worker TEST_F(NativeInfoTest, multiple_anons) {
70*288bf522SAndroid Build Coastguard Worker   std::string smaps_data =
71*288bf522SAndroid Build Coastguard Worker       "b6f1a000-b6f1c000 rw-p 00000000 00:00 0          [anon:libc_malloc]\n"
72*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
73*288bf522SAndroid Build Coastguard Worker       "Rss:                   12 kB\n"
74*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
75*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
76*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
77*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
78*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
79*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
80*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
81*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
82*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
83*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
84*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
85*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
86*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:libc_malloc]\n"
87*288bf522SAndroid Build Coastguard Worker       "b6f1e000-b6f1f000 rw-p 00000000 00:00 0          [anon:libc_malloc]\n"
88*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
89*288bf522SAndroid Build Coastguard Worker       "Rss:                   20 kB\n"
90*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
91*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
92*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
93*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
94*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
95*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
96*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
97*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
98*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
99*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
100*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
101*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
102*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:libc_malloc]\n"
103*288bf522SAndroid Build Coastguard Worker       "b6f2e000-b6f2f000 rw-p 00000000 00:00 0\n"
104*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
105*288bf522SAndroid Build Coastguard Worker       "Rss:                   24 kB\n"
106*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
107*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
108*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
109*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
110*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
111*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
112*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
113*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
114*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
115*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
116*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
117*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
118*288bf522SAndroid Build Coastguard Worker       "Name:\n";
119*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(TEMP_FAILURE_RETRY(
120*288bf522SAndroid Build Coastguard Worker       write(tmp_file_->fd, smaps_data.c_str(), smaps_data.size())) != -1);
121*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(lseek(tmp_file_->fd, 0, SEEK_SET) != off_t(-1));
122*288bf522SAndroid Build Coastguard Worker 
123*288bf522SAndroid Build Coastguard Worker   size_t rss_bytes = 1;
124*288bf522SAndroid Build Coastguard Worker   size_t va_bytes = 1;
125*288bf522SAndroid Build Coastguard Worker   NativeGetInfo(tmp_file_->fd, &rss_bytes, &va_bytes);
126*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(32768U, rss_bytes);
127*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(12288U, va_bytes);
128*288bf522SAndroid Build Coastguard Worker }
129*288bf522SAndroid Build Coastguard Worker 
TEST_F(NativeInfoTest,multiple_heaps)130*288bf522SAndroid Build Coastguard Worker TEST_F(NativeInfoTest, multiple_heaps) {
131*288bf522SAndroid Build Coastguard Worker   std::string smaps_data =
132*288bf522SAndroid Build Coastguard Worker       "b6f1a000-b6f1c000 rw-p 00000000 00:00 0          [heap]\n"
133*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
134*288bf522SAndroid Build Coastguard Worker       "Rss:                   24 kB\n"
135*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
136*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
137*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
138*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
139*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
140*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
141*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
142*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
143*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
144*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
145*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
146*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
147*288bf522SAndroid Build Coastguard Worker       "Name:           [heap]\n"
148*288bf522SAndroid Build Coastguard Worker       "b6f1e000-b6f1f000 rw-p 00000000 00:00 0          [heap]\n"
149*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
150*288bf522SAndroid Build Coastguard Worker       "Rss:                   20 kB\n"
151*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
152*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
153*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
154*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
155*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
156*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
157*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
158*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
159*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
160*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
161*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
162*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
163*288bf522SAndroid Build Coastguard Worker       "Name:           [heap]\n"
164*288bf522SAndroid Build Coastguard Worker       "b6f2e000-b6f2f000 rw-p 00000000 00:00 0\n"
165*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
166*288bf522SAndroid Build Coastguard Worker       "Rss:                   24 kB\n"
167*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
168*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
169*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
170*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
171*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
172*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
173*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
174*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
175*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
176*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
177*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
178*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
179*288bf522SAndroid Build Coastguard Worker       "Name:\n";
180*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(TEMP_FAILURE_RETRY(
181*288bf522SAndroid Build Coastguard Worker       write(tmp_file_->fd, smaps_data.c_str(), smaps_data.size())) != -1);
182*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(lseek(tmp_file_->fd, 0, SEEK_SET) != off_t(-1));
183*288bf522SAndroid Build Coastguard Worker 
184*288bf522SAndroid Build Coastguard Worker   size_t rss_bytes = 1;
185*288bf522SAndroid Build Coastguard Worker   size_t va_bytes = 1;
186*288bf522SAndroid Build Coastguard Worker   NativeGetInfo(tmp_file_->fd, &rss_bytes, &va_bytes);
187*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(45056U, rss_bytes);
188*288bf522SAndroid Build Coastguard Worker   ASSERT_EQ(12288U, va_bytes);
189*288bf522SAndroid Build Coastguard Worker }
190*288bf522SAndroid Build Coastguard Worker 
TEST_F(NativeInfoTest,mix_heap_anon)191*288bf522SAndroid Build Coastguard Worker TEST_F(NativeInfoTest, mix_heap_anon) {
192*288bf522SAndroid Build Coastguard Worker   std::string smaps_data =
193*288bf522SAndroid Build Coastguard Worker       "b6f1a000-b6f1c000 rw-p 00000000 00:00 0          [heap]\n"
194*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
195*288bf522SAndroid Build Coastguard Worker       "Rss:                   32 kB\n"
196*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
197*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
198*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
199*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
200*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
201*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
202*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
203*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
204*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
205*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
206*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
207*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
208*288bf522SAndroid Build Coastguard Worker       "Name:           [heap]\n"
209*288bf522SAndroid Build Coastguard Worker       "b6f1e000-b6f1f000 rw-p 00000000 00:00 0          [anon:skip]\n"
210*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
211*288bf522SAndroid Build Coastguard Worker       "Rss:                   32 kB\n"
212*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
213*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
214*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
215*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
216*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
217*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
218*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
219*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
220*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
221*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
222*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
223*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
224*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:skip]\n"
225*288bf522SAndroid Build Coastguard Worker       "b6f2e000-b6f2f000 rw-p 00000000 00:00 0          [anon:libc_malloc]\n"
226*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
227*288bf522SAndroid Build Coastguard Worker       "Rss:                   40 kB\n"
228*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
229*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
230*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
231*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
232*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
233*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
234*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
235*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
236*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
237*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
238*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
239*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
240*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:libc_malloc]\n"
241*288bf522SAndroid Build Coastguard Worker       "b6f3e000-b6f3f000 rw-p 00000000 00:00 0\n"
242*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
243*288bf522SAndroid Build Coastguard Worker       "Rss:                   24 kB\n"
244*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
245*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
246*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
247*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
248*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
249*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
250*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
251*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
252*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
253*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
254*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
255*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
256*288bf522SAndroid Build Coastguard Worker       "Name:\n"
257*288bf522SAndroid Build Coastguard Worker       "b6f4e000-b6f6f000 rw-p 00000000 00:00 0          [anon:scudo:test]\n"
258*288bf522SAndroid Build Coastguard Worker       "Size:                  8 kB\n"
259*288bf522SAndroid Build Coastguard Worker       "Rss:                   52 kB\n"
260*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
261*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
262*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
263*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
264*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
265*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
266*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
267*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
268*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
269*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
270*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
271*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
272*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:scudo:test]\n"
273*288bf522SAndroid Build Coastguard Worker       "b8f4c000-b8f4d000 rw-p 00000000 00:00 0          [anon:GWP-ASan Guard Page]\n"
274*288bf522SAndroid Build Coastguard Worker       "Size:                  4 kB\n"
275*288bf522SAndroid Build Coastguard Worker       "Rss:                   0 kB\n"
276*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
277*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
278*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
279*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
280*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
281*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
282*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
283*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
284*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
285*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
286*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
287*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
288*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:GWP-ASan Guard Page]\n"
289*288bf522SAndroid Build Coastguard Worker       "b8f4d000-b8f4e000 rw-p 00000000 00:00 0          [anon:GWP-ASan Alive Slot]\n"
290*288bf522SAndroid Build Coastguard Worker       "Size:                  4 kB\n"
291*288bf522SAndroid Build Coastguard Worker       "Rss:                   4 kB\n"
292*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
293*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
294*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
295*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
296*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
297*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
298*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
299*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
300*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
301*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
302*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
303*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
304*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:GWP-ASan Alive Slot]\n"
305*288bf522SAndroid Build Coastguard Worker       "b8f4e000-b8f4f000 rw-p 00000000 00:00 0          [anon:GWP-ASan Guard Page]\n"
306*288bf522SAndroid Build Coastguard Worker       "Size:                  4 kB\n"
307*288bf522SAndroid Build Coastguard Worker       "Rss:                   0 kB\n"
308*288bf522SAndroid Build Coastguard Worker       "Pss:                   0 kB\n"
309*288bf522SAndroid Build Coastguard Worker       "Shared_Clean:          0 kB\n"
310*288bf522SAndroid Build Coastguard Worker       "Shared_Dirty:          0 kB\n"
311*288bf522SAndroid Build Coastguard Worker       "Private_Clean:         0 kB\n"
312*288bf522SAndroid Build Coastguard Worker       "Private_Dirty:         0 kB\n"
313*288bf522SAndroid Build Coastguard Worker       "Referenced:            0 kB\n"
314*288bf522SAndroid Build Coastguard Worker       "Anonymous:             0 kB\n"
315*288bf522SAndroid Build Coastguard Worker       "AnonHugePages:         0 kB\n"
316*288bf522SAndroid Build Coastguard Worker       "Swap:                  0 kB\n"
317*288bf522SAndroid Build Coastguard Worker       "KernelPageSize:        4 kB\n"
318*288bf522SAndroid Build Coastguard Worker       "MMUPageSize:           4 kB\n"
319*288bf522SAndroid Build Coastguard Worker       "Locked:                0 kB\n"
320*288bf522SAndroid Build Coastguard Worker       "Name:           [anon:GWP-ASan Guard Page]\n";
321*288bf522SAndroid Build Coastguard Worker 
322*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(TEMP_FAILURE_RETRY(
323*288bf522SAndroid Build Coastguard Worker       write(tmp_file_->fd, smaps_data.c_str(), smaps_data.size())) != -1);
324*288bf522SAndroid Build Coastguard Worker   ASSERT_TRUE(lseek(tmp_file_->fd, 0, SEEK_SET) != off_t(-1));
325*288bf522SAndroid Build Coastguard Worker 
326*288bf522SAndroid Build Coastguard Worker   size_t rss_bytes = 1;
327*288bf522SAndroid Build Coastguard Worker   size_t va_bytes = 1;
328*288bf522SAndroid Build Coastguard Worker   NativeGetInfo(tmp_file_->fd, &rss_bytes, &va_bytes);
329*288bf522SAndroid Build Coastguard Worker   EXPECT_EQ(131072U, rss_bytes);
330*288bf522SAndroid Build Coastguard Worker   EXPECT_EQ(159744U, va_bytes);
331*288bf522SAndroid Build Coastguard Worker }
332