| // Copyright 2014 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.events; |
| |
| import com.google.common.collect.ImmutableSet; |
| import com.google.common.collect.Sets; |
| import java.util.EnumSet; |
| |
| /** Indicates the kind of an {@link Event}. */ |
| public enum EventKind { |
| |
| /** |
| * An unrecoverable error resulting in abrupt termination of the server. |
| * |
| * <p>Events of this kind may be crash bugs (i.e. {@link RuntimeException}) or other errors such |
| * {@link OutOfMemoryError}. The only time such an event should be emitted is just prior to |
| * crashing. It should be the final event presented to the user before terminating. |
| */ |
| FATAL, |
| |
| /** |
| * For errors that will prevent a successful, correct build. In general, the build tool will not |
| * attempt to start or continue a build if an error is encountered (though the behavior specified |
| * by {@code --keep_going} is a counterexample). |
| * |
| * <p>Errors of a more severe nature in the input, such as those which might cause later passes of |
| * the analysis to fail catastrophically, should be handled by throwing an exception. |
| */ |
| ERROR, |
| |
| /** For warnings of minor problems that do not affect the integrity of a build. */ |
| WARNING, |
| |
| /** |
| * For atemporal information that is true throughout the entire duration of a build (e.g. the |
| * number of targets found). |
| */ |
| INFO, |
| |
| /** |
| * For temporal information that changes during the duration of a build (e.g. what action is |
| * executing now). |
| */ |
| PROGRESS, |
| |
| /** For debug messages. */ |
| DEBUG, |
| |
| // For progress messages (temporal information) relating to the start and end of particular tasks |
| // (e.g. "Loading package foo", "Compiling bar", etc.). |
| /** Beginning of a temporal task. */ |
| START, |
| /** End of a temporal task. */ |
| FINISH, |
| |
| /** For command lines of subcommands executed by the build tool (like make-dbg "-v"). */ |
| SUBCOMMAND, |
| |
| // Output to stdout/stderr from subprocesses. |
| /** Output to stdout from subprocess. */ |
| STDOUT, |
| /** Output to stderr from subprocess. */ |
| STDERR, |
| |
| // Test result messages (similar to the INFO and ERROR, but test-specific) |
| /** Test passed. */ |
| PASS, |
| /** Test failed. */ |
| FAIL, |
| /** Test timed out. */ |
| TIMEOUT, |
| /** Test cancelled. */ |
| CANCELLED, |
| |
| /** For the reasoning of the dependency checker (like GNU Make "-d"). */ |
| DEPCHECKER; |
| |
| public static final ImmutableSet<EventKind> ALL_EVENTS = |
| Sets.immutableEnumSet(EnumSet.allOf(EventKind.class)); |
| |
| public static final ImmutableSet<EventKind> OUTPUT = |
| Sets.immutableEnumSet(EventKind.STDOUT, EventKind.STDERR); |
| |
| public static final ImmutableSet<EventKind> ERRORS = |
| Sets.immutableEnumSet(EventKind.FATAL, EventKind.ERROR, EventKind.FAIL, EventKind.TIMEOUT); |
| |
| public static final ImmutableSet<EventKind> ERRORS_AND_WARNINGS = |
| Sets.immutableEnumSet( |
| EventKind.FATAL, |
| EventKind.ERROR, |
| EventKind.WARNING, |
| EventKind.DEBUG, |
| EventKind.FAIL, |
| EventKind.TIMEOUT); |
| |
| public static final ImmutableSet<EventKind> ERRORS_WARNINGS_AND_INFO = |
| Sets.immutableEnumSet( |
| EventKind.FATAL, |
| EventKind.ERROR, |
| EventKind.WARNING, |
| EventKind.DEBUG, |
| EventKind.PASS, |
| EventKind.FAIL, |
| EventKind.TIMEOUT, |
| EventKind.INFO); |
| |
| public static final ImmutableSet<EventKind> ERRORS_AND_OUTPUT = |
| Sets.immutableEnumSet( |
| EventKind.FATAL, |
| EventKind.ERROR, |
| EventKind.FAIL, |
| EventKind.TIMEOUT, |
| EventKind.STDOUT, |
| EventKind.STDERR); |
| |
| public static final ImmutableSet<EventKind> ERRORS_AND_WARNINGS_AND_OUTPUT = |
| Sets.immutableEnumSet( |
| EventKind.FATAL, |
| EventKind.ERROR, |
| EventKind.WARNING, |
| EventKind.DEBUG, |
| EventKind.FAIL, |
| EventKind.TIMEOUT, |
| EventKind.STDOUT, |
| EventKind.STDERR); |
| } |