blob: 43b871be6a47309fd2cd3ab68900c35ff30623e1 [file]
#!/usr/bin/env bash
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
set -ex
arrow_dir="${1}"
if [ -n "${ARROW_PYTHON_VENV:-}" ]; then
# shellcheck source=/dev/null
. "${ARROW_PYTHON_VENV}/bin/activate"
fi
export ARROW_SOURCE_DIR="${arrow_dir}"
export ARROW_TEST_DATA="${arrow_dir}/testing/data"
export PARQUET_TEST_DATA="${arrow_dir}/cpp/submodules/parquet-testing/data"
export LD_LIBRARY_PATH="${ARROW_HOME}/lib:${LD_LIBRARY_PATH}"
export DYLD_LIBRARY_PATH="${ARROW_HOME}/lib:${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}"
export ARROW_GDB_SCRIPT="${arrow_dir}/cpp/gdb_arrow.py"
# Enable some checks inside Python itself
export PYTHONDEVMODE=1
# Enable memory debug checks if the env is not set already
if [ -z "${ARROW_DEBUG_MEMORY_POOL}" ]; then
export ARROW_DEBUG_MEMORY_POOL=trap
fi
# By default, force-test all optional components
: "${PYARROW_TEST_ACERO:=${ARROW_ACERO:-ON}}"
: "${PYARROW_TEST_AZURE:=${ARROW_AZURE:-ON}}"
: "${PYARROW_TEST_CUDA:=${ARROW_CUDA:-ON}}"
: "${PYARROW_TEST_DATASET:=${ARROW_DATASET:-ON}}"
: "${PYARROW_TEST_FLIGHT:=${ARROW_FLIGHT:-ON}}"
: "${PYARROW_TEST_GANDIVA:=${ARROW_GANDIVA:-ON}}"
: "${PYARROW_TEST_GCS:=${ARROW_GCS:-ON}}"
: "${PYARROW_TEST_HDFS:=${ARROW_HDFS:-ON}}"
: "${PYARROW_TEST_ORC:=${ARROW_ORC:-ON}}"
: "${PYARROW_TEST_PARQUET:=${ARROW_PARQUET:-ON}}"
: "${PYARROW_TEST_PARQUET_ENCRYPTION:=${PARQUET_REQUIRE_ENCRYPTION:-ON}}"
: "${PYARROW_TEST_S3:=${ARROW_S3:-ON}}"
export PYARROW_TEST_ACERO
export PYARROW_TEST_AZURE
export PYARROW_TEST_CUDA
export PYARROW_TEST_DATASET
export PYARROW_TEST_FLIGHT
export PYARROW_TEST_GANDIVA
export PYARROW_TEST_GCS
export PYARROW_TEST_HDFS
export PYARROW_TEST_ORC
export PYARROW_TEST_PARQUET
export PYARROW_TEST_PARQUET_ENCRYPTION
export PYARROW_TEST_S3
# Convert the space-separated options into a Bash array.
# This avoids ShellCheck SC2086 and preserves argument boundaries.
read -r -a PYTEST_ARGS_ARRAY <<< "$PYTEST_ARGS"
# Testing PyArrow
pytest -r s "${PYTEST_ARGS_ARRAY[@]}" --pyargs pyarrow
# Testing RST documentation examples (if PYTEST_RST_ARGS is set)
if [ -n "${PYTEST_RST_ARGS}" ]; then
# Convert the space-separated options into a Bash array.
# This avoids ShellCheck SC2086 and preserves argument boundaries.
read -r -a PYTEST_RST_ARGS_ARRAY <<< "$PYTEST_RST_ARGS"
pytest "${PYTEST_RST_ARGS_ARRAY[@]}" "${arrow_dir}/docs/source/python"
fi