# 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):
    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_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(":", "/")
