From patchwork Tue Apr 18 23:19:08 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Pablo M. Bermudo Garay" X-Patchwork-Id: 752338 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3w7Rb15cs6z9s2x for ; Thu, 20 Apr 2017 02:02:05 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="Sl2TWK64"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S937162AbdDSQCF (ORCPT ); Wed, 19 Apr 2017 12:02:05 -0400 Received: from mail-wr0-f196.google.com ([209.85.128.196]:32909 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S937056AbdDSQCE (ORCPT ); Wed, 19 Apr 2017 12:02:04 -0400 Received: by mail-wr0-f196.google.com with SMTP id l28so3808937wre.0 for ; Wed, 19 Apr 2017 09:02:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=HUL326r9gZdW8To3MJoAYlak+AfvDzwpdjl2r7leDgQ=; b=Sl2TWK64+zEVr0r452dP/Fz3OXw/VwIUN/PtDXUgNNO6cjD6Y6UxhlxRyT+AHmxxL0 ruo9/Exd23UnK4eZVQwH223xa3Q8veqETNE7czNYfYGeY6mzGcP0vSpLx4DAHborQRkQ XKciDH0HVTltV/2r/zJ8X8YgtuJhkt3+X4GPGx3YAc9nuzyZN1uYsjDfM+3WW6AWQvGa VI4mAqESGcp4v2WNthasEv+gi5Udkhxxy6U5zqzXao0XOkOp+gVrPckKZARJS7No7JgN BPpUQR0t/dgoUGJgpKK2s0/9Y+Mx1KNlnNOvvj5zVEd/vBVh3DXuBqB42VCgHlHfUkSx Ju2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=HUL326r9gZdW8To3MJoAYlak+AfvDzwpdjl2r7leDgQ=; b=qDQrZa4UIiVCTnhov8DByxNu+/LHpWoorNE4ghN77DOdiNbiH6RzGeciN+fGEWOH8B iEARkPIlpfhoML8G6J3SY817x5H6jYZLCOn0d7n48tSOs96dmZAffA+pxR89DGPkXuJr B7NOxJHZIyQpVdg5eoTYLNitafXV87DIt740hqU+ZZZL963qTRj1g266++u/F9J7Zl97 hluJLpYVVA7OIKa8O5YF5N1CF1u71xxo+yngB2PHVq7YFmNHCigG+eIm682spcBH7tXG UiA3oX3kWbDR7qig/Vz67aSLOK+GQcMdUtcEMdWXQm9Xr7brrfAMAvkBQ8Zzot7gyQTW mmBQ== X-Gm-Message-State: AN3rC/4G5sSYqtdqyUIH1+vn6kkXS2ZCXMKett+v7rD4d2DNxNXifphG t8isvhKR/BFoylVc18E= X-Received: by 10.223.168.23 with SMTP id l23mr3443951wrc.185.1492617721979; Wed, 19 Apr 2017 09:02:01 -0700 (PDT) Received: from jessie.raw (sugus.eii.us.es. [150.214.142.245]) by smtp.gmail.com with ESMTPSA id l186sm4315202wmd.17.2017.04.19.09.02.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 19 Apr 2017 09:02:01 -0700 (PDT) From: "Pablo M. Bermudo Garay" To: netfilter-devel@vger.kernel.org Cc: "Pablo M. Bermudo Garay" Subject: [PATCH iptables 1/2] tests: xlate: remove python 3.5 dependency Date: Wed, 19 Apr 2017 01:19:08 +0200 Message-Id: <1492557549-578-1-git-send-email-pablombg@gmail.com> X-Mailer: git-send-email 2.1.4 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org This commit replaces subprocess.run (introduced in python 3.5) with subprocess.Popen (supported since the first version of python 3). Furthermore, the output has been improved when ip[6]tables-translate exits with non-zero return code. Signed-off-by: Pablo M. Bermudo Garay --- xlate-test.py | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/xlate-test.py b/xlate-test.py index 006289f..37760e9 100755 --- a/xlate-test.py +++ b/xlate-test.py @@ -4,8 +4,8 @@ import os import sys import shlex -import subprocess import argparse +from subprocess import Popen, PIPE keywords = ("iptables-translate", "ip6tables-translate") @@ -40,19 +40,25 @@ def run_test(name, payload): for line in payload: if line.startswith(keywords): - output = subprocess.run(shlex.split(line), stdout=subprocess.PIPE) - translation = output.stdout.decode("utf-8").rstrip(" \n") - expected = next(payload).rstrip(" \n") - if translation != expected: - result.append(red("Fail")) - result.append(magenta("src: ") + line.rstrip(" \n")) - result.append(magenta("exp: ") + expected) - result.append(magenta("res: ") + translation + "\n") + process = Popen(shlex.split(line), stdout=PIPE, stderr=PIPE) + (output, error) = process.communicate() + if process.returncode == 0: + translation = output.decode("utf-8").rstrip(" \n") + expected = next(payload).rstrip(" \n") + if translation != expected: + result.append(red("Fail")) + result.append(magenta("src: ") + line.rstrip(" \n")) + result.append(magenta("exp: ") + expected) + result.append(magenta("res: ") + translation + "\n") + test_passed = False + elif args.all: + result.append(green("Ok")) + result.append(magenta("src: ") + line.rstrip(" \n")) + result.append(magenta("res: ") + translation + "\n") + else: test_passed = False - elif args.all: - result.append(green("Ok")) - result.append(magenta("src: ") + line.rstrip(" \n")) - result.append(magenta("res: ") + translation + "\n") + result.append(red("Error: ") + "iptables-translate failure") + result.append(error.decode("utf-8")) if not test_passed or args.all: print("\n".join(result))