From patchwork Fri Mar 15 14:23:52 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1057081 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="j8JQIaQA"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44LSWC56PKz9s00 for ; Sat, 16 Mar 2019 01:24:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729195AbfCOOYE (ORCPT ); Fri, 15 Mar 2019 10:24:04 -0400 Received: from mail-wr1-f67.google.com ([209.85.221.67]:37749 "EHLO mail-wr1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729063AbfCOOYD (ORCPT ); Fri, 15 Mar 2019 10:24:03 -0400 Received: by mail-wr1-f67.google.com with SMTP id y15so9796951wro.4 for ; Fri, 15 Mar 2019 07:24:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=KdqDkYrTDEqN9vakI2bBqUBOD/OCU+61ucnMbJPmp4s=; b=j8JQIaQAcDYp/hrniE3SlWhBVdcw1ZqCWLjKr0/Ak0tqUQlouW+DZxDQPG0/7qgwAT KjeO+sZYPF7lEEfPhUjTFHANi1QD55Xtag2L5IgvM+fh42UQVDyQeEkGNTQtwQcEBJK9 XWxofGZXydpFXng49gxtjTXN2ftNce5AQFa3BvJp3OIdO8ziWGriOM7m4qgVDG2uH+5J Z2eLq1qlsfJef8BnAcb879uO9UvWfIBrP4AP4FYJ60cpTteNBrJagHcIb7BEYujjmNr5 6LXpPqOxof1TPKBMpNYV5UH7T6Va6jspeD7AngJ98VUk+t9g91eHTftVCyy7ociyM3TH flbw== 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=KdqDkYrTDEqN9vakI2bBqUBOD/OCU+61ucnMbJPmp4s=; b=e5apLKZA5/XIGSx3RMMObyg5P7SnqlqDhTx0K5XYSkLff+h8yskh1jfEeQ5GN5LFql yodWkcwZWW1Aqrt6leSbIX9BaGNqpQSmR4srTAQRSMfL32Fii/ejUng+80WjzI+3nmu7 69ZzSvNPoLVsQwbHeoEaLAC4lqAuvNbww1d+w5GW8wtJQe5wshsMeLRuWMMJ/UUEtu9c Sewps9VF7wX/ovww3PeyPV4r7qiFAWP8sq9XewSSPrC1kISkPxQLKTjIrAWrtPAEU+kH mnRXiJcYoBOI3FO9yVUbAClV5P6gQlmuRYGtyjlGEB6VfLeypyyK/7SdWDHO2MFKBWzq tdtA== X-Gm-Message-State: APjAAAUgLb7M1VQ5luyniXABPpW+OzbQVcY/w4fi2umOU5Bix9kCnqvL zgOG/4XcgNc0CsWjPgvB2ssDMg== X-Google-Smtp-Source: APXvYqzMtNTz/9nPKGN6u58L/2yAFvO64IwpPliqghmrfdRjpLcKe97hYUILd1MtdTwRnoodaRrlHQ== X-Received: by 2002:a5d:6252:: with SMTP id m18mr2519314wrv.199.1552659842045; Fri, 15 Mar 2019 07:24:02 -0700 (PDT) Received: from localhost.localdomain (aputeaux-684-1-31-143.w90-86.abo.wanadoo.fr. [90.86.86.143]) by smtp.gmail.com with ESMTPSA id v18sm3267920wrr.90.2019.03.15.07.24.00 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 07:24:01 -0700 (PDT) From: Bartosz Golaszewski To: Anders Roxell Cc: linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [libgpiod][PATCH 1/2] tests: enable installing tests to bindir Date: Fri, 15 Mar 2019 15:23:52 +0100 Message-Id: <20190315142353.17264-2-brgl@bgdev.pl> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315142353.17264-1-brgl@bgdev.pl> References: <20190315142353.17264-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Anders Roxell Add an enable option to configure that allows to install the testing binary to /bindir. Signed-off-by: Anders Roxell [Bartosz: trimmed the patch to fit the new approach] Signed-off-by: Bartosz Golaszewski --- configure.ac | 7 +++++++ tests/Makefile.am | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/configure.ac b/configure.ac index 4adff7b..8a9b81d 100644 --- a/configure.ac +++ b/configure.ac @@ -107,6 +107,13 @@ then AC_CHECK_HEADERS([sys/signalfd.h], [], [HEADER_NOT_FOUND_TOOLS([sys/signalfd.h])]) fi +AC_ARG_ENABLE([install-tests], + [AC_HELP_STRING([--enable-install-tests], + [enable install tests [default=no]])], + [if test "x$enableval" = xyes; then with_install_tests=true; with_tests=true; fi], + [with_install_tests=false]) +AM_CONDITIONAL([WITH_INSTALL_TESTS], [test "x$with_install_tests" = xtrue]) + AC_ARG_ENABLE([tests], [AC_HELP_STRING([--enable-tests], [enable libgpiod tests [default=no]])], diff --git a/tests/Makefile.am b/tests/Makefile.am index a6593b9..4d1e6d5 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -11,7 +11,11 @@ AM_CFLAGS += -Wall -Wextra -g $(KMOD_CFLAGS) $(UDEV_CFLAGS) AM_LDFLAGS = -pthread LDADD = $(top_builddir)/lib/libgpiod.la $(KMOD_LIBS) $(UDEV_LIBS) +if WITH_INSTALL_TESTS +bin_PROGRAMS = gpiod-test +else check_PROGRAMS = gpiod-test +endif gpiod_test_SOURCES = gpiod-test.c \ gpiod-test.h \ From patchwork Fri Mar 15 14:23:53 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bartosz Golaszewski X-Patchwork-Id: 1057082 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=linux-gpio-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=bgdev.pl Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=bgdev-pl.20150623.gappssmtp.com header.i=@bgdev-pl.20150623.gappssmtp.com header.b="EkL9mT7R"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44LSWD3W0Kz9s6w for ; Sat, 16 Mar 2019 01:24:08 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729063AbfCOOYG (ORCPT ); Fri, 15 Mar 2019 10:24:06 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:39239 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728914AbfCOOYG (ORCPT ); Fri, 15 Mar 2019 10:24:06 -0400 Received: by mail-wr1-f68.google.com with SMTP id p8so9798310wrq.6 for ; Fri, 15 Mar 2019 07:24:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bgdev-pl.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=X3lNOrgbBpwUabo88PYB+yfQnA/PLVBtBnkMvIcCzn4=; b=EkL9mT7Rx/a7jyJMEomX2RS3gIPsMe/Napg7Ci43w/UleEsEqc2XR1A9hX/pDVqIAl ZAoIKqo/YS0v1rKu+e7fxDgGCYmcV1vAtlMxLa/GLpi4gqMkcw9EreLKtI6m/6HBHe2l iGlt5ddi/KLWEhGpoMaktrTry86D3GZ4e8YiNXTYS3yBoLi6+RZWiIi6OE6THa0eblXu tq1ZmAWngnMvyoDENt5uC0L6cKrom4epby1GjqAlOVwOeDl82NowjDCvpiAflfXhYNaI 5WQg+WBMOWP1B4PecgrNVI8DJdpU4UFnWjy/gzyeI+8nlaspCsVFIfeRTS8TFkLxSg6p VcKw== 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=X3lNOrgbBpwUabo88PYB+yfQnA/PLVBtBnkMvIcCzn4=; b=R5W5tGOj5Pf20KVlVcMH1X6L/uqS0vqxHE5FrD7mqXrwUDKKb/4xIpAWGxGpNjzaca SPg3FPDS4cQTaqfQOV1LoGy5rZVnS3rscWBTcprcnNnA/08CIDF/O67azIPF5UniNl4C 8lcBigxgNiifAYDKHYoZf3kkVIXuWskIq+oG4sEwEZpPHG1qfrDamOmkpX6fxbm8n+oZ Yvva4Gmaz9y3gss2wFAeg0Fa1SJ/iRrRWhW5C6nWCMjVIbYbloUvHXOtvlS35KS3ibmi fLqnkAa/yZOzzcNdYpRMEYwxfpc3AH6afLh8OJQa9czR0tD2sdltbH2ydG0Ah6NQRlWa yAPw== X-Gm-Message-State: APjAAAUaDlOEK6brehqQKgcmhsN0MMtSFrahMNfMQQgsZTiLGgTaTYgK ycW9i4MI1AzXwx8QOk7CAE6LIw== X-Google-Smtp-Source: APXvYqzU2UXuFGe5EsGPWc08ceUOGTfXOkAUaGZq6yYWHRbaPMdORYT7leCQHl/7lo1J/1BtWEX8xg== X-Received: by 2002:adf:eb0a:: with SMTP id s10mr1113898wrn.242.1552659844265; Fri, 15 Mar 2019 07:24:04 -0700 (PDT) Received: from localhost.localdomain (aputeaux-684-1-31-143.w90-86.abo.wanadoo.fr. [90.86.86.143]) by smtp.gmail.com with ESMTPSA id v18sm3267920wrr.90.2019.03.15.07.24.02 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 15 Mar 2019 07:24:02 -0700 (PDT) From: Bartosz Golaszewski To: Anders Roxell Cc: linux-gpio@vger.kernel.org, Bartosz Golaszewski Subject: [libgpiod][PATCH 2/2] tests: look for gpio-tools in more places Date: Fri, 15 Mar 2019 15:23:53 +0100 Message-Id: <20190315142353.17264-3-brgl@bgdev.pl> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190315142353.17264-1-brgl@bgdev.pl> References: <20190315142353.17264-1-brgl@bgdev.pl> MIME-Version: 1.0 Sender: linux-gpio-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org From: Bartosz Golaszewski Currently we only support running the test cases for gpio-tools from the top-level source directory. Some users want to install the test executable and run the tests from other locations (/bin, /usr/bin or custom path). This patch makes the test suite look in the source tree path first, then check the directory in which the program resides and last iterate over all directories in $PATH. Cc: Anders Roxell Signed-off-by: Bartosz Golaszewski --- tests/gpiod-test.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/tests/gpiod-test.c b/tests/gpiod-test.c index 4c51f4a..7c7b54c 100644 --- a/tests/gpiod-test.c +++ b/tests/gpiod-test.c @@ -449,14 +449,48 @@ static void gpiotool_proc_dup_fds(int in_fd, int out_fd, int err_fd) static char *gpiotool_proc_get_path(const char *tool) { - char *path, *progpath, *progdir; + char *progpath, *progdir, *toolpath, *pathenv, *tok; + /* + * First check if we're running the tool from the top source + * directory. + */ progpath = xstrdup(program_invocation_name); progdir = dirname(progpath); - path = xappend(NULL, "%s/../../tools/%s", progdir, tool); + + toolpath = xappend(NULL, "%s/../../tools/%s", progdir, tool); + if (access(toolpath, R_OK | X_OK) == 0) + goto out; + free(toolpath); + + /* Is the tool in the same directory maybe? */ + toolpath = xappend(NULL, "%s/%s", progdir, tool); + if (access(toolpath, R_OK | X_OK) == 0) + goto out; + free(toolpath); free(progpath); - return path; + /* Next iterate over directories in $PATH. */ + pathenv = getenv("PATH"); + if (!pathenv) + return NULL; + + progpath = xstrdup(pathenv); + tok = strtok(progpath, ":"); + while (tok) { + toolpath = xappend(NULL, "%s/%s", tok, tool); + if (access(toolpath, R_OK) == 0) + goto out; + + free(toolpath); + tok = strtok(NULL, ":"); + } + + toolpath = NULL; + +out: + free(progpath); + return toolpath; } static NORETURN void gpiotool_proc_exec(const char *path, va_list va)