Explictly destroy Allocations and Scripts
Bug: 28053584
Test: For the cherry-pick, built and ran the CTS tests.
Updated the auto generator to add calls to destroy() for Allocations
and Scripts in the generated CTS tests.
Change-Id: Ia999542bc18c7fa5bf86916b105f2ab587fbb616
(cherry picked from commit c970d5dcdd52ab592e1a03f32844892793f22ff9)
diff --git a/script_api/GenerateTestFiles.cpp b/script_api/GenerateTestFiles.cpp
index 3c28801..d907d37 100644
--- a/script_api/GenerateTestFiles.cpp
+++ b/script_api/GenerateTestFiles.cpp
@@ -303,6 +303,13 @@
writeJavaCallToRs(false, generateCallToVerifier);
writeJavaCallToRs(true, generateCallToVerifier);
+ // Generate code to destroy input Allocations.
+ for (auto p : mAllInputsAndOutputs) {
+ if (!p->isOutParameter) {
+ mJava->indent() << p->javaAllocName << ".destroy();\n";
+ }
+ }
+
mJava->endBlock();
*mJava << "\n";
}
@@ -860,6 +867,14 @@
}
*mJava << ");\n";
}
+
+ // Generate code to destroy output Allocations.
+ for (auto p : mAllInputsAndOutputs) {
+ if (p->isOutParameter) {
+ mJava->indent() << p->javaAllocName << ".destroy();\n";
+ }
+ }
+
mJava->decreaseIndent();
mJava->indent() << "} catch (Exception e) {\n";
mJava->increaseIndent();
@@ -1028,6 +1043,18 @@
file->endBlock();
*file << "\n";
+
+ file->indent() << "@Override\n";
+ file->indent() << "protected void tearDown() throws Exception";
+ file->startBlock();
+
+ file->indent() << "script.destroy();\n";
+ file->indent() << "scriptRelaxed.destroy();\n";
+ file->indent() << "super.tearDown();\n";
+
+ file->endBlock();
+ *file << "\n";
+
return true;
}