#!/bin/bash # This is an internal file that should only be called from Bazel rules. For # custom conformance tests outside of Bazel use CMAKE with # -Dprotobuf_BUILD_CONFORMANCE=ON to build the test runner. set -x echo $@ set -euo pipefail # --- begin runfiles.bash initialization --- if [[ ! -d "${RUNFILES_DIR:-/dev/null}" && ! -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then if [[ -f "$0.runfiles_manifest" ]]; then export RUNFILES_MANIFEST_FILE="$0.runfiles_manifest" elif [[ -f "$0.runfiles/MANIFEST" ]]; then export RUNFILES_MANIFEST_FILE="$0.runfiles/MANIFEST" elif [[ -f "$0.runfiles/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then export RUNFILES_DIR="$0.runfiles" fi fi if [[ -f "${RUNFILES_DIR:-/dev/null}/bazel_tools/tools/bash/runfiles/runfiles.bash" ]]; then source "${RUNFILES_DIR}/bazel_tools/tools/bash/runfiles/runfiles.bash" elif [[ -f "${RUNFILES_MANIFEST_FILE:-/dev/null}" ]]; then source "$(grep -m1 "^bazel_tools/tools/bash/runfiles/runfiles.bash " \ "$RUNFILES_MANIFEST_FILE" | cut -d ' ' -f 2-)" else echo >&2 "ERROR: cannot find @bazel_tools//tools/bash/runfiles:runfiles.bash" exit 1 fi # --- end runfiles.bash initialization --- TESTEE= FAILURE_LIST= TEXT_FORMAT_FAILURE_LIST= MAXIMUM_EDITION= while [[ -n "$@" ]]; do arg="$1"; shift val="$1"; shift case "$arg" in "--testee") TESTEE="$val" ;; "--failure_list") FAILURE_LIST="$val" ;; "--text_format_failure_list") TEXT_FORMAT_FAILURE_LIST="$val" ;; "--maximum_edition") MAXIMUM_EDITION="$val" ;; *) echo "Flag $arg is not recognized." && exit 1 ;; esac done conformance_test_runner=$(rlocation com_google_protobuf/conformance/conformance_test_runner) conformance_testee=$(rlocation $TESTEE) args=(--enforce_recommended) failure_list=$(rlocation $FAILURE_LIST) || unset if [ -n "$failure_list" ] ; then args+=(--failure_list $failure_list) fi text_format_failure_list=$(rlocation $TEXT_FORMAT_FAILURE_LIST) || unset if [ -n "$text_format_failure_list" ]; then args+=(--text_format_failure_list $text_format_failure_list) fi if [ -n "$MAXIMUM_EDITION" ]; then args+=(--maximum_edition $MAXIMUM_EDITION) fi $conformance_test_runner "${args[@]}" $conformance_testee