hiroyuki-sato commented on code in PR #50798:
URL: https://github.com/apache/arrow/pull/50798#discussion_r3717060967
##########
ci/scripts/r_valgrind.sh:
##########
@@ -18,28 +18,32 @@
set -ex
-: ${R_BIN:=RDvalgrind}
+: "${R_BIN:=RDvalgrind}"
-source_dir=${1}/r
+source_dir="${1}/r"
export CMAKE_BUILD_TYPE=RelWithDebInfo
-pushd ${source_dir}
+pushd "${source_dir}"
+
+# Convert the space-separated options into a Bash array.
+# This avoids ShellCheck SC2086 and preserves argument boundaries.
+read -r -a R_INSTALL_ARGS <<< "${INSTALL_ARGS:-}"
# build first so that any stray compiled files in r/src are ignored
-${R_BIN} CMD build --no-build-vignettes .
-${R_BIN} CMD INSTALL ${INSTALL_ARGS} arrow*.tar.gz
+"${R_BIN}" CMD build --no-build-vignettes .
+"${R_BIN}" CMD INSTALL "${R_INSTALL_ARGS[@]}" arrow*.tar.gz
pushd tests
# to generate suppression files run:
# ${R_BIN} --vanilla -d "valgrind --tool=memcheck --leak-check=full
--track-origins=yes --gen-suppressions=all --log-file=memcheck.log" -f
testthat.R
-${R_BIN} --vanilla -d "valgrind --tool=memcheck --leak-check=full
--track-origins=yes --suppressions=/${1}/ci/etc/valgrind-cran.supp" -f
testthat.R |& tee testthat.out
+"${R_BIN}" --vanilla -d "valgrind --tool=memcheck --leak-check=full
--track-origins=yes --suppressions=/${1}/ci/etc/valgrind-cran.supp" -f
testthat.R |& tee testthat.out
# valgrind --error-exitcode=1 should return an erroring exit code that we can
catch,
# but R eats that and returns 0, so we need to look at the output and make
sure that
# we have 0 errors instead.
-if [ $(grep -c "ERROR SUMMARY: 0 errors" testthat.out) != 1 ]; then
+if [ "$(grep -c "ERROR SUMMARY: 0 errors" testthat.out)" -ne 1 ]; then
Review Comment:
Thanks for the suggestion. I'll adopt that approach.
I initially considered using `grep -q` as well, but I went with the current
implementation because I wasn't sure whether the fact that there is exactly one
match was significant.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]