Revert^2 "Add variants to test name" This reverts commit 6928a0418a18685a8ee87ab17b91b8076f5b9e8a. Revert^2 "Add variants to test name" This reverts commit 6928a0418a18685a8ee87ab17b91b8076f5b9e8a. Reason for revert: Because it was fine Change-Id: Iae0343371d004e700ef58c86966a4ed5406fe5b6
diff --git a/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt b/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt index 04df04e..c02c123 100644 --- a/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt +++ b/d8_r8/commonBuildSrc/src/main/kotlin/TestConfigurationHelper.kt
@@ -27,27 +27,15 @@ private data class ResultSinkInfo(val address: String, val authToken: String) private val resultSinkInfo: ResultSinkInfo? by lazy { - val luciContextPath = System.getenv("LUCI_CONTEXT") - if (luciContextPath != null) { - try { - val content = File(luciContextPath).readText() - val json = Gson().fromJson(content, JsonObject::class.java) - val resultSink = json.getAsJsonObject("result_sink") - if (resultSink != null) { - val address = resultSink.get("address")?.asString - val authToken = resultSink.get("auth_token")?.asString - if (address != null && authToken != null) { - ResultSinkInfo(address, authToken) - } else { - null - } - } else { - null - } - } catch (e: Exception) { - null - } - } else { + val luciContextPath = System.getenv("LUCI_CONTEXT") ?: return@lazy null + try { + val content = File(luciContextPath).readText() + val json = Gson().fromJson(content, JsonObject::class.java) + val resultSink = json.getAsJsonObject("result_sink") ?: return@lazy null + val address = resultSink.get("address")?.asString ?: return@lazy null + val authToken = resultSink.get("auth_token")?.asString ?: return@lazy null + ResultSinkInfo(address, authToken) + } catch (e: Exception) { null } } @@ -121,10 +109,9 @@ val durationMs = result.endTime - result.startTime val duration = "${durationMs / 1000.0}s" - var stackTraceStr: String? = null - if (result.resultType == TestResult.ResultType.FAILURE && result.exception != null) { - val exception = result.exception as Throwable - stackTraceStr = + val stackTraceStr: String? = + if (result.resultType == TestResult.ResultType.FAILURE && result.exception != null) { + val exception = result.exception as Throwable if (isR8Lib && r8Jar != null && r8LibMappingFile != null) { retrace(rootDir, r8Jar, r8LibMappingFile, exception, printObfuscatedStacktraces) } else { @@ -132,65 +119,69 @@ exception.printStackTrace(PrintStream(baos, true, StandardCharsets.UTF_8)) baos.toString() } - } + } else { + null + } - val payloadObj = JsonObject() - val testResultsArr = JsonArray() - val testResultObj = JsonObject() - - val testIdStructuredObj = JsonObject() - val testIdCaseNameComponents = JsonArray() - testIdCaseNameComponents.add(desc.displayName.substringBefore('[')) val argumentString = desc.displayName.substringAfter('[').substringBeforeLast(']') - val moduleVariant = JsonObject() - val project = test.project - if (project.hasProperty("runtimes")) { - moduleVariant.addProperty("runtimes", project.property("runtimes").toString()) - } - if (project.hasProperty("dex_vm")) { - moduleVariant.addProperty("dex_vm", project.property("dex_vm").toString()) - } - moduleVariant.addProperty("args", argumentString) - testIdStructuredObj.addProperty("module", "junit") - testIdStructuredObj.add("moduleVariant", moduleVariant) - testIdStructuredObj.addProperty("coarseName", desc.className?.substringBeforeLast(".") ?: "") - testIdStructuredObj.addProperty("fineName", desc.className?.substringAfterLast(".") ?: "") - testIdStructuredObj.add("caseNameComponents", testIdCaseNameComponents) - testResultObj.add("testIdStructured", testIdStructuredObj) + val testIdStructuredObj = + JsonObject().apply { + addProperty("coarseName", desc.className?.substringBeforeLast(".") ?: "") + addProperty("fineName", desc.className?.substringAfterLast(".") ?: "") + add( + "caseNameComponents", + JsonArray().apply { + add(desc.displayName.substringBefore('[')) + desc.displayName + .substringAfter('[') + .substringBeforeLast(']') + // result_sink uses `:` to separate case name components. + .replace(Regex(": ?"), "=") + .split(", ") + .forEach { add(it) } + }, + ) + } - testResultObj.addProperty("testId", testId) - testResultObj.addProperty("statusV2", status) - testResultObj.addProperty("duration", duration) + val testResultObj = + JsonObject().apply { + addProperty("testId", testId) + addProperty("statusV2", status) + addProperty("duration", duration) + add("testIdStructured", testIdStructuredObj) - if (result.resultType == TestResult.ResultType.FAILURE) { - val failureReasonObj = JsonObject() - failureReasonObj.addProperty("kind", "ORDINARY") - testResultObj.add("failureReason", failureReasonObj) - } else if (result.resultType == TestResult.ResultType.SKIPPED) { - val skipReasonObj = JsonObject() - skipReasonObj.addProperty("kind", "DISABLED_AT_DECLARATION") - testResultObj.add("skippedReason", skipReasonObj) - } + if (result.resultType == TestResult.ResultType.FAILURE) { + add("failureReason", JsonObject().apply { addProperty("kind", "ORDINARY") }) + } else if (result.resultType == TestResult.ResultType.SKIPPED) { + add( + "skippedReason", + JsonObject().apply { addProperty("kind", "DISABLED_AT_DECLARATION") }, + ) + } - val summaryHtml = "<p>Arguments string: $argumentString</p>" - if (stackTraceStr != null) { - val artifact = JsonObject() - val encodedStackTrace = Base64.encode(stackTraceStr.encodeToByteArray()) - val jsonObject = JsonObject() - jsonObject.addProperty("contents", encodedStackTrace) - artifact.add("artifact-content-in-request", jsonObject) - testResultObj.add("artifacts", artifact) - testResultObj.addProperty( - "summaryHtml", - summaryHtml + - "<p>Stack trace:</p>" + - "<p><text-artifact artifact-id=\"artifact-content-in-request\"></p>", - ) - } else { - testResultObj.addProperty("summaryHtml", summaryHtml) - } - testResultsArr.add(testResultObj) - payloadObj.add("testResults", testResultsArr) + val summaryHtml = "<p>Arguments string: $argumentString</p>" + if (stackTraceStr != null) { + val artifactContent = + JsonObject().apply { + addProperty("contents", Base64.encode(stackTraceStr.encodeToByteArray())) + } + add( + "artifacts", + JsonObject().apply { add("artifact-content-in-request", artifactContent) }, + ) + addProperty( + "summaryHtml", + summaryHtml + + "<p>Stack trace:</p>" + + "<p><text-artifact artifact-id=\"artifact-content-in-request\"></p>", + ) + } else { + addProperty("summaryHtml", summaryHtml) + } + } + + val payloadObj = + JsonObject().apply { add("testResults", JsonArray().apply { add(testResultObj) }) } try { val url = URL("http://${info.address}/prpc/luci.resultsink.v1.Sink/ReportTestResults")