#!/bin/bash

set -ex

PROTOC_VERSION=$1
TEST_FILTER=$2
PROTOC_DOWNLOAD=https://github.com/protocolbuffers/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip
PY_SITE_PACKAGES=$(python -c 'import site; print(site.getsitepackages()[0])')

rm -rf protoc-old
mkdir protoc-old
pushd protoc-old
wget $PROTOC_DOWNLOAD
unzip *.zip
PROTOC=$(pwd)/bin/protoc
popd

# protoc prior to 28.0 doesn't support inf/nan option values.
sed -i 's/\(inf\|nan\)/0/g' src/google/protobuf/unittest_custom_options.proto

USE_BAZEL_VERSION=6.3.0 bazelisk build //python:copied_test_proto_files //python:copied_wkt_proto_files

COMPAT_COPIED_PROTOS=(
  # Well-known types give good build coverage
  any
  api
  duration
  empty
  field_mask
  source_context
  struct
  timestamp
  type
  wrappers
  # These protos are used in tests of custom options handling.
  unittest_custom_options
  unittest_import
)

for proto in ${COMPAT_COPIED_PROTOS[@]}; do
  $PROTOC --python_out=$PY_SITE_PACKAGES \
    bazel-bin/python/google/protobuf/$proto.proto \
    -Ibazel-bin/python
done

COMPAT_PROTOS=(
  # All protos without transitive dependencies on edition 2023+.
  descriptor_pool_test1
  descriptor_pool_test2
  factory_test1
  factory_test2
  file_options_test
  import_test_package/import_public
  import_test_package/import_public_nested
  import_test_package/inner
  import_test_package/outer
  message_set_extensions
  missing_enum_values
  more_extensions
  more_extensions_dynamic
  more_messages
  no_package
  packed_field_test
  test_bad_identifiers
  test_proto3_optional
)

for proto in ${COMPAT_PROTOS[@]}; do
  $PROTOC --python_out=$PY_SITE_PACKAGES \
    python/google/protobuf/internal/$proto.proto \
    -Ipython
done

# Exclude pybind11 tests because they require C++ code that doesn't ship with
# our test wheels.
TEST_EXCLUSIONS="_pybind11_test.py"
TESTS=$(pip show -f protobuftests | grep -i $TEST_FILTER | grep --invert-match $TEST_EXCLUSIONS | sed 's,/,.,g' | sed -E 's,.py$,,g')
for test in $TESTS; do
  python -m unittest -v $test
done
