"""Starlark definitions for Protobuf conformance tests. PLEASE DO NOT DEPEND ON THE CONTENTS OF THIS FILE, IT IS UNSTABLE. """ def conformance_test( name, testee, failure_list = None, text_format_failure_list = None): """Conformance test runner. Args: name: the name for the test. testee: a conformance test client binary. failure_list: a text file with known failures, one per line. text_format_failure_list: a text file with known failures (one per line) for the text format conformance suite. """ args = ["--testee %s" % _strip_bazel(testee)] failure_lists = [] if failure_list: args = args + ["--failure_list %s" % _strip_bazel(failure_list)] failure_lists = failure_lists + [failure_list] if text_format_failure_list: args = args + ["--text_format_failure_list %s" % _strip_bazel(text_format_failure_list)] failure_lists = failure_lists + [text_format_failure_list] native.sh_test( name = name, srcs = ["//conformance:conformance_test_runner.sh"], data = [testee] + failure_lists + [ "//conformance:conformance_test_runner", ], args = args, deps = [ "@bazel_tools//tools/bash/runfiles", ], ) def _strip_bazel(testee): if testee.startswith("//"): testee = testee.replace("//", "com_google_protobuf/") return testee.replace(":", "/")