On 8/28/19 5:58 PM, John Snow wrote: >> +++ b/tests/qemu-iotests/common.rc >> @@ -60,61 +60,132 @@ if ! . ./common.config >> exit 1 >> fi >> >> +# Unset the variables to turn Valgrind off for specific processes, e.g.
That's not unsetting, that's setting to the empty string. >> +# $ VALGRIND_QEMU_IO= ./check -qcow2 -valgrind 015 >> + >> +: ${VALGRIND_QEMU_VM='y'} >> +: ${VALGRIND_QEMU_IMG='y'} >> +: ${VALGRIND_QEMU_IO='y'} >> +: ${VALGRIND_QEMU_NBD='y'} >> +: ${VALGRIND_QEMU_VXHS='y'} >> + > > I have to admit to you that I'm not familiar with this trick. I'm > looking it up and I see := documented, but not = alone. It's been a repeated complaint to the bash developer that the manual is doing a disservice to its users by not documenting ${var=val} in an easily searchable form. It IS documented, but only by virtue of ${var:=val} occurring under a section header that states: When not performing substring expansion, using the forms documented below (e.g., :-), bash tests for a parameter that is unset or null. Omitting the colon results in a test only for a parameter that is unset. So the choice is whether you want to special case a variable set to an empty string the same as an unset variable, or the same as a variable with a non-empty value. > > It doesn't seem documented here at all: > https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html > > I see it here, though: > https://www.tldp.org/LDP/abs/html/parameter-substitution.html > > And it seems to work, but I'm not sure if this works with BSD or OSX's > sh. I see Eric comment on that compatibility a lot, so maybe I'll let > him chime in. It's quite portable; POSIX requires it, and autoconf relies on it. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org
signature.asc
Description: OpenPGP digital signature