Add an option to use log saver for generated XML report
Bug: 23105178
Change-Id: I9f352d51aafb3ab524b1a1311e25439a789ed4a3
diff --git a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
index 973d943..51b457d 100644
--- a/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
+++ b/tools/tradefed-host/src/com/android/cts/tradefed/result/CtsXmlResultReporter.java
@@ -25,7 +25,6 @@
import com.android.tradefed.build.IBuildInfo;
import com.android.tradefed.build.IFolderBuildInfo;
import com.android.tradefed.config.Option;
-import com.android.tradefed.config.Option.Importance;
import com.android.tradefed.log.LogUtil.CLog;
import com.android.tradefed.result.ILogSaver;
import com.android.tradefed.result.ILogSaverListener;
@@ -42,6 +41,7 @@
import org.kxml2.io.KXmlSerializer;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -98,6 +98,9 @@
@Option(name = "include-test-log-tags", description = "Include test log tags in XML report.")
private boolean mIncludeTestLogTags = false;
+ @Option(name = "use-log-saver", description = "Also saves generated result XML with log saver")
+ private boolean mUseLogSaver = false;
+
protected IBuildInfo mBuildInfo;
private String mStartTime;
private String mDeviceSerial;
@@ -110,6 +113,7 @@
private File mLogDir;
private String mSuiteName;
private String mReferenceUrl;
+ private ILogSaver mLogSaver;
public void setReportDir(File reportDir) {
mReportDir = reportDir;
@@ -253,7 +257,7 @@
@Override
public void setLogSaver(ILogSaver logSaver) {
- // Don't need to keep a reference to logSaver, because we don't save extra logs in this class.
+ mLogSaver = logSaver;
}
@Override
@@ -351,6 +355,18 @@
File reportFile = getResultFile(mReportDir);
createXmlResult(reportFile, mStartTime, elapsedTime);
+ if (mUseLogSaver) {
+ FileInputStream fis = null;
+ try {
+ fis = new FileInputStream(reportFile);
+ mLogSaver.saveLogData("cts-result", LogDataType.XML, fis);
+ } catch (IOException ioe) {
+ CLog.e("error saving XML with log saver");
+ CLog.e(ioe);
+ } finally {
+ StreamUtil.close(fis);
+ }
+ }
copyFormattingFiles(mReportDir);
zipResults(mReportDir);