From patchwork Wed Aug 5 19:27:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 1341394 X-Patchwork-Delegate: sjg@chromium.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=2a01:238:438b:c500:173d:9f52:ddab:ee01; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.a=rsa-sha256 header.s=google header.b=A08KNL9a; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [IPv6:2a01:238:438b:c500:173d:9f52:ddab:ee01]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4BMM9M631kz9sTM for ; Thu, 6 Aug 2020 05:28:23 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 83C7482176; Wed, 5 Aug 2020 21:28:03 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=chromium.org header.i=@chromium.org header.b="A08KNL9a"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id AF46E8217D; Wed, 5 Aug 2020 21:27:58 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,SPF_HELO_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.2 Received: from mail-oi1-x22c.google.com (mail-oi1-x22c.google.com [IPv6:2607:f8b0:4864:20::22c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id D6B958216F for ; Wed, 5 Aug 2020 21:27:55 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=chromium.org Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=sjg@chromium.org Received: by mail-oi1-x22c.google.com with SMTP id e6so20413259oii.4 for ; Wed, 05 Aug 2020 12:27:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=g1zoANeAj++X5ze/Fd733rg5Lihoi52injHZXj7UFio=; b=A08KNL9arpjGvnAkTVTK5Ca/Oma5/zJGK7QAyZFOuyHb6R/ofAbh2SD/GUpUFJiUAL eGFz38cFzROAdALi6PRs3uJpgoOxA5Kr4fYa5V2PIwOt1G2qVjzKMxx15DZtLMsuxhqZ hsC5zMmwKK7RskRZaoJpZrgibGa8L9cdmCgY0= 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=g1zoANeAj++X5ze/Fd733rg5Lihoi52injHZXj7UFio=; b=KXsx8IoIRdsELc7vS4YYZrBrz4HmMkB3getgTaQ+cTkUhhr1Kg7GmDOZZb3pzyNznr Lnz6Ux5lXRAmzjIk54O8pVdLt1K08AvBYFQYDVErVovfKNYpgAX6EpfOMjkC79tl9AS5 VQzDu8lfH8QRKkTWx99c/wDuV/U+zsZhdDoHjygvXH1dlA3RAT/uNy2W6AVZ2WdQyPhD 6wExJN6XwxU4bnTUGDJ+HEvDIl+7+hFRDmdnOvKGSyRyuDYz+DwbXh46Z1a/AT9U9+2a 546RJvbGXLsBa8Z6vAtH+T29VBUaLhReqQcW0H1H/sddlPrvSzFUwbvr6+HGgcthFEWf PxsQ== X-Gm-Message-State: AOAM531hiMUlhhNN8Y3XKaRF47/pPKY+9PbxKtYxSakqT1yic95zKzsu 8GEJ5FLWgHw9X6Sa9NXhqBsfRLyOzj6bjQ== X-Google-Smtp-Source: ABdhPJxUiXHXwYaVsY7VlxReZLLg+GZNtFfN41UFwypaRkn/Z9HWj8Mx0p4oRi/rUzp4dMGX+8PZTA== X-Received: by 2002:aca:72c4:: with SMTP id p187mr3892696oic.141.1596655674410; Wed, 05 Aug 2020 12:27:54 -0700 (PDT) Received: from localhost.localdomain (c-73-14-175-90.hsd1.co.comcast.net. [73.14.175.90]) by smtp.gmail.com with ESMTPSA id v36sm629518ooi.46.2020.08.05.12.27.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Aug 2020 12:27:54 -0700 (PDT) From: Simon Glass To: U-Boot Mailing List Cc: Simon Glass Subject: [PATCH 1/4] binman: Move GetEntryModules() to control Date: Wed, 5 Aug 2020 13:27:46 -0600 Message-Id: <20200805132745.1.Ic9a97758c121b063de25e903fcb0f66ebd9f51f5@changeid> X-Mailer: git-send-email 2.28.0.163.g6104cc2f0b6-goog In-Reply-To: <20200805192749.893661-1-sjg@chromium.org> References: <20200805192749.893661-1-sjg@chromium.org> MIME-Version: 1.0 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.3 at phobos.denx.de X-Virus-Status: Clean When binman is installed its main program is in a different directory to its modules. This means that __file__ is different and we cannot use it to obtain the path to etype/ from main.py To fix this, move the function to the 'control' module, since it is installed with all the other modules, including the etype/ directory. Signed-off-by: Simon Glass Signed-off-by: Simon Glass --- tools/binman/control.py | 13 +++++++++++++ tools/binman/ftest.py | 5 ++--- tools/binman/main.py | 16 ++-------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/tools/binman/control.py b/tools/binman/control.py index 343b0a0c35b..69c36ed6582 100644 --- a/tools/binman/control.py +++ b/tools/binman/control.py @@ -6,6 +6,7 @@ # from collections import OrderedDict +import glob import os import sys from patman import tools @@ -51,6 +52,18 @@ def _FindBinmanNode(dtb): return node return None +def GetEntryModules(include_testing=True): + """Get a set of entry class implementations + + Returns: + Set of paths to entry class filenames + """ + our_path = os.path.dirname(os.path.realpath(__file__)) + glob_list = glob.glob(os.path.join(our_path, 'etype/*.py')) + return set([os.path.splitext(os.path.basename(item))[0] + for item in glob_list + if include_testing or '_testing' not in item]) + def WriteEntryDocs(modules, test_missing=None): """Write out documentation for all entries diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py index bf7f59fb841..fedcc1ada1b 100644 --- a/tools/binman/ftest.py +++ b/tools/binman/ftest.py @@ -24,7 +24,6 @@ from binman import control from binman import elf from binman import elf_test from binman import fmap_util -from binman import main from binman import state from dtoc import fdt from dtoc import fdt_util @@ -1440,14 +1439,14 @@ class TestFunctional(unittest.TestCase): def testEntryDocs(self): """Test for creation of entry documentation""" with test_util.capture_sys_output() as (stdout, stderr): - control.WriteEntryDocs(main.GetEntryModules()) + control.WriteEntryDocs(control.GetEntryModules()) self.assertTrue(len(stdout.getvalue()) > 0) def testEntryDocsMissing(self): """Test handling of missing entry documentation""" with self.assertRaises(ValueError) as e: with test_util.capture_sys_output() as (stdout, stderr): - control.WriteEntryDocs(main.GetEntryModules(), 'u_boot') + control.WriteEntryDocs(control.GetEntryModules(), 'u_boot') self.assertIn('Documentation is missing for modules: u_boot', str(e.exception)) diff --git a/tools/binman/main.py b/tools/binman/main.py index e543a7d06a7..3e463b0119b 100755 --- a/tools/binman/main.py +++ b/tools/binman/main.py @@ -10,7 +10,6 @@ """See README for more information""" from distutils.sysconfig import get_python_lib -import glob import os import site import sys @@ -78,20 +77,9 @@ def RunTests(debug, verbosity, processes, test_preserve_dirs, args, toolpath): return test_util.ReportResult('binman', test_name, result) -def GetEntryModules(include_testing=True): - """Get a set of entry class implementations - - Returns: - Set of paths to entry class filenames - """ - glob_list = glob.glob(os.path.join(our_path, 'etype/*.py')) - return set([os.path.splitext(os.path.basename(item))[0] - for item in glob_list - if include_testing or '_testing' not in item]) - def RunTestCoverage(toolpath): """Run the tests and check that we get 100% coverage""" - glob_list = GetEntryModules(False) + glob_list = control.GetEntryModules(False) all_set = set([os.path.splitext(os.path.basename(item))[0] for item in glob_list if '_testing' not in item]) extra_args = '' @@ -127,7 +115,7 @@ def RunBinman(args): args.toolpath) elif args.cmd == 'entry-docs': - control.WriteEntryDocs(GetEntryModules()) + control.WriteEntryDocs(control.GetEntryModules()) else: try: