xref: /aosp_15_r20/external/protobuf/conformance/defs.bzl (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Worker# PLEASE DO NOT DEPEND ON THE CONTENTS OF THIS FILE, IT IS UNSTABLE.
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerdef conformance_test(name, testee, failure_list = None, text_format_failure_list = None):
4*1b3f573fSAndroid Build Coastguard Worker    args = ["--testee %s" % _strip_bazel(testee)]
5*1b3f573fSAndroid Build Coastguard Worker    failure_lists = []
6*1b3f573fSAndroid Build Coastguard Worker    if failure_list:
7*1b3f573fSAndroid Build Coastguard Worker        args = args + ["--failure_list %s" % _strip_bazel(failure_list)]
8*1b3f573fSAndroid Build Coastguard Worker        failure_lists = failure_lists + [failure_list]
9*1b3f573fSAndroid Build Coastguard Worker    if text_format_failure_list:
10*1b3f573fSAndroid Build Coastguard Worker        args = args + ["--text_format_failure_list %s" % _strip_bazel(text_format_failure_list)]
11*1b3f573fSAndroid Build Coastguard Worker        failure_lists = failure_lists + [text_format_failure_list]
12*1b3f573fSAndroid Build Coastguard Worker
13*1b3f573fSAndroid Build Coastguard Worker    native.sh_test(
14*1b3f573fSAndroid Build Coastguard Worker        name = name,
15*1b3f573fSAndroid Build Coastguard Worker        srcs = ["//conformance:conformance_test_runner.sh"],
16*1b3f573fSAndroid Build Coastguard Worker        data = [testee] + failure_lists + [
17*1b3f573fSAndroid Build Coastguard Worker            "//conformance:conformance_test_runner",
18*1b3f573fSAndroid Build Coastguard Worker        ],
19*1b3f573fSAndroid Build Coastguard Worker        args = args,
20*1b3f573fSAndroid Build Coastguard Worker        deps = [
21*1b3f573fSAndroid Build Coastguard Worker            "@bazel_tools//tools/bash/runfiles",
22*1b3f573fSAndroid Build Coastguard Worker        ],
23*1b3f573fSAndroid Build Coastguard Worker    )
24*1b3f573fSAndroid Build Coastguard Worker
25*1b3f573fSAndroid Build Coastguard Workerdef _strip_bazel(testee):
26*1b3f573fSAndroid Build Coastguard Worker    if testee.startswith("//"):
27*1b3f573fSAndroid Build Coastguard Worker        testee = testee.replace("//", "com_google_protobuf/")
28*1b3f573fSAndroid Build Coastguard Worker    return testee.replace(":", "/")
29