From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35993) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aqfVz-0004y5-8F for qemu-devel@nongnu.org; Thu, 14 Apr 2016 07:32:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aqfVv-0004Fv-RW for qemu-devel@nongnu.org; Thu, 14 Apr 2016 07:32:51 -0400 Received: from e06smtp12.uk.ibm.com ([195.75.94.108]:48722) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aqfVv-0004Er-He for qemu-devel@nongnu.org; Thu, 14 Apr 2016 07:32:47 -0400 Received: from localhost by e06smtp12.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 14 Apr 2016 12:32:45 +0100 From: Sascha Silbe Date: Thu, 14 Apr 2016 13:32:23 +0200 Message-Id: <1460633543-7366-1-git-send-email-silbe@linux.vnet.ibm.com> Subject: [Qemu-devel] [PATCH for-2.6?] qemu-iotests: iotests: fail hard if not run via "check" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, qemu-block@nongnu.org Cc: Kevin Wolf , Max Reitz Running an iotests-based Python test directly might appear to work, but may fail in subtle ways and is insecure: - It creates files with predictable file names in a world-writable location (/var/tmp). - Tests expect the environment to be set up by check. E.g. 041 and 055 may take the wrong code paths if QEMU_DEFAULT_MACHINE is not set. This can lead to false negatives. Instead fail hard and tell the user we want to be run via "check". Signed-off-by: Sascha Silbe Reviewed-by: Bo Tu --- It's possible to fix iotests.py to work even outside of check, but that requires reimplementing parts of what check currently does. I'd prefer not to do that this late in the cycle. It would be nice to have this in 2.6, just in case someone even tries running a Python-based test directly instead of using ./check like for the shell-based tests. But it's not crucial. --- tests/qemu-iotests/iotests.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index 0c0b533..8c7138f 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -46,7 +46,7 @@ if os.environ.get('QEMU_OPTIONS'): imgfmt = os.environ.get('IMGFMT', 'raw') imgproto = os.environ.get('IMGPROTO', 'file') -test_dir = os.environ.get('TEST_DIR', '/var/tmp') +test_dir = os.environ.get('TEST_DIR') output_dir = os.environ.get('OUTPUT_DIR', '.') cachemode = os.environ.get('CACHEMODE') qemu_default_machine = os.environ.get('QEMU_DEFAULT_MACHINE') @@ -441,6 +441,10 @@ def verify_quorum(): def main(supported_fmts=[], supported_oses=['linux']): '''Run tests''' + if test_dir is None or qemu_default_machine is None: + sys.stderr.write('Please run this test via ./check\n') + sys.exit(os.EX_USAGE) + debug = '-d' in sys.argv verbosity = 1 verify_image_format(supported_fmts) -- 1.9.1