• P
    tests: Handle $RANDOM not being supported by the shell · 64f871e3
    Peter Maydell 提交于
    In various places in our test makefiles and scripts we use the
    shell $RANDOM to create a random number. This is a bash
    specific extension, and doesn't work on other shells.
    With dash the shell doesn't complain, it just effectively
    always evaluates $RANDOM to 0:
      echo $((RANDOM + 32768))     => 32768
    
    However, on NetBSD the shell will complain:
      "-sh: arith: syntax error: "RANDOM + 32768"
    
    which means that "make check" fails.
    
    Switch to using "${RANDOM:-0}" instead of $RANDOM,
    which will portably either give us a random number or zero.
    This means that on non-bash shells we don't get such
    good test coverage via the MALLOC_PERTURB_ setting, but
    we were already in that situation for non-bash shells.
    
    Our only other uses of $RANDOM (in tests/qemu-iotests/check
    and tests/qemu-iotests/162) are in shell scripts which use
    a #!/bin/bash line so they are always run under bash.
    Suggested-by: NEric Blake <eblake@redhat.com>
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    Reviewed-by: NKamil Rytarowski <n54@gmx.com>
    Reviewed-by: NFam Zheng <famz@redhat.com>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Reviewed-by: NStefan Hajnoczi <stefanha@redhat.com>
    Message-id: 1500029117-6387-1-git-send-email-peter.maydell@linaro.org
    64f871e3
Makefile.include 42.3 KB