Allow aspects to adveritise providers they provide.

--
PiperOrigin-RevId: 146794883
MOS_MIGRATED_REVID=146794883
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
index c3748fe..76d24e0 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/AspectTest.java
@@ -684,4 +684,29 @@
         .containsExactly(
             "aspect //a:a", "aspect //a:b", "aspect //a:c", "aspect //a:tool", "rule //a:x");
   }
+
+  @Test
+  public void aspectTruthInAdvertisement() throws Exception {
+    reporter.removeHandler(failFastHandler); // expect errors
+    setRulesAvailableInTests(
+        new TestAspects.BaseRule(),
+        new TestAspects.SimpleRule(),
+        new TestAspects.FalseAdvertisementAspectRule());
+    pkg(
+        "a",
+        "simple(name = 's')",
+        "false_advertisement_aspect(name = 'x', deps = [':s'])"
+    );
+    try {
+      update("//a:x");
+    } catch (ViewCreationFailedException e) {
+      // expected.
+    }
+    assertContainsEvent(
+        "Aspect 'FalseAdvertisementAspect', applied to '//a:s',"
+            + " does not provide advertised provider 'RequiredProvider'");
+    assertContainsEvent(
+        "Aspect 'FalseAdvertisementAspect', applied to '//a:s',"
+            + " does not provide advertised provider 'advertised_provider'");
+  }
 }