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
This commit is contained in:
Chandan Kumar
2022-08-12 23:44:41 +00:00
parent 9f2176d985
commit 5d190e8a54

View File

@@ -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<String> result = engine.evaluate(jsScript, args, functionName);
ListenableFuture<String> 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<String> result = engine.evaluate(jsScript, wasmScript, args, functionName);
ListenableFuture<String> result = engine.evaluate(
jsScript,
wasmScript,
args,
functionName,
IsolateSettings.forMaxHeapSizeEnforcementDisabled());
result.addListener(resultLatch::countDown, sExecutorService);
return result;
}