This is an automated email from the ASF dual-hosted git repository.

kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 397b3d00230 GH-51090: [CI][C++] Fix shellcheck errors in 
cpp/build-support/fuzzing/generate_corpuses.sh (#51091)
397b3d00230 is described below

commit 397b3d0023030f6c6bc69d214ea7b27a687256f8
Author: Hiroyuki Sato <[email protected]>
AuthorDate: Tue Sep 8 15:55:15 2026 +0900

    GH-51090: [CI][C++] Fix shellcheck errors in 
cpp/build-support/fuzzing/generate_corpuses.sh (#51091)
    
    ### Rationale for this change
    
    This is the sub issue #44748.
    
    * SC2046: Quote this to prevent word splitting.
    * SC2128: Expanding an array without an index only gives the element in the 
index 0.
    * SC2086: Double quote to prevent globbing and word splitting.
    
    ```
    
    In generate_corpuses.sh line 32:
    ARROW_ROOT=$(cd $(dirname "$BASH_SOURCE")/../../..; pwd)
                    ^-----------------------^ SC2046 (warning): Quote this to 
prevent word splitting.
                               ^----------^ SC2128 (warning): Expanding an 
array without an index only gives the first element.
    
    In generate_corpuses.sh line 43:
    ${OUT}/arrow-ipc-generate-fuzz-corpus -stream ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/arrow-ipc-generate-fuzz-corpus -stream ${CORPUS_DIR}
    
    In generate_corpuses.sh line 45:
    IPC_INTEGRATION_FILES=$(find 
${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration -name "*.stream")
                                 ^-----------^ SC2086 (info): Double quote to 
prevent globbing and word splitting.
    
    Did you mean:
    IPC_INTEGRATION_FILES=$(find 
"${ARROW_ROOT}"/testing/data/arrow-ipc-stream/integration -name "*.stream")
    
    In generate_corpuses.sh line 49:
    cp --backup=numbered ${IPC_INTEGRATION_FILES} ${CORPUS_DIR}
                         ^----------------------^ SC2086 (info): Double quote 
to prevent globbing and word splitting.
    
    Did you mean:
    cp --backup=numbered "${IPC_INTEGRATION_FILES}" ${CORPUS_DIR}
    
    In generate_corpuses.sh line 50:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-stream-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/arrow-ipc-stream-fuzz_seed_corpus.zip
    
    In generate_corpuses.sh line 53:
    ${OUT}/arrow-ipc-generate-fuzz-corpus -file ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/arrow-ipc-generate-fuzz-corpus -file ${CORPUS_DIR}
    
    In generate_corpuses.sh line 54:
    IPC_INTEGRATION_FILES=$(find 
${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration -name "*.arrow_file")
                                 ^-----------^ SC2086 (info): Double quote to 
prevent globbing and word splitting.
    
    Did you mean:
    IPC_INTEGRATION_FILES=$(find 
"${ARROW_ROOT}"/testing/data/arrow-ipc-stream/integration -name "*.arrow_file")
    
    In generate_corpuses.sh line 56:
    cp --backup=numbered ${IPC_INTEGRATION_FILES} ${CORPUS_DIR}
                         ^----------------------^ SC2086 (info): Double quote 
to prevent globbing and word splitting.
    
    Did you mean:
    cp --backup=numbered "${IPC_INTEGRATION_FILES}" ${CORPUS_DIR}
    
    In generate_corpuses.sh line 57:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-file-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/arrow-ipc-file-fuzz_seed_corpus.zip
    
    In generate_corpuses.sh line 60:
    ${OUT}/arrow-ipc-generate-tensor-fuzz-corpus -stream ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/arrow-ipc-generate-tensor-fuzz-corpus -stream ${CORPUS_DIR}
    
    In generate_corpuses.sh line 61:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-tensor-stream-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/arrow-ipc-tensor-stream-fuzz_seed_corpus.zip
    
    In generate_corpuses.sh line 66:
    ${OUT}/parquet-arrow-generate-fuzz-corpus ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/parquet-arrow-generate-fuzz-corpus ${CORPUS_DIR}
    
    In generate_corpuses.sh line 68:
    cp ${ARROW_CPP}/submodules/parquet-testing/data/*.parquet ${CORPUS_DIR}
       ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
    
    Did you mean:
    cp "${ARROW_CPP}"/submodules/parquet-testing/data/*.parquet ${CORPUS_DIR}
    
    In generate_corpuses.sh line 69:
    cp ${ARROW_CPP}/submodules/parquet-testing/bad_data/*.parquet ${CORPUS_DIR}
       ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
    
    Did you mean:
    cp "${ARROW_CPP}"/submodules/parquet-testing/bad_data/*.parquet 
${CORPUS_DIR}
    
    In generate_corpuses.sh line 70:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/parquet-arrow-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/parquet-arrow-fuzz_seed_corpus.zip
    
    In generate_corpuses.sh line 75:
    ${OUT}/parquet-generate-encoding-fuzz-corpus ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/parquet-generate-encoding-fuzz-corpus ${CORPUS_DIR}
    
    In generate_corpuses.sh line 76:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/parquet-encoding-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/parquet-encoding-fuzz_seed_corpus.zip
    
    In generate_corpuses.sh line 84:
    ${OUT}/arrow-csv-generate-fuzz-corpus ${CORPUS_DIR}
    ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${OUT}"/arrow-csv-generate-fuzz-corpus ${CORPUS_DIR}
    
    In generate_corpuses.sh line 86:
    cp ${ARROW_ROOT}/testing/data/csv/*.csv ${CORPUS_DIR}
       ^-----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
    
    Did you mean:
    cp "${ARROW_ROOT}"/testing/data/csv/*.csv ${CORPUS_DIR}
    
    In generate_corpuses.sh line 89:
    ${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-csv-fuzz_seed_corpus.zip
    ^----------^ SC2086 (info): Double quote to prevent globbing and word 
splitting.
                                                                    ^----^ 
SC2086 (info): Double quote to prevent globbing and word splitting.
    
    Did you mean:
    "${ARROW_CPP}"/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
"${OUT}"/arrow-csv-fuzz_seed_corpus.zip
    
    For more information:
      https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word 
splitt...
      https://www.shellcheck.net/wiki/SC2128 -- Expanding an array without an 
ind...
      https://www.shellcheck.net/wiki/SC2086 -- Double quote to prevent 
globbing ...
    ```
    
    ### What changes are included in this PR?
    
    * SC2046: Quote command substitutions to prevent word splitting.
    * SC2128: Specify an array index explicitly.
    * SC2086: Quote variables to prevent globbing and word splitting.
    
    ### Are these changes tested?
    
    Yes.
    
    ### Are there any user-facing changes?
    
    No.
    * GitHub Issue: #51090
    
    Authored-by: Hiroyuki Sato <[email protected]>
    Signed-off-by: Sutou Kouhei <[email protected]>
---
 .pre-commit-config.yaml                        |  8 +---
 cpp/build-support/fuzzing/generate_corpuses.sh | 63 ++++++++++++++------------
 2 files changed, 34 insertions(+), 37 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index c4f736b39be..b47ce4ac02c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -284,13 +284,7 @@ repos:
           (
           ?^c_glib/.*\.sh$|
           ?^ci/.*\.sh$|
-          ?^cpp/build-support/build-lz4-lib\.sh$|
-          ?^cpp/build-support/build-zstd-lib\.sh$|
-          ?^cpp/build-support/get-upstream-commit\.sh$|
-          ?^cpp/build-support/run-test\.sh$|
-          ?^cpp/build-support/update-flatbuffers\.sh$|
-          ?^cpp/build-support/update-thrift\.sh$|
-          ?^cpp/build-support/vendor-flatbuffers\.sh$|
+          ?^cpp/build-support/.*\.sh$|
           ?^cpp/examples/minimal_build/run\.sh$|
           ?^cpp/examples/tutorial_examples/run\.sh$|
           ?^cpp/src/arrow/flight/sql/odbc/install/mac/postinstall$|
diff --git a/cpp/build-support/fuzzing/generate_corpuses.sh 
b/cpp/build-support/fuzzing/generate_corpuses.sh
index 07afa793dc6..2d95e110b51 100755
--- a/cpp/build-support/fuzzing/generate_corpuses.sh
+++ b/cpp/build-support/fuzzing/generate_corpuses.sh
@@ -29,7 +29,7 @@ set -ex
 CORPUS_DIR=/tmp/corpus
 PANDAS_DIR=/tmp/pandas
 
-ARROW_ROOT=$(cd $(dirname "$BASH_SOURCE")/../../..; pwd)
+ARROW_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/../../.." && pwd)
 ARROW_CPP=$ARROW_ROOT/cpp
 OUT=$1
 
@@ -39,51 +39,54 @@ OUT=$1
 
 # Arrow IPC
 
-rm -rf ${CORPUS_DIR}
-${OUT}/arrow-ipc-generate-fuzz-corpus -stream ${CORPUS_DIR}
+rm -rf "${CORPUS_DIR}"
+"${OUT}/arrow-ipc-generate-fuzz-corpus" -stream "${CORPUS_DIR}"
 # Add "golden" IPC integration files
-IPC_INTEGRATION_FILES=$(find 
${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration -name "*.stream")
-[ -z "${IPC_INTEGRATION_FILES}" ] && exit 1
 # Several IPC integration files can have the same name, make sure
 # they all appear in the corpus by numbering the duplicates.
-cp --backup=numbered ${IPC_INTEGRATION_FILES} ${CORPUS_DIR}
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-stream-fuzz_seed_corpus.zip
+find "${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration" \
+  -name "*.stream" \
+  -exec cp --backup=numbered '{}' "${CORPUS_DIR}" \;
 
-rm -rf ${CORPUS_DIR}
-${OUT}/arrow-ipc-generate-fuzz-corpus -file ${CORPUS_DIR}
-IPC_INTEGRATION_FILES=$(find 
${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration -name "*.arrow_file")
-[ -z "${IPC_INTEGRATION_FILES}" ] && exit 1
-cp --backup=numbered ${IPC_INTEGRATION_FILES} ${CORPUS_DIR}
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-file-fuzz_seed_corpus.zip
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/arrow-ipc-stream-fuzz_seed_corpus.zip"
 
-rm -rf ${CORPUS_DIR}
-${OUT}/arrow-ipc-generate-tensor-fuzz-corpus -stream ${CORPUS_DIR}
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-ipc-tensor-stream-fuzz_seed_corpus.zip
+rm -rf "${CORPUS_DIR}"
+"${OUT}/arrow-ipc-generate-fuzz-corpus" -file "${CORPUS_DIR}"
+
+find "${ARROW_ROOT}/testing/data/arrow-ipc-stream/integration" \
+  -name "*.arrow_file" \
+  -exec cp --backup=numbered '{}' "${CORPUS_DIR}" \;
+
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/arrow-ipc-file-fuzz_seed_corpus.zip"
+
+rm -rf "${CORPUS_DIR}"
+"${OUT}/arrow-ipc-generate-tensor-fuzz-corpus" -stream "${CORPUS_DIR}"
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/arrow-ipc-tensor-stream-fuzz_seed_corpus.zip"
 
 # Parquet file-level fuzzer
 
-rm -rf ${CORPUS_DIR}
-${OUT}/parquet-arrow-generate-fuzz-corpus ${CORPUS_DIR}
+rm -rf "${CORPUS_DIR}"
+"${OUT}/parquet-arrow-generate-fuzz-corpus" "${CORPUS_DIR}"
 # Add Parquet testing examples
-cp ${ARROW_CPP}/submodules/parquet-testing/data/*.parquet ${CORPUS_DIR}
-cp ${ARROW_CPP}/submodules/parquet-testing/bad_data/*.parquet ${CORPUS_DIR}
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/parquet-arrow-fuzz_seed_corpus.zip
+cp "${ARROW_CPP}"/submodules/parquet-testing/data/*.parquet "${CORPUS_DIR}"
+cp "${ARROW_CPP}"/submodules/parquet-testing/bad_data/*.parquet "${CORPUS_DIR}"
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/parquet-arrow-fuzz_seed_corpus.zip"
 
 # Parquet encoding fuzzer
 
 rm -rf ${CORPUS_DIR}
-${OUT}/parquet-generate-encoding-fuzz-corpus ${CORPUS_DIR}
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/parquet-encoding-fuzz_seed_corpus.zip
+"${OUT}/parquet-generate-encoding-fuzz-corpus" "${CORPUS_DIR}"
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/parquet-encoding-fuzz_seed_corpus.zip"
 
 # CSV
 
-rm -rf ${PANDAS_DIR}
-git clone --depth=1 https://github.com/pandas-dev/pandas ${PANDAS_DIR}
+rm -rf "${PANDAS_DIR}"
+git clone --depth=1 https://github.com/pandas-dev/pandas "${PANDAS_DIR}"
 
-rm -rf ${CORPUS_DIR}
-${OUT}/arrow-csv-generate-fuzz-corpus ${CORPUS_DIR}
+rm -rf "${CORPUS_DIR}"
+"${OUT}/arrow-csv-generate-fuzz-corpus" "${CORPUS_DIR}"
 # Add examples from arrow-testing repo
-cp ${ARROW_ROOT}/testing/data/csv/*.csv ${CORPUS_DIR}
+cp "${ARROW_ROOT}"/testing/data/csv/*.csv "${CORPUS_DIR}"
 # Add examples from Pandas test suite
-find ${PANDAS_DIR}/ -name "*.csv" -exec cp --backup=numbered '{}' 
${CORPUS_DIR} \;
-${ARROW_CPP}/build-support/fuzzing/pack_corpus.py ${CORPUS_DIR} 
${OUT}/arrow-csv-fuzz_seed_corpus.zip
+find "${PANDAS_DIR}/" -name "*.csv" -exec cp --backup=numbered '{}' 
"${CORPUS_DIR}" \;
+"${ARROW_CPP}/build-support/fuzzing/pack_corpus.py" "${CORPUS_DIR}" 
"${OUT}/arrow-csv-fuzz_seed_corpus.zip"

Reply via email to