Have skydoc-binary test suites use stardoc.bzl directly
RELNOTES: None.
PiperOrigin-RevId: 210419838
diff --git a/WORKSPACE b/WORKSPACE
index c134247..d52b311 100644
--- a/WORKSPACE
+++ b/WORKSPACE
@@ -199,3 +199,12 @@
sha256 = "3528fc6012a78da6291c00854373ea43f7f8b6c4046320be5f0884f5b3385b14",
strip_prefix = "bazel-skylib-7490380c6bbf9a5a060df78dc2222e7de6ffae5c"
)
+
+http_archive(
+ name = "skydoc",
+ urls = [
+ "https://github.com/bazelbuild/skydoc/archive/d34c44c3f4102eb94beaf2636c6cf532f0ec1ee8.tar.gz",
+ ],
+ sha256 = "cfbfcc107f5c9853dc5b2b81f1fe90fc326bd1c61f76c9aac2b4201dff75b91d",
+ strip_prefix = "skydoc-d34c44c3f4102eb94beaf2636c6cf532f0ec1ee8"
+)
diff --git a/src/test/java/com/google/devtools/build/skydoc/skydoc_e2e_test_runner.sh b/src/test/java/com/google/devtools/build/skydoc/diff_test_runner.sh
similarity index 73%
rename from src/test/java/com/google/devtools/build/skydoc/skydoc_e2e_test_runner.sh
rename to src/test/java/com/google/devtools/build/skydoc/diff_test_runner.sh
index ac40e9a..0f4fa47 100755
--- a/src/test/java/com/google/devtools/build/skydoc/skydoc_e2e_test_runner.sh
+++ b/src/test/java/com/google/devtools/build/skydoc/diff_test_runner.sh
@@ -14,30 +14,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
-# Test skydoc output matches the expected golden file output.
+# A shell test that the contents of an input file match a golden file.
+#
+# Usage: diff_test_runner.sh ACTUAL_FILE GOLDEN_FILE
set -u
-skydoc_bin=$1
-shift 1
-input_file=$1
+actual_file=$1
shift 1
golden_file=$1
shift 1
-actual_file="${TEST_TMPDIR}/actual"
-
-set -e
-${skydoc_bin} ${input_file} ${actual_file} $@
-set +e
-
DIFF="$(diff ${actual_file} ${golden_file})"
if [ "$DIFF" != "" ]
then
- echo "Actual did not match golden."
+ echo "FAIL: Actual did not match golden."
echo "${DIFF}"
exit 1
else
- echo "Result matches golden file"
+ echo "SUCCESS: Result matches golden file"
fi
diff --git a/src/test/java/com/google/devtools/build/skydoc/skydoc_test.bzl b/src/test/java/com/google/devtools/build/skydoc/skydoc_test.bzl
index b2d657e..5010895 100644
--- a/src/test/java/com/google/devtools/build/skydoc/skydoc_test.bzl
+++ b/src/test/java/com/google/devtools/build/skydoc/skydoc_test.bzl
@@ -20,6 +20,9 @@
# the golden file if changes are made to skydoc.
"""Convenience macro for skydoc tests."""
+load("@bazel_skylib//:skylark_library.bzl", "skylark_library")
+load("@skydoc//skylark:stardoc.bzl", "stardoc")
+
def skydoc_test(name, input_file, golden_file, skydoc, deps = [], whitelisted_symbols = []):
"""Creates a test target and golden-file regeneration target for skydoc testing.
@@ -38,7 +41,7 @@
to generate documentation for. If empty, documentation for all top-level symbols
will be generated.
"""
- output_golden_file = "%s_output.txt" % name
+ actual_generated_doc = "%s_output.txt" % name
# Skydoc requires an absolute input file label to both load the target file and
# track what its target is for the purpose of resolving relative labels.
@@ -46,28 +49,28 @@
native.sh_test(
name = "%s_e2e_test" % name,
- srcs = ["skydoc_e2e_test_runner.sh"],
+ srcs = ["diff_test_runner.sh"],
args = [
- "$(location %s)" % skydoc,
- abs_input_file_label,
+ "$(location %s)" % actual_generated_doc,
"$(location %s)" % golden_file,
- ] + whitelisted_symbols,
+ ],
data = [
- input_file,
+ actual_generated_doc,
golden_file,
- skydoc,
- ] + deps,
+ ],
)
- native.genrule(
+ skylark_library(
+ name = "%s_lib" % name,
+ srcs = [input_file],
+ deps = deps,
+ )
+
+ stardoc(
name = "regenerate_%s_golden" % name,
- srcs = [
- input_file,
- ] + deps,
- outs = [output_golden_file],
- heuristic_label_expansion = 0,
- cmd = "$(location %s) " % skydoc +
- "%s $(location %s) " % (abs_input_file_label, output_golden_file) +
- " ".join(whitelisted_symbols),
- tools = [skydoc],
+ out = actual_generated_doc,
+ input = input_file,
+ symbol_names = whitelisted_symbols,
+ deps = ["%s_lib" % name],
+ stardoc = skydoc,
)