From patchwork Fri Oct 23 09:25:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Yufen.Mo" X-Patchwork-Id: 81913 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 681BAA04DE; Fri, 23 Oct 2020 11:30:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 38442A900; Fri, 23 Oct 2020 11:30:29 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 6E5117DF8 for ; Fri, 23 Oct 2020 11:30:27 +0200 (CEST) IronPort-SDR: PTgauyTohs/m3w0OZl5mumrO6YVEl6GqsBzJ6rd+78lHf6IHxIBcRI+W/w9wgI1lv1reRPs9X/ JY94S3P6M9fQ== X-IronPort-AV: E=McAfee;i="6000,8403,9782"; a="146942775" X-IronPort-AV: E=Sophos;i="5.77,407,1596524400"; d="scan'208";a="146942775" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Oct 2020 02:30:22 -0700 IronPort-SDR: GSphy7ZrTvnlhVQfVXcJQoOEZm4TRApGsSvVbtO7VcT7TYGA2p4opld2hODbm8YRt5Mnp10bGc C6X9ijTl0m/w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.77,407,1596524400"; d="scan'208";a="523445826" Received: from dpdk-moyufen06.sh.intel.com ([10.67.116.208]) by fmsmga006.fm.intel.com with ESMTP; 23 Oct 2020 02:30:20 -0700 From: yufengmx To: dts@dpdk.org, lijuan.tu@intel.com, lihongx.ma@intel.com Cc: yufengmx Date: Fri, 23 Oct 2020 17:25:47 +0800 Message-Id: <20201023092549.33439-2-yufengx.mo@intel.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20201023092549.33439-1-yufengx.mo@intel.com> References: <20201023092549.33439-1-yufengx.mo@intel.com> MIME-Version: 1.0 Subject: [dts] [PATCH V5 1/3] framework: check the python version X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dts-bounces@dpdk.org Sender: "dts" implement a method to check the python version of tester and the server that run dts. If the version is lower than 3.6.9, print a warning message. Signed-off-by: yufengmx --- framework/utils.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/framework/utils.py b/framework/utils.py index e74e6c5..6084ea6 100644 --- a/framework/utils.py +++ b/framework/utils.py @@ -32,6 +32,7 @@ import json # json format import re import os +import sys import inspect import socket import struct @@ -280,3 +281,30 @@ def get_backtrace_object(file_name, obj_name): obj = getattr(frame.f_locals['self'], obj_name, None) return obj + + +def check_crb_python_version(crb): + cmd = 'python3 -V' + out = crb.send_expect(cmd, '#', 5) + pat = "Python (\d+).(\d+).(\d+)" + result = re.findall(pat, out) + if not result or \ + int(result[0][0]) < 3 or \ + (int(result[0][0]) == 3 and int(result[0][1]) < 6) or \ + (int(result[0][0]) == 3 and int(result[0][1]) == 6 and int(result[0][2]) < 9): + crb.logger.warning( + ("WARNING: Tester node python version is lower than python 3.6, " + "it is deprecated for use in DTS, " + "and will not work in future releases.")) + crb.logger.warning("Please use Python >= 3.6.9 instead") + + +def check_dts_python_version(): + if sys.version_info.major < 3 or \ + (sys.version_info.major == 3 and sys.version_info.minor < 6) or \ + (sys.version_info.major == 3 and sys.version_info.minor == 6 and sys.version_info.micro < 9): + print(RED( + ("WARNING: Dts running node python version is lower than python 3.6, " + "it is deprecated for use in DTS, " + "and will not work in future releases.")), file=sys.stderr) + print(RED("Please use Python >= 3.6.9 instead"), file=sys.stderr)