aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java
index 7e2c98c5d6..080442e6dd 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/cpp/CcCommonConfiguredTargetTest.java
@@ -20,11 +20,13 @@ import static com.google.devtools.build.lib.actions.util.ActionsTestUtil.baseArt
import static com.google.devtools.build.lib.actions.util.ActionsTestUtil.baseNamesOf;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Iterables;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.util.ActionsTestUtil;
@@ -33,6 +35,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.OutputGroupProvider;
import com.google.devtools.build.lib.analysis.util.BuildViewTestCase;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
+import com.google.devtools.build.lib.pkgcache.LoadingFailedException;
import com.google.devtools.build.lib.testutil.MoreAsserts;
import com.google.devtools.build.lib.testutil.TestConstants;
import com.google.devtools.build.lib.util.FileType;
@@ -719,4 +722,37 @@ public class CcCommonConfiguredTargetTest extends BuildViewTestCase {
" srcs = [],",
" hdrs = ['foo.a'])");
}
+
+ @Test
+ public void testExplicitBadStl() throws Exception {
+ scratch.file("x/BUILD",
+ "cc_binary(name = 'x', srcs = ['x.cc'])");
+
+ reporter.removeHandler(failFastHandler);
+ try {
+ useConfiguration("--experimental_stl=//x:blah");
+ update(Arrays.asList("//x:x"), true, 10, false, new EventBus());
+ fail("found non-existing target");
+ } catch (LoadingFailedException expected) {
+ assertThat(expected.getMessage()).contains("Failed to load required STL target: '//x:blah'");
+ }
+
+ try {
+ useConfiguration("--experimental_stl=//blah");
+ update(Arrays.asList("//x:x"), true, 10, false, new EventBus());
+ fail("found non-existsing target");
+ } catch (LoadingFailedException expected) {
+ assertThat(expected.getMessage())
+ .contains("Failed to load required STL target: '//blah:blah'");
+ }
+
+ // Without -k.
+ try {
+ useConfiguration("--experimental_stl=//blah");
+ update(Arrays.asList("//x:x"), false, 10, false, new EventBus());
+ fail("found non-existsing target");
+ } catch (LoadingFailedException expected) {
+ assertThat(expected.getMessage()).contains("Loading failed; build aborted");
+ }
+ }
}