| // Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| package com.android.tools.r8.heap; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertTrue; |
| |
| import com.android.tools.r8.TestBase; |
| import com.android.tools.r8.utils.HeapUtils; |
| import java.io.InputStream; |
| import java.nio.file.Files; |
| import java.nio.file.Path; |
| import org.junit.Test; |
| |
| public class HeapDumpTest extends TestBase { |
| |
| @Test |
| public void testHeapDump() throws Exception { |
| Path heapDumpDir = temp.newFolder().toPath(); |
| Path heapDump = heapDumpDir.resolve("test.hprof"); |
| HeapUtils.dumpHeap(heapDump, true); |
| assertTrue(heapDump.toFile().exists()); |
| String header = "JAVA PROFILE 1.0.2"; |
| assertTrue(heapDump.toFile().length() > header.length()); |
| try (InputStream is = Files.newInputStream(heapDump)) { |
| byte[] buffer = new byte[header.length()]; |
| int bytes = is.read(buffer); |
| assertEquals(buffer.length, bytes); |
| assertEquals(header, new String(buffer)); |
| } |
| } |
| } |