mirror of
https://github.com/apache/arrow.git
synced 2026-10-29 00:56:31 +08:00
### Rationale for this change This is the sub issue #44748. * SC2034: `test_dir` appears unused. Verify it or export it. * SC1091: Not following: (error message here) * SC2086: Double quote to prevent globbing and word splitting. ``` shellcheck ci/scripts/python_test.sh In ci/scripts/python_test.sh line 23: test_dir=${1}/python/build/dist ^------^ SC2034 (warning): test_dir appears unused. Verify use (or export if used externally). In ci/scripts/python_test.sh line 26: . "${ARROW_PYTHON_VENV}/bin/activate" ^-- SC1091 (info): Not following: ./bin/activate: openBinaryFile: does not exist (No such file or directory) In ci/scripts/python_test.sh line 45: : ${PYARROW_TEST_ACERO:=${ARROW_ACERO:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 46: : ${PYARROW_TEST_AZURE:=${ARROW_AZURE:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 47: : ${PYARROW_TEST_CUDA:=${ARROW_CUDA:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 48: : ${PYARROW_TEST_DATASET:=${ARROW_DATASET:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 49: : ${PYARROW_TEST_FLIGHT:=${ARROW_FLIGHT:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 50: : ${PYARROW_TEST_GANDIVA:=${ARROW_GANDIVA:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 51: : ${PYARROW_TEST_GCS:=${ARROW_GCS:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 52: : ${PYARROW_TEST_HDFS:=${ARROW_HDFS:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 53: : ${PYARROW_TEST_ORC:=${ARROW_ORC:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 54: : ${PYARROW_TEST_PARQUET:=${ARROW_PARQUET:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 55: : ${PYARROW_TEST_PARQUET_ENCRYPTION:=${PARQUET_REQUIRE_ENCRYPTION:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 56: : ${PYARROW_TEST_S3:=${ARROW_S3:-ON}} ^-- SC2223 (info): This default assignment may cause DoS due to globbing. Quote it. In ci/scripts/python_test.sh line 72: pytest -r s ${PYTEST_ARGS} --pyargs pyarrow ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: pytest -r s "${PYTEST_ARGS}" --pyargs pyarrow In ci/scripts/python_test.sh line 76: pytest ${PYTEST_RST_ARGS} ${arrow_dir}/docs/source/python ^----------------^ SC2086 (info): Double quote to prevent globbing and word splitting. ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting. Did you mean: pytest "${PYTEST_RST_ARGS}" "${arrow_dir}"/docs/source/python For more information: https://www.shellcheck.net/wiki/SC2034 -- test_dir appears unused. Verify u... https://www.shellcheck.net/wiki/SC1091 -- Not following: ./bin/activate: op... https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent globbing ... ``` ### What changes are included in this PR? * SC2034: Add a ShellCheck directive to disable the unused variable check. * SC1091: Add a ShellCheck directive to disable source file checking. * SC2086: Quote variables. ### Are these changes tested? Yes. ### Are there any user-facing changes? No. * GitHub Issue: #50535 Lead-authored-by: Hiroyuki Sato <hiroysato@gmail.com> Co-authored-by: Sutou Kouhei <kou@cozmixng.org> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
85 lines
3.0 KiB
Bash
Executable File
85 lines
3.0 KiB
Bash
Executable 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
|