Add missing BEP conversion for BlazeTestStatus.FAILED_TO_BUILD.

The FAILED_TO_BUILD enum value has been present since the enum was introduced in July 2014.
The BEP conversion has been missing since BEP was introduced.

In general, FAILED_TO_BUILD is a rare BlazeTestStatus because if a test-type target fails
its build analysis or execution, we do not produce a BlazeTestStatus and do not produce
TestResult or TestSummary BEP events. It is possible however for this enum value to be
produced at test execution time in exceptional circumstances.

Keeping the two enums in sync is also simply good practice.

RELNOTES: None.
PiperOrigin-RevId: 420371401
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtils.java b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtils.java
index fc0f161..975dd89 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtils.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtils.java
@@ -39,6 +39,8 @@
         return BuildEventStreamProtos.TestStatus.FAILED;
       case TIMEOUT:
         return BuildEventStreamProtos.TestStatus.TIMEOUT;
+      case FAILED_TO_BUILD:
+        return BuildEventStreamProtos.TestStatus.FAILED_TO_BUILD;
       case INCOMPLETE:
         return BuildEventStreamProtos.TestStatus.INCOMPLETE;
       case REMOTE_FAILURE:
diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtilsTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtilsTest.java
new file mode 100644
index 0000000..d3c0f3f
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/lib/runtime/BuildEventStreamerUtilsTest.java
@@ -0,0 +1,39 @@
+// 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.runtime;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import com.google.devtools.build.lib.buildeventstream.BuildEventStreamProtos.TestStatus;
+import com.google.devtools.build.lib.view.test.TestStatus.BlazeTestStatus;
+import com.google.testing.junit.testparameterinjector.TestParameter;
+import com.google.testing.junit.testparameterinjector.TestParameterInjector;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/** Unit test for BuildEventStreamerUtils. */
+@RunWith(TestParameterInjector.class)
+public final class BuildEventStreamerUtilsTest {
+
+  @Test
+  public void allValuesConvertToRealStatus(@TestParameter BlazeTestStatus status) {
+    TestStatus bepStatus = BuildEventStreamerUtils.bepStatus(status);
+    if (status.equals(BlazeTestStatus.NO_STATUS)) {
+      assertThat(bepStatus).isEqualTo(TestStatus.NO_STATUS);
+    } else {
+      assertThat(bepStatus).isNotEqualTo(TestStatus.NO_STATUS);
+    }
+  }
+}