diff options
author | aehlig <aehlig@google.com> | 2017-05-26 12:00:49 +0200 |
---|---|---|
committer | Irina Iancu <elenairina@google.com> | 2017-05-26 13:26:35 +0200 |
commit | eca2eab4beb8cf2abc42901e4b4e4850d40ca3a4 (patch) | |
tree | 7b556f535a35e807995c367274cbc93824abd169 /src | |
parent | a47780541536764cf56d09f78a988d6155689c7f (diff) |
BEP: report more test-result files and add a constants class
In a test result, report more standard files, if present.
Also, add a class with the constants used to name those files.
Note that we have to identify files generated by a test with
strings rather than an enum, as we want to support extensions
of bazel to add their own files reported by tests.
RELNOTES: None.
PiperOrigin-RevId: 157204042
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java | 34 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/test/TestResult.java | 31 |
2 files changed, 63 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java new file mode 100644 index 0000000000..bd9d634c7b --- /dev/null +++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/TestFileNameConstants.java @@ -0,0 +1,34 @@ +// Copyright 2017 The Bazel Authors. All rights reserved. +// +// 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. + +package com.google.devtools.build.lib.buildeventstream; + +/** + * Class providing constants for naming files in associated with tests. + * + * <p>The file names associated with a test are indexed in the build-event protocol by a string in + * order to allow extensions of bazel to add their own files. This class provides constants for the + * names of the standard files associated with a test. + */ +public class TestFileNameConstants { + public static final String SPLIT_LOGS = "test.splitlogs"; + public static final String TEST_INFRASTRUCTURE_FAILURE = "test.infrastructure_failure"; + public static final String TEST_LOG = "test.log"; + public static final String TEST_WARNINGS = "test.warnings"; + public static final String TEST_XML = "test.xml"; + public static final String UNDECLARED_OUTPUTS_ANNOTATIONS = "test.outputs_manifest__ANNOTATIONS"; + public static final String UNDECLARED_OUTPUTS_MANIFEST = "test.outputs_manifest__MANIFEST"; + public static final String UNDECLARED_OUTPUTS_ZIP = "test.outputs__outputs.zip"; + public static final String UNUSED_RUNFILES_LOG = "test.unused_runfiles_log"; +} diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestResult.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestResult.java index 966a6af311..d0eca7f696 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/test/TestResult.java +++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestResult.java @@ -16,6 +16,7 @@ package com.google.devtools.build.lib.rules.test; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.buildeventstream.TestFileNameConstants; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; @@ -151,12 +152,38 @@ public class TestResult { public Collection<Pair<String, Path>> getFiles() { ImmutableList.Builder<Pair<String, Path>> builder = new ImmutableList.Builder<>(); if (testAction.getTestLog().getPath().exists()) { - builder.add(Pair.of("test.log", testAction.getTestLog().getPath())); + builder.add(Pair.of(TestFileNameConstants.TEST_LOG, testAction.getTestLog().getPath())); } if (execRoot != null) { ResolvedPaths resolvedPaths = testAction.resolve(execRoot); if (resolvedPaths.getXmlOutputPath().exists()) { - builder.add(Pair.of("test.xml", resolvedPaths.getXmlOutputPath())); + builder.add(Pair.of(TestFileNameConstants.TEST_XML, resolvedPaths.getXmlOutputPath())); + } + if (resolvedPaths.getSplitLogsPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.SPLIT_LOGS, resolvedPaths.getSplitLogsPath())); + } + if (resolvedPaths.getTestWarningsPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.TEST_WARNINGS, resolvedPaths.getSplitLogsPath())); + } + if (resolvedPaths.getUndeclaredOutputsZipPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.UNDECLARED_OUTPUTS_ZIP, + resolvedPaths.getUndeclaredOutputsZipPath())); + } + if (resolvedPaths.getUndeclaredOutputsManifestPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.UNDECLARED_OUTPUTS_MANIFEST, + resolvedPaths.getUndeclaredOutputsManifestPath())); + } + if (resolvedPaths.getUndeclaredOutputsAnnotationsPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.UNDECLARED_OUTPUTS_ANNOTATIONS, + resolvedPaths.getUndeclaredOutputsManifestPath())); + } + if (resolvedPaths.getUnusedRunfilesLogPath().exists()) { + builder.add(Pair.of(TestFileNameConstants.UNUSED_RUNFILES_LOG, + resolvedPaths.getUnusedRunfilesLogPath())); + } + if (resolvedPaths.getInfrastructureFailureFile().exists()) { + builder.add(Pair.of(TestFileNameConstants.TEST_INFRASTRUCTURE_FAILURE, + resolvedPaths.getInfrastructureFailureFile())); } } return builder.build(); |