From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 3F1851B169 for ; Wed, 20 Dec 2017 12:16:32 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 20 Dec 2017 03:16:31 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.45,431,1508828400"; d="scan'208";a="4293899" Received: from silpixa00398672.ir.intel.com ([10.237.223.128]) by orsmga008.jf.intel.com with ESMTP; 20 Dec 2017 03:16:29 -0800 From: Harry van Haaren To: dev@dpdk.org Cc: bruce.richardson@intel.com, Harry van Haaren Date: Wed, 20 Dec 2017 11:16:31 +0000 Message-Id: <1513768592-112485-2-git-send-email-harry.van.haaren@intel.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1513768592-112485-1-git-send-email-harry.van.haaren@intel.com> References: <1513598038-148115-1-git-send-email-harry.van.haaren@intel.com> <1513768592-112485-1-git-send-email-harry.van.haaren@intel.com> Subject: [dpdk-dev] [PATCH v2 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: , X-List-Received-Date: Wed, 20 Dec 2017 11:16:32 -0000 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; -- 2.7.4