Merge "Remove CtsIncidentHostTestCases from the CTS-GSI execlude list"
diff --git a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/result/suite/CompatibilityProtoResultReporter.java b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/result/suite/CompatibilityProtoResultReporter.java
index fe57e3a..6607c85 100644
--- a/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/result/suite/CompatibilityProtoResultReporter.java
+++ b/common/host-side/tradefed/src/com/android/compatibility/common/tradefed/result/suite/CompatibilityProtoResultReporter.java
@@ -16,13 +16,18 @@
package com.android.compatibility.common.tradefed.result.suite;
import com.android.compatibility.common.tradefed.build.CompatibilityBuildHelper;
+import com.android.tradefed.config.Option;
import com.android.tradefed.invoker.IInvocationContext;
+import com.android.tradefed.invoker.InvocationContext;
import com.android.tradefed.log.LogUtil.CLog;
import com.android.tradefed.result.proto.FileProtoResultReporter;
+import com.android.tradefed.result.proto.ProtoResultParser;
import com.android.tradefed.result.proto.TestRecordProto.TestRecord;
+import com.android.tradefed.util.FileUtil;
import java.io.File;
import java.io.FileNotFoundException;
+import java.io.IOException;
/** Proto reporter that will drop a {@link TestRecord} protobuf in the result directory. */
public class CompatibilityProtoResultReporter extends FileProtoResultReporter {
@@ -30,23 +35,57 @@
public static final String PROTO_FILE_NAME = "test-record.pb";
public static final String PROTO_DIR = "proto";
+ @Option(
+ name = "skip-proto-compacting",
+ description = "Option to disable compacting the protos at the end")
+ private boolean mSkipProtoCompacting = false;
+
private CompatibilityBuildHelper mBuildHelper;
/** The directory containing the proto results */
private File mResultDir = null;
+ private File mBaseProtoFile = null;
+
@Override
public void processStartInvocation(
TestRecord invocationStartRecord, IInvocationContext invocationContext) {
if (mBuildHelper == null) {
mBuildHelper = new CompatibilityBuildHelper(invocationContext.getBuildInfos().get(0));
mResultDir = getProtoResultDirectory();
- File protoFile = new File(mResultDir, PROTO_FILE_NAME);
- setFileOutput(protoFile);
+ mBaseProtoFile = new File(mResultDir, PROTO_FILE_NAME);
+ setFileOutput(mBaseProtoFile);
}
super.processStartInvocation(invocationStartRecord, invocationContext);
}
+ @Override
+ public void processFinalProto(TestRecord invocationEndedProto) {
+ super.processFinalProto(invocationEndedProto);
+
+ if (!isPeriodicWriting()) {
+ return;
+ }
+ if (mSkipProtoCompacting) {
+ return;
+ }
+ // Compact all the protos
+ try {
+ compactAllProtos();
+ } catch (RuntimeException e) {
+ CLog.e("Failed to compact the protos");
+ CLog.e(e);
+ FileUtil.deleteFile(mBaseProtoFile);
+ return;
+ }
+ // Delete all the protos we compacted
+ int index = 0;
+ while (new File(mBaseProtoFile.getAbsolutePath() + index).exists()) {
+ FileUtil.deleteFile(new File(mBaseProtoFile.getAbsolutePath() + index));
+ index++;
+ }
+ }
+
private File getProtoResultDirectory() {
File protoDir = null;
try {
@@ -66,4 +105,19 @@
CLog.d("Proto Results Directory: %s", protoDir.getAbsolutePath());
return protoDir;
}
+
+ private void compactAllProtos() {
+ FileProtoResultReporter fprr = new FileProtoResultReporter();
+ fprr.setFileOutput(mBaseProtoFile);
+ ProtoResultParser parser = new ProtoResultParser(fprr, new InvocationContext(), true);
+ int index = 0;
+ while (new File(mBaseProtoFile.getAbsolutePath() + index).exists()) {
+ try {
+ parser.processFileProto(new File(mBaseProtoFile.getAbsolutePath() + index));
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ index++;
+ }
+ }
}
\ No newline at end of file
diff --git a/tools/cts-tradefed/res/config/cts-on-gsi-sim.xml b/tools/cts-tradefed/res/config/cts-on-gsi-sim.xml
new file mode 100644
index 0000000..5150942
--- /dev/null
+++ b/tools/cts-tradefed/res/config/cts-on-gsi-sim.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<configuration description="Runs cts-on-gsi on device with SIM card">
+
+ <include name="cts-on-gsi" />
+
+ <include name="cts-sim-include" />
+
+ <option name="plan" value="cts-on-gsi-sim" />
+
+</configuration>
diff --git a/tools/cts-tradefed/res/config/cts-sim-include.xml b/tools/cts-tradefed/res/config/cts-sim-include.xml
new file mode 100644
index 0000000..161f5af
--- /dev/null
+++ b/tools/cts-tradefed/res/config/cts-sim-include.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<configuration description="Include CTS test that require SIM card">
+
+ <!-- CTS tests that need SIM card-->
+ <option name="compatibility:include-filter" value="CtsCarrierApiTestCases" />
+ <option name="compatibility:include-filter" value="CtsJobSchedulerTestCases" />
+ <option name="compatibility:include-filter" value="CtsNetTestCases" />
+ <option name="compatibility:include-filter" value="CtsNetTestCasesLegacyApi22" />
+ <option name="compatibility:include-filter" value="CtsOmapiTestCases" />
+ <option name="compatibility:include-filter" value="CtsPermissionTestCases" />
+ <option name="compatibility:include-filter" value="CtsPermission2TestCases" />
+ <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases1" />
+ <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases2" />
+ <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases3" />
+ <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases1" />
+ <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases2" />
+ <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases3" />
+ <option name="compatibility:include-filter" value="CtsSimRestrictedApisTestCases" />
+ <option name="compatibility:include-filter" value="CtsStatsdHostTestCases" />
+ <option name="compatibility:include-filter" value="CtsTelecomTestCases" />
+ <option name="compatibility:include-filter" value="CtsTelecomTestCases2" />
+ <option name="compatibility:include-filter" value="CtsTelecomTestCases3" />
+ <option name="compatibility:include-filter" value="CtsTelephonyTestCases" />
+ <option name="compatibility:include-filter" value="CtsTelephony2TestCases" />
+ <option name="compatibility:include-filter" value="CtsTelephony3TestCases" />
+ <option name="compatibility:include-filter" value="CtsTelephonySdk28TestCases" />
+ <option name="compatibility:include-filter" value="CtsUsageStatsTestCases" />
+
+</configuration>
diff --git a/tools/cts-tradefed/res/config/cts-sim.xml b/tools/cts-tradefed/res/config/cts-sim.xml
index bd536ba..234c33f 100644
--- a/tools/cts-tradefed/res/config/cts-sim.xml
+++ b/tools/cts-tradefed/res/config/cts-sim.xml
@@ -17,31 +17,8 @@
<include name="cts" />
- <option name="plan" value="cts-sim" />
+ <include name="cts-sim-include" />
- <!-- CTS tests that need SIM card-->
- <option name="compatibility:include-filter" value="CtsCarrierApiTestCases" />
- <option name="compatibility:include-filter" value="CtsJobSchedulerTestCases" />
- <option name="compatibility:include-filter" value="CtsNetTestCases" />
- <option name="compatibility:include-filter" value="CtsNetTestCasesLegacyApi22" />
- <option name="compatibility:include-filter" value="CtsOmapiTestCases" />
- <option name="compatibility:include-filter" value="CtsPermissionTestCases" />
- <option name="compatibility:include-filter" value="CtsPermission2TestCases" />
- <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases1" />
- <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases2" />
- <option name="compatibility:include-filter" value="CtsSecureElementAccessControlTestCases3" />
- <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases1" />
- <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases2" />
- <option name="compatibility:include-filter" value="signed-CtsSecureElementAccessControlTestCases3" />
- <option name="compatibility:include-filter" value="CtsSimRestrictedApisTestCases" />
- <option name="compatibility:include-filter" value="CtsStatsdHostTestCases" />
- <option name="compatibility:include-filter" value="CtsTelecomTestCases" />
- <option name="compatibility:include-filter" value="CtsTelecomTestCases2" />
- <option name="compatibility:include-filter" value="CtsTelecomTestCases3" />
- <option name="compatibility:include-filter" value="CtsTelephonyTestCases" />
- <option name="compatibility:include-filter" value="CtsTelephony2TestCases" />
- <option name="compatibility:include-filter" value="CtsTelephony3TestCases" />
- <option name="compatibility:include-filter" value="CtsTelephonySdk28TestCases" />
- <option name="compatibility:include-filter" value="CtsUsageStatsTestCases" />
+ <option name="plan" value="cts-sim" />
</configuration>