Configurable verifier suite name.

bug: 34948458
Test: make, execute and verify output
Change-Id: I42e08b2edb3a4f1dba6b284b060b24d549e2f2f7
diff --git a/apps/CtsVerifier/AndroidManifest.xml b/apps/CtsVerifier/AndroidManifest.xml
index 9064ff8..9c57f6f 100644
--- a/apps/CtsVerifier/AndroidManifest.xml
+++ b/apps/CtsVerifier/AndroidManifest.xml
@@ -71,6 +71,8 @@
             android:debuggable="true"
             android:largeHeap="true">
 
+        <meta-data android:name="SuiteName" android:value="CTS_VERIFIER" />
+
         <meta-data android:name="com.google.android.backup.api_key"
                 android:value="AEdPqrEAAAAIbK6ldcOzoeRtQ1u1dFVJ1A7KetRhit-a1Xa82Q" />
 
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java b/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
index a572af6..b6908a9 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/ReportExporter.java
@@ -49,17 +49,17 @@
  */
 class ReportExporter extends AsyncTask<Void, Void, String> {
 
-    private static final String COMMAND_LINE_ARGS = "CtsVerifier";
+    private static final String COMMAND_LINE_ARGS = "";
     private static final String LOG_URL = null;
     private static final String REFERENCE_URL = null;
-    private static final String SUITE_NAME = "CTS_VERIFIER";
-    private static final String SUITE_PLAN = "CTSVERIFIER";
+    private static final String SUITE_NAME_METADATA_KEY = "SuiteName";
+    private static final String SUITE_PLAN = "verifier";
     private static final String SUITE_BUILD = "0";
 
     private static final long START_MS = System.currentTimeMillis();
     private static final long END_MS = START_MS;
 
-    private static final String REPORT_DIRECTORY = "ctsVerifierReports";
+    private static final String REPORT_DIRECTORY = "verifierReports";
     private static final String ZIP_EXTENSION = ".zip";
 
     protected static final Logger LOG = Logger.getLogger(ReportExporter.class.getName());
@@ -90,17 +90,20 @@
         File externalStorageDirectory = Environment.getExternalStorageDirectory();
         File verifierReportsDir = new File(externalStorageDirectory, REPORT_DIRECTORY);
         verifierReportsDir.mkdirs();
+
+        String suiteName = Version.getMetadata(mContext, SUITE_NAME_METADATA_KEY);
         // create a temporary directory for this particular report
-        File tempDir = new File(verifierReportsDir, getReportName());
+        File tempDir = new File(verifierReportsDir, getReportName(suiteName));
         tempDir.mkdirs();
 
         // create a File object for a report ZIP file
-        File reportZipFile = new File(verifierReportsDir, getReportName() + ZIP_EXTENSION);
+        File reportZipFile = new File(
+                verifierReportsDir, getReportName(suiteName) + ZIP_EXTENSION);
 
         try {
             // Serialize the report
             String versionName = Version.getVersionName(mContext);
-            ResultHandler.writeResults(SUITE_NAME, versionName, SUITE_PLAN, SUITE_BUILD,
+            ResultHandler.writeResults(suiteName, versionName, SUITE_PLAN, SUITE_BUILD,
                     result, tempDir, START_MS, END_MS, REFERENCE_URL, LOG_URL,
                     COMMAND_LINE_ARGS);
 
@@ -144,11 +147,11 @@
         }
     }
 
-    private String getReportName() {
+    private String getReportName(String suiteName) {
         SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy.MM.dd_HH.mm.ss", Locale.ENGLISH);
         String date = dateFormat.format(new Date());
-        return String.format( "%s-%s-%s-%s-%s",
-                date, Build.MANUFACTURER, Build.PRODUCT, Build.DEVICE, Build.ID);
+        return String.format( "%s-%s-%s-%s-%s-%s",
+                date, suiteName, Build.MANUFACTURER, Build.PRODUCT, Build.DEVICE, Build.ID);
     }
 
     @Override
diff --git a/apps/CtsVerifier/src/com/android/cts/verifier/Version.java b/apps/CtsVerifier/src/com/android/cts/verifier/Version.java
index e7b6121..272fbcd 100644
--- a/apps/CtsVerifier/src/com/android/cts/verifier/Version.java
+++ b/apps/CtsVerifier/src/com/android/cts/verifier/Version.java
@@ -17,12 +17,18 @@
 package com.android.cts.verifier;
 
 import android.content.Context;
+import android.content.pm.ApplicationInfo;
 import android.content.pm.PackageInfo;
 import android.content.pm.PackageManager;
 import android.content.pm.PackageManager.NameNotFoundException;
+import android.util.Log;
 
 class Version {
 
+    private static final String TAG = Version.class.getSimpleName();
+
+    private static final String UNKNOWN = "unknown";
+
     static String getVersionName(Context context) {
         return getPackageInfo(context).versionName;
     }
@@ -40,4 +46,19 @@
                     + context.getPackageName());
         }
     }
+
+    static String getMetadata(Context context, String name) {
+        try {
+            PackageManager packageManager = context.getPackageManager();
+            ApplicationInfo applicationInfo = packageManager.getApplicationInfo(
+                    context.getPackageName(), PackageManager.GET_META_DATA);
+            String value = applicationInfo.metaData.getString(name);
+            if (value != null) {
+                return value;
+            }
+        } catch (NameNotFoundException e) {
+            Log.e(TAG, "Version.getMetadata: " + name, e);
+        }
+        return UNKNOWN;
+    }
 }