blob: f55ceaf861a1588639da1e37183a919ff80ae414 [file] [log] [blame]
// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.components.heap_profiling;
import org.chromium.base.annotations.MainDex;
/**
* Provides direct access to heap_profiling_test_shim, which in turn forwards to
* heap_profiling::TestDriver. Only used for testing.
*/
@MainDex
public class HeapProfilingTestShim {
public HeapProfilingTestShim() {
mNativeHeapProfilingTestShim = nativeInit();
}
/**
* When |dynamicallyStartProfiling| is true, the test harness is
* responsible for starting profiling for the relevant processes.
* When |pseudoStacks| is true, the stacks use trace-event based stacks
* rather than native stacks.
*/
public boolean runTestForMode(String mode, boolean dynamicallyStartProfiling, String stackMode,
boolean shouldSample, boolean sampleEverything) {
return nativeRunTestForMode(mNativeHeapProfilingTestShim, mode, dynamicallyStartProfiling,
stackMode, shouldSample, sampleEverything);
}
/**
* Clean up the C++ side of this class.
* After the call, this class instance shouldn't be used.
*/
public void destroy() {
if (mNativeHeapProfilingTestShim != 0) {
nativeDestroy(mNativeHeapProfilingTestShim);
mNativeHeapProfilingTestShim = 0;
}
}
private long mNativeHeapProfilingTestShim;
private native long nativeInit();
private native void nativeDestroy(long nativeHeapProfilingTestShim);
private native boolean nativeRunTestForMode(long nativeHeapProfilingTestShim, String mode,
boolean dynamicallyStartProfiling, String stackMode, boolean shouldSample,
boolean sampleEverything);
}