From patchwork Mon Dec 18 11:53:57 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Van Haaren, Harry" X-Patchwork-Id: 32356 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 58D7E1B00C; Mon, 18 Dec 2017 12:53:54 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 1175E271 for ; Mon, 18 Dec 2017 12:53:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 18 Dec 2017 03:53:51 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,422,1508828400"; d="scan'208";a="187968893" Received: from silpixa00398672.ir.intel.com ([10.237.223.128]) by fmsmga006.fm.intel.com with ESMTP; 18 Dec 2017 03:53:50 -0800 From: Harry van Haaren To: dev@dpdk.org Cc: bruce.richardson@intel.com, Harry van Haaren Date: Mon, 18 Dec 2017 11:53:57 +0000 Message-Id: <1513598038-148115-2-git-send-email-harry.van.haaren@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513598038-148115-1-git-send-email-harry.van.haaren@intel.com> References: <1513598038-148115-1-git-send-email-harry.van.haaren@intel.com> Subject: [dpdk-dev] [PATCH 1/2] test: use env variable to run test if set X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This commit paves the way for the meson tests in the next patch. With this patch the test binary checks the DPDK_TEST environment variable and if set, the contents of the var are inserted on the test app command line, and run. This allows testing of various different unit tests without manual interaction with the RTE>> test prompt, instead automating it using the DPDK_TEST environment variable. If the DPDK_TEST env variable is not set, or has zero lenght, the test app behaves as normal. Signed-off-by: Harry van Haaren --- test/test/test.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/test/test/test.c b/test/test/test.c index 0e6ff7c..fb4d475 100644 --- a/test/test/test.c +++ b/test/test/test.c @@ -102,6 +102,8 @@ do_recursive_call(void) return -1; } +static int last_test_result; + int main(int argc, char **argv) { @@ -140,7 +142,27 @@ main(int argc, char **argv) if (cl == NULL) { return -1; } - cmdline_interact(cl); + + char *dpdk_test = getenv("DPDK_TEST"); + if (dpdk_test && strlen(dpdk_test)) { + char buf[1024]; + snprintf(buf, sizeof(buf), "%s\n", dpdk_test); + if (cmdline_in(cl, buf, strlen(buf)) < 0) { + printf("error on cmdline input\n"); + return -1; + } + + /* check the last unit test suite return, and error out if + * it failed - this causes Meson to pick up the failure. + */ + if (last_test_result) { + cmdline_stdin_exit(cl); + exit(-1); + } + + } else { + cmdline_interact(cl); + } cmdline_stdin_exit(cl); #endif @@ -231,6 +253,8 @@ unit_test_suite_runner(struct unit_test_suite *suite) printf(" + Tests Failed : %2d\n", failed); printf(" + ------------------------------------------------------- +\n"); + last_test_result = failed; + if (failed) return -1;