Add stardoc test for generated sources support

RELNOTES: None.
PiperOrigin-RevId: 235944538
diff --git a/WORKSPACE b/WORKSPACE
index 3b777cb..b6346ea 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -260,10 +260,10 @@
 
 http_archive(
     name = "skydoc",
-    sha256 = "4db9fc4f5f69c220816c6d0b16e9956e7da2be8c85e83793661c0f4723e88d81",
-    strip_prefix = "skydoc-7a08959b9d00c9ba592c1a1db145dffcf6c0b6bf",
+    sha256 = "4a1318fed4831697b83ce879b3ab70ae09592b167e5bda8edaff45132d1c3b3f",
+    strip_prefix = "skydoc-2d9566b21fbe405acf5f7bf77eda30df72a4744c",
     urls = [
-        "https://github.com/bazelbuild/skydoc/archive/7a08959b9d00c9ba592c1a1db145dffcf6c0b6bf.tar.gz",
+        "https://github.com/bazelbuild/skydoc/archive/2d9566b21fbe405acf5f7bf77eda30df72a4744c.tar.gz",
     ],
 )
 
diff --git a/src/test/java/com/google/devtools/build/skydoc/BUILD b/src/test/java/com/google/devtools/build/skydoc/BUILD
index fcae8f5..2cf576d 100644
--- a/src/test/java/com/google/devtools/build/skydoc/BUILD
+++ b/src/test/java/com/google/devtools/build/skydoc/BUILD
@@ -178,3 +178,20 @@
     input_file = "testdata/macro_kwargs_test/input.bzl",
     skydoc = "//src/main/java/com/google/devtools/build/skydoc",
 )
+
+genrule(
+    name = "generate_bzl_test_dep",
+    srcs = ["testdata/generated_bzl_test/dep.bzl.tpl"],
+    outs = ["testdata/generated_bzl_test/dep.bzl"],
+    cmd = "cp $< $@",
+)
+
+skydoc_test(
+    name = "generated_bzl_test",
+    golden_file = "testdata/generated_bzl_test/golden.txt",
+    input_file = "testdata/generated_bzl_test/input.bzl",
+    skydoc = "//src/main/java/com/google/devtools/build/skydoc",
+    deps = [
+        "testdata/generated_bzl_test/dep.bzl",
+    ],
+)
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/dep.bzl.tpl b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/dep.bzl.tpl
new file mode 100644
index 0000000..4c8bd78
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/dep.bzl.tpl
@@ -0,0 +1,4 @@
+"""Used to generate dep.bzl"""
+
+def my_rule_impl(ctx):
+    return []
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/golden.txt b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/golden.txt
new file mode 100644
index 0000000..0ebc9f6
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/golden.txt
@@ -0,0 +1,45 @@
+<a name="#my_rule"></a>
+## my_rule
+
+<pre>
+my_rule(<a href="#my_rule-name">name</a>, <a href="#my_rule-first">first</a>, <a href="#my_rule-second">second</a>)
+</pre>
+
+This is my rule. It does stuff.
+
+### Attributes
+
+<table class="params-table">
+  <colgroup>
+    <col class="col-param" />
+    <col class="col-description" />
+  </colgroup>
+  <tbody>
+    <tr id="my_rule-name">
+      <td><code>name</code></td>
+      <td>
+        <a href="https://bazel.build/docs/build-ref.html#name">Name</a>; required
+        <p>
+          A unique name for this target.
+        </p>
+      </td>
+    </tr>
+    <tr id="my_rule-first">
+      <td><code>first</code></td>
+      <td>
+        <a href="https://bazel.build/docs/build-ref.html#labels">Label</a>; required
+        <p>
+          first my_rule doc string
+        </p>
+      </td>
+    </tr>
+    <tr id="my_rule-second">
+      <td><code>second</code></td>
+      <td>
+        <a href="https://bazel.build/docs/skylark/lib/dict.html">Dictionary: String -> String</a>; required
+      </td>
+    </tr>
+  </tbody>
+</table>
+
+
diff --git a/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/input.bzl b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/input.bzl
new file mode 100644
index 0000000..bad15f6
--- /dev/null
+++ b/src/test/java/com/google/devtools/build/skydoc/testdata/generated_bzl_test/input.bzl
@@ -0,0 +1,16 @@
+"""A direct dependency file of the input file."""
+
+load(":testdata/generated_bzl_test/dep.bzl", "my_rule_impl")
+
+my_rule = rule(
+    implementation = my_rule_impl,
+    doc = "This is my rule. It does stuff.",
+    attrs = {
+        "first": attr.label(
+            mandatory = True,
+            doc = "first my_rule doc string",
+            allow_single_file = True,
+        ),
+        "second": attr.string_dict(mandatory = True),
+    },
+)