From patchwork Thu Sep 19 16:29:04 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Wolf X-Patchwork-Id: 11152917 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 25D0F1599 for ; Thu, 19 Sep 2019 16:32:15 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 07420218AF for ; Thu, 19 Sep 2019 16:32:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 07420218AF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:46370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAzLq-0006Hh-0r for patchwork-qemu-devel@patchwork.kernel.org; Thu, 19 Sep 2019 12:32:14 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43771) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAzJO-0004Ag-Bb for qemu-devel@nongnu.org; Thu, 19 Sep 2019 12:29:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iAzJN-00023e-BU for qemu-devel@nongnu.org; Thu, 19 Sep 2019 12:29:42 -0400 Received: from mx1.redhat.com ([209.132.183.28]:47734) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iAzJL-000200-44; Thu, 19 Sep 2019 12:29:39 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 6FADC308213F; Thu, 19 Sep 2019 16:29:38 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.36.116.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id 95B0F60BAE; Thu, 19 Sep 2019 16:29:36 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PATCH v2 1/2] iotests: Require Python 3.6 or later Date: Thu, 19 Sep 2019 18:29:04 +0200 Message-Id: <20190919162905.21830-2-kwolf@redhat.com> In-Reply-To: <20190919162905.21830-1-kwolf@redhat.com> References: <20190919162905.21830-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Thu, 19 Sep 2019 16:29:38 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, thuth@redhat.com, ehabkost@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, philmd@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Running iotests is not required to build QEMU, so we can have stricter version requirements for Python here and can make use of new features and drop compatibility code earlier. This makes qemu-iotests skip all Python tests if a Python version before 3.6 is used for the build. Suggested-by: Eduardo Habkost Signed-off-by: Kevin Wolf Reviewed-by: Eduardo Habkost Reviewed-by: Thomas Huth Reviewed-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/check | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/qemu-iotests/check b/tests/qemu-iotests/check index 875399d79f..588c453a94 100755 --- a/tests/qemu-iotests/check +++ b/tests/qemu-iotests/check @@ -633,6 +633,12 @@ then export SOCKET_SCM_HELPER="$build_iotests/socket_scm_helper" fi +python_usable=false +if $PYTHON -c 'import sys; sys.exit(0 if sys.version_info >= (3,6) else 1)' +then + python_usable=true +fi + default_machine=$($QEMU_PROG -machine help | sed -n '/(default)/ s/ .*//p') default_alias_machine=$($QEMU_PROG -machine help | \ sed -n "/(alias of $default_machine)/ { s/ .*//p; q; }") @@ -809,7 +815,12 @@ do start=$(_wallclock) if [ "$(head -n 1 "$source_iotests/$seq")" == "#!/usr/bin/env python" ]; then - run_command="$PYTHON $seq" + if $python_usable; then + run_command="$PYTHON $seq" + else + run_command="false" + echo "Unsupported Python version" > $seq.notrun + fi else run_command="./$seq" fi From patchwork Thu Sep 19 16:29:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kevin Wolf X-Patchwork-Id: 11152929 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id DF8A41599 for ; Thu, 19 Sep 2019 16:37:32 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C03772067B for ; Thu, 19 Sep 2019 16:37:32 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C03772067B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Received: from localhost ([::1]:46406 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAzQy-0001q1-0m for patchwork-qemu-devel@patchwork.kernel.org; Thu, 19 Sep 2019 12:37:32 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43792) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1iAzJR-0004En-MY for qemu-devel@nongnu.org; Thu, 19 Sep 2019 12:29:46 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1iAzJQ-00025q-5L for qemu-devel@nongnu.org; Thu, 19 Sep 2019 12:29:45 -0400 Received: from mx1.redhat.com ([209.132.183.28]:25260) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1iAzJN-000236-6T; Thu, 19 Sep 2019 12:29:41 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 79F363078A3A; Thu, 19 Sep 2019 16:29:40 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.36.116.255]) by smtp.corp.redhat.com (Postfix) with ESMTP id A5403620C5; Thu, 19 Sep 2019 16:29:38 +0000 (UTC) From: Kevin Wolf To: qemu-block@nongnu.org Subject: [PATCH v2 2/2] iotests: Remove Python 2 compatibility code Date: Thu, 19 Sep 2019 18:29:05 +0200 Message-Id: <20190919162905.21830-3-kwolf@redhat.com> In-Reply-To: <20190919162905.21830-1-kwolf@redhat.com> References: <20190919162905.21830-1-kwolf@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Thu, 19 Sep 2019 16:29:40 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.132.183.28 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: kwolf@redhat.com, thuth@redhat.com, ehabkost@redhat.com, jsnow@redhat.com, qemu-devel@nongnu.org, mreitz@redhat.com, philmd@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" Some scripts check the Python version number and have two code paths to accomodate both Python 2 and 3. Remove the code specific to Python 2 and assert the minimum version of 3.6 instead (check skips Python tests in this case, so the assertion would only ever trigger if a Python script is executed manually). Signed-off-by: Kevin Wolf Reviewed-by: Eduardo Habkost Reviewed-by: Thomas Huth Reviewed-by: John Snow Reviewed-by: Vladimir Sementsov-Ogievskiy --- tests/qemu-iotests/044 | 3 --- tests/qemu-iotests/163 | 3 --- tests/qemu-iotests/iotests.py | 13 +++---------- tests/qemu-iotests/nbd-fault-injector.py | 7 +++---- 4 files changed, 6 insertions(+), 20 deletions(-) diff --git a/tests/qemu-iotests/044 b/tests/qemu-iotests/044 index 05ea1f49c5..8b2afa2a11 100755 --- a/tests/qemu-iotests/044 +++ b/tests/qemu-iotests/044 @@ -28,9 +28,6 @@ import struct import subprocess import sys -if sys.version_info.major == 2: - range = xrange - test_img = os.path.join(iotests.test_dir, 'test.img') class TestRefcountTableGrowth(iotests.QMPTestCase): diff --git a/tests/qemu-iotests/163 b/tests/qemu-iotests/163 index 081ccc8ac1..d94728e080 100755 --- a/tests/qemu-iotests/163 +++ b/tests/qemu-iotests/163 @@ -21,9 +21,6 @@ import os, random, iotests, struct, qcow2, sys from iotests import qemu_img, qemu_io, image_size -if sys.version_info.major == 2: - range = xrange - test_img = os.path.join(iotests.test_dir, 'test.img') check_img = os.path.join(iotests.test_dir, 'check.img') diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py index b26271187c..9fb5181c3d 100644 --- a/tests/qemu-iotests/iotests.py +++ b/tests/qemu-iotests/iotests.py @@ -35,6 +35,7 @@ from collections import OrderedDict sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 'python')) from qemu import qtest +assert sys.version_info >= (3,6) # This will not work if arguments contain spaces but is necessary if we # want to support the override options that ./check supports. @@ -250,10 +251,7 @@ def image_size(img): return json.loads(r)['virtual-size'] def is_str(val): - if sys.version_info.major >= 3: - return isinstance(val, str) - else: - return isinstance(val, str) or isinstance(val, unicode) + return isinstance(val, str) test_dir_re = re.compile(r"%s" % test_dir) def filter_test_dir(msg): @@ -935,12 +933,7 @@ def execute_test(test_function=None, else: # We need to filter out the time taken from the output so that # qemu-iotest can reliably diff the results against master output. - if sys.version_info.major >= 3: - output = io.StringIO() - else: - # io.StringIO is for unicode strings, which is not what - # 2.x's test runner emits. - output = io.BytesIO() + output = io.StringIO() logging.basicConfig(level=(logging.DEBUG if debug else logging.WARN)) diff --git a/tests/qemu-iotests/nbd-fault-injector.py b/tests/qemu-iotests/nbd-fault-injector.py index 6b2d659dee..43f095ceef 100755 --- a/tests/qemu-iotests/nbd-fault-injector.py +++ b/tests/qemu-iotests/nbd-fault-injector.py @@ -48,10 +48,9 @@ import sys import socket import struct import collections -if sys.version_info.major >= 3: - import configparser -else: - import ConfigParser as configparser +import configparser + +assert sys.version_info >= (3,6) FAKE_DISK_SIZE = 8 * 1024 * 1024 * 1024 # 8 GB