This is an automated email from the ASF dual-hosted git repository.

smgoller pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode-benchmarks.git


The following commit(s) were added to refs/heads/develop by this push:
     new 2aa45f1  Clean up metadata generation. Add all test names to metadata. 
(#60)
2aa45f1 is described below

commit 2aa45f14a98378865553a2cd821734583e179c0c
Author: Sean Goller <[email protected]>
AuthorDate: Thu Feb 28 16:44:11 2019 -0800

    Clean up metadata generation. Add all test names to metadata. (#60)
    
    Co-authored-by: Sean Goller <[email protected]>
    Co-authored-by: Nabarun Nag <[email protected]>
---
 .../geode/perftest/runner/DefaultTestRunner.java   | 61 ++++++++++++++++------
 1 file changed, 45 insertions(+), 16 deletions(-)

diff --git 
a/harness/src/main/java/org/apache/geode/perftest/runner/DefaultTestRunner.java 
b/harness/src/main/java/org/apache/geode/perftest/runner/DefaultTestRunner.java
index 019cb18..04e324b 100644
--- 
a/harness/src/main/java/org/apache/geode/perftest/runner/DefaultTestRunner.java
+++ 
b/harness/src/main/java/org/apache/geode/perftest/runner/DefaultTestRunner.java
@@ -19,9 +19,13 @@ package org.apache.geode.perftest.runner;
 
 import java.io.File;
 import java.io.FileWriter;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.List;
 import java.util.Map;
 
+import org.json.JSONArray;
 import org.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -68,27 +72,52 @@ public class DefaultTestRunner implements TestRunner {
       throw new IllegalStateException(
           "Benchmark output directory already exists: " + 
benchmarkOutput.getPath());
     }
-    benchmarkOutput.mkdirs();
-
-    String metadata = System.getProperty("TEST_METADATA");
-    if (!(metadata == null) && !metadata.isEmpty()) {
-      File metadataOutput = new File(outputDir, "metadata.json");
-      metadataOutput.createNewFile();
-      FileWriter metadataWriter = new 
FileWriter(metadataOutput.getAbsoluteFile(), true);
 
-      String[] metadataEntries = metadata.split(",");
-      JSONObject JSONmetadata = new JSONObject();
-
-      for (String data : metadataEntries) {
-        String[] kv = data.split(":");
-        if (kv.length == 2) {
-          JSONmetadata.put(kv[0], kv[1]);
+    benchmarkOutput.mkdirs();
+    String metadataFilename = outputDir + "/metadata.json";
+    Path metadataOutput = Paths.get(metadataFilename);
+    JSONObject JSONmetadata = new JSONObject();
+
+    if (metadataOutput.toFile().exists()) {
+      JSONmetadata = new JSONObject(new 
String(Files.readAllBytes(metadataOutput)));
+    } else {
+      String instanceMetadataFilename =
+          "/home/" + System.getProperty("user.home") + 
"/geode-benchmarks-metadata.json";
+      Path instanceMetadataFile = Paths.get(instanceMetadataFilename);
+      JSONmetadata = new JSONObject();
+      JSONObject instanceMetadata;
+      if (instanceMetadataFile.toFile().exists()) {
+        instanceMetadata = new JSONObject(new 
String(Files.readAllBytes(instanceMetadataFile)));
+        JSONmetadata.put("instanceId", 
instanceMetadata.getString("instanceId"));
+      }
+      String metadata = System.getProperty("TEST_METADATA");
+      if (!(metadata == null) && !metadata.isEmpty()) {
+        JSONObject testMetadata = new JSONObject();
+        String[] metadataEntries = metadata.split(",");
+        for (String data : metadataEntries) {
+          String[] kv = data.split(":");
+          if (kv.length == 2) {
+            testMetadata.put(kv[0], kv[1]);
+          }
         }
+        JSONmetadata.put("testMetadata", testMetadata);
       }
-      metadataWriter.write(JSONmetadata.toString());
-      metadataWriter.flush();
     }
 
+    try {
+      JSONArray testNames = JSONmetadata.getJSONArray("testNames");
+      testNames.put(testName);
+      JSONmetadata.put("testNames", testNames);
+    } catch (org.json.JSONException e) {
+      JSONArray testNames = new JSONArray();
+      testNames.put(testName);
+      JSONmetadata.put("testNames", testNames);
+    }
+
+    FileWriter metadataWriter = new 
FileWriter(metadataOutput.toFile().getAbsoluteFile());
+    metadataWriter.write(JSONmetadata.toString());
+    metadataWriter.flush();
+
     Map<String, Integer> roles = config.getRoles();
     Map<String, List<String>> jvmArgs = config.getJvmArgs();
 

Reply via email to