@@ -191,16 +191,19 @@ if [ "${ARROW_FUZZING}" == "ON" ]; then
191191 export ASAN_OPTIONS=" $ASAN_OPTIONS allocator_may_return_null=1"
192192
193193 # 1. Generate seed corpuses
194+ # For IPC fuzz targets, these will include the golden IPC integration files.
194195 " ${source_dir} /build-support/fuzzing/generate_corpuses.sh" " ${binary_output_dir} "
195196
196197 # 2. Run fuzz targets on seed corpus entries
197198 function run_fuzz_target_on_seed_corpus() {
198199 fuzz_target_basename=$1
199200 corpus_dir=${binary_output_dir} /${fuzz_target_basename} _seed_corpus
200201 mkdir -p " ${corpus_dir} "
201- rm -f " ${corpus_dir} " /*
202- unzip " ${binary_output_dir} " /" ${fuzz_target_basename} " _seed_corpus.zip -d " ${corpus_dir} "
203- " ${binary_output_dir} " /" ${fuzz_target_basename} " -rss_limit_mb=4000 " ${corpus_dir} " /*
202+ pushd " ${corpus_dir} "
203+ unzip -q " ${binary_output_dir} " /" ${fuzz_target_basename} " _seed_corpus.zip -d .
204+ " ${binary_output_dir} " /" ${fuzz_target_basename} " -rss_limit_mb=4000 ./*
205+ popd
206+ rm -rf " ${corpus_dir} "
204207 }
205208 run_fuzz_target_on_seed_corpus arrow-csv-fuzz
206209 run_fuzz_target_on_seed_corpus arrow-ipc-file-fuzz
@@ -212,22 +215,17 @@ if [ "${ARROW_FUZZING}" == "ON" ]; then
212215 fi
213216
214217 # 3. Run fuzz targets on regression files from arrow-testing
215- # Run golden IPC integration files: these should ideally load without errors,
216- # though some very old ones carry invalid data (such as decimal values
217- # larger than their advertised precision).
218- # shellcheck disable=SC2046
219- " ${binary_output_dir} /arrow-ipc-stream-fuzz" $( find " ${ARROW_TEST_DATA} " /arrow-ipc-stream/integration -name " *.stream" )
220- # shellcheck disable=SC2046
221- " ${binary_output_dir} /arrow-ipc-file-fuzz" $( find " ${ARROW_TEST_DATA} " /arrow-ipc-stream/integration -name " *.arrow_file" )
222- # Run known crash files
223- " ${binary_output_dir} /arrow-ipc-stream-fuzz" " ${ARROW_TEST_DATA} " /arrow-ipc-stream/crash-*
224- " ${binary_output_dir} /arrow-ipc-stream-fuzz" " ${ARROW_TEST_DATA} " /arrow-ipc-stream/* -testcase-*
225- " ${binary_output_dir} /arrow-ipc-file-fuzz" " ${ARROW_TEST_DATA} " /arrow-ipc-file/* -testcase-*
226- " ${binary_output_dir} /arrow-ipc-tensor-stream-fuzz" " ${ARROW_TEST_DATA} " /arrow-ipc-tensor-stream/* -testcase-*
218+ pushd " ${ARROW_TEST_DATA} "
219+ " ${binary_output_dir} /arrow-ipc-stream-fuzz" arrow-ipc-stream/crash-*
220+ " ${binary_output_dir} /arrow-ipc-stream-fuzz" arrow-ipc-stream/* -testcase-*
221+ " ${binary_output_dir} /arrow-ipc-file-fuzz" arrow-ipc-file/* -testcase-*
222+ " ${binary_output_dir} /arrow-ipc-tensor-stream-fuzz" arrow-ipc-tensor-stream/* -testcase-*
227223 if [ " ${ARROW_PARQUET} " == " ON" ]; then
228- " ${binary_output_dir} /parquet-arrow-fuzz" " ${ARROW_TEST_DATA} " /parquet/fuzzing/* -testcase-*
224+ " ${binary_output_dir} /parquet-arrow-fuzz" parquet/fuzzing/* -testcase-*
225+ # TODO replay encoding regression files when we have some
229226 fi
230- " ${binary_output_dir} /arrow-csv-fuzz" " ${ARROW_TEST_DATA} " /csv/fuzzing/* -testcase-*
227+ " ${binary_output_dir} /arrow-csv-fuzz" csv/fuzzing/* -testcase-*
228+ popd
231229fi
232230
233231popd
0 commit comments