From 5d190e8a542ac6ee34f74b2e09b136ea76c711a6 Mon Sep 17 00:00:00 2001 From: Chandan Kumar Date: Fri, 12 Aug 2022 23:44:41 +0000 Subject: [PATCH] Enforce limits on memory usage for JsIsolate Checked if the JsIsolate supports being memory capped. If supported, and enforced restrict max memory. Test: Added test thet check for using the isolate setting to: - bypass enforcement - have unbounded memory isloate - have bounded memory isolate Bug: 239719630 Change-Id: Ie9dc4dbcf529e54eec912f66b0ad1da637dcae96 --- .../rubidium/js/JSScriptEnginePerfTests.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java index 81685cbbd5942..33b2bea1da666 100644 --- a/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java +++ b/apct-tests/perftests/rubidium/src/android/rubidium/js/JSScriptEnginePerfTests.java @@ -37,6 +37,7 @@ import androidx.test.core.app.ApplicationProvider; import androidx.test.filters.MediumTest; import androidx.test.runner.AndroidJUnit4; +import com.android.adservices.service.js.IsolateSettings; import com.android.adservices.service.js.JSScriptArgument; import com.android.adservices.service.js.JSScriptArrayArgument; import com.android.adservices.service.js.JSScriptEngine; @@ -314,7 +315,11 @@ public class JSScriptEnginePerfTests { @NonNull CountDownLatch resultLatch) { Objects.requireNonNull(engine); Objects.requireNonNull(resultLatch); - ListenableFuture result = engine.evaluate(jsScript, args, functionName); + ListenableFuture result = engine.evaluate( + jsScript, + args, + functionName, + IsolateSettings.forMaxHeapSizeEnforcementDisabled()); result.addListener(resultLatch::countDown, sExecutorService); return result; } @@ -328,7 +333,12 @@ public class JSScriptEnginePerfTests { @NonNull CountDownLatch resultLatch) { Objects.requireNonNull(engine); Objects.requireNonNull(resultLatch); - ListenableFuture result = engine.evaluate(jsScript, wasmScript, args, functionName); + ListenableFuture result = engine.evaluate( + jsScript, + wasmScript, + args, + functionName, + IsolateSettings.forMaxHeapSizeEnforcementDisabled()); result.addListener(resultLatch::countDown, sExecutorService); return result; }