Fix memory leak
Bug: 166073521
Test: atest VtsHalNeuralnetworksV1_2BenchmarkTestCases (with additional logging on model construction and destruction)
Test: atest VtsHalNeuralnetworksV1_3BenchmarkTestCases
Change-Id: I5c8ed9879d748cc15e95a454bcb4362b66b2c5d2
Merged-In: I5c8ed9879d748cc15e95a454bcb4362b66b2c5d2
(cherry picked from commit 78819052d898cdfe77033dbe59e0839a092f80a9)
diff --git a/neuralnetworks/V1_2/benchmark/java/src/com/android/nn/benchmark/vts/v1_2/NNAccuracyTest.java b/neuralnetworks/V1_2/benchmark/java/src/com/android/nn/benchmark/vts/v1_2/NNAccuracyTest.java
index 17ca0ba..6c1aaf6 100644
--- a/neuralnetworks/V1_2/benchmark/java/src/com/android/nn/benchmark/vts/v1_2/NNAccuracyTest.java
+++ b/neuralnetworks/V1_2/benchmark/java/src/com/android/nn/benchmark/vts/v1_2/NNAccuracyTest.java
@@ -117,17 +117,18 @@
@Test
@LargeTest
public void testDriver() throws BenchmarkException, IOException {
- NNTestBase test = mModel.mEntry.createNNTestBase();
- test.useNNApi();
- test.setNNApiDeviceName(mModel.mInstance);
- if (!test.setupModel(mActivity)) {
- throw new AssumptionViolatedException("The driver rejected the model.");
+ try (NNTestBase test = mModel.mEntry.createNNTestBase()) {
+ test.useNNApi();
+ test.setNNApiDeviceName(mModel.mInstance);
+ if (!test.setupModel(mActivity)) {
+ throw new AssumptionViolatedException("The driver rejected the model.");
+ }
+ Pair<List<InferenceInOutSequence>, List<InferenceResult>> inferenceResults =
+ test.runBenchmarkCompleteInputSet(/*setRepeat=*/1, /*timeoutSec=*/3600);
+ BenchmarkResult benchmarkResult = BenchmarkResult.fromInferenceResults(
+ mModel.mEntry.mModelName, BenchmarkResult.BACKEND_TFLITE_NNAPI,
+ inferenceResults.first, inferenceResults.second, test.getEvaluator());
+ assertFalse(benchmarkResult.hasValidationErrors());
}
- Pair<List<InferenceInOutSequence>, List<InferenceResult>> inferenceResults =
- test.runBenchmarkCompleteInputSet(/*setRepeat=*/1, /*timeoutSec=*/3600);
- BenchmarkResult benchmarkResult = BenchmarkResult.fromInferenceResults(
- mModel.mEntry.mModelName, BenchmarkResult.BACKEND_TFLITE_NNAPI,
- inferenceResults.first, inferenceResults.second, test.getEvaluator());
- assertFalse(benchmarkResult.hasValidationErrors());
}
}
diff --git a/neuralnetworks/V1_3/benchmark/java/src/com/android/nn/benchmark/vts/v1_3/NNAccuracyTest.java b/neuralnetworks/V1_3/benchmark/java/src/com/android/nn/benchmark/vts/v1_3/NNAccuracyTest.java
index bdc4311..d4a05fc 100644
--- a/neuralnetworks/V1_3/benchmark/java/src/com/android/nn/benchmark/vts/v1_3/NNAccuracyTest.java
+++ b/neuralnetworks/V1_3/benchmark/java/src/com/android/nn/benchmark/vts/v1_3/NNAccuracyTest.java
@@ -117,17 +117,18 @@
@Test
@LargeTest
public void testDriver() throws BenchmarkException, IOException {
- NNTestBase test = mModel.mEntry.createNNTestBase();
- test.useNNApi();
- test.setNNApiDeviceName(mModel.mInstance);
- if (!test.setupModel(mActivity)) {
- throw new AssumptionViolatedException("The driver rejected the model.");
+ try (NNTestBase test = mModel.mEntry.createNNTestBase()) {
+ test.useNNApi();
+ test.setNNApiDeviceName(mModel.mInstance);
+ if (!test.setupModel(mActivity)) {
+ throw new AssumptionViolatedException("The driver rejected the model.");
+ }
+ Pair<List<InferenceInOutSequence>, List<InferenceResult>> inferenceResults =
+ test.runBenchmarkCompleteInputSet(/*setRepeat=*/1, /*timeoutSec=*/3600);
+ BenchmarkResult benchmarkResult = BenchmarkResult.fromInferenceResults(
+ mModel.mEntry.mModelName, BenchmarkResult.BACKEND_TFLITE_NNAPI,
+ inferenceResults.first, inferenceResults.second, test.getEvaluator());
+ assertFalse(benchmarkResult.hasValidationErrors());
}
- Pair<List<InferenceInOutSequence>, List<InferenceResult>> inferenceResults =
- test.runBenchmarkCompleteInputSet(/*setRepeat=*/1, /*timeoutSec=*/3600);
- BenchmarkResult benchmarkResult = BenchmarkResult.fromInferenceResults(
- mModel.mEntry.mModelName, BenchmarkResult.BACKEND_TFLITE_NNAPI,
- inferenceResults.first, inferenceResults.second, test.getEvaluator());
- assertFalse(benchmarkResult.hasValidationErrors());
}
}