DPDK patches and discussions
 help / color / mirror / Atom feed
From: Harry van Haaren <harry.van.haaren@intel.com>
To: dev@dpdk.org
Cc: bruce.richardson@intel.com,
	Harry van Haaren <harry.van.haaren@intel.com>
Subject: [dpdk-dev] [PATCH 1/2] test: use env variable to run test if set
Date: Mon, 18 Dec 2017 11:53:57 +0000	[thread overview]
Message-ID: <1513598038-148115-2-git-send-email-harry.van.haaren@intel.com> (raw)
In-Reply-To: <1513598038-148115-1-git-send-email-harry.van.haaren@intel.com>

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 <harry.van.haaren@intel.com>
---
 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

  reply	other threads:[~2017-12-18 11:53 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-18 11:53 [dpdk-dev] [PATCH 0/2] next-build: add test app to build Harry van Haaren
2017-12-18 11:53 ` Harry van Haaren [this message]
2017-12-18 13:50   ` [dpdk-dev] [PATCH 1/2] test: use env variable to run test if set Bruce Richardson
2017-12-18 14:59   ` Jerin Jacob
2017-12-18 15:24     ` Van Haaren, Harry
2017-12-18 15:41       ` Jerin Jacob
2017-12-18 11:53 ` [dpdk-dev] [PATCH 2/2] meson: add tests app to build Harry van Haaren
2017-12-18 13:55   ` Bruce Richardson
2017-12-18 15:24     ` Van Haaren, Harry
2017-12-20 10:23   ` Bruce Richardson
2017-12-18 13:57 ` [dpdk-dev] [PATCH 0/2] next-build: add test " Bruce Richardson
2017-12-18 15:24   ` Van Haaren, Harry
2017-12-20 11:16 ` [dpdk-dev] [PATCH v2 " Harry van Haaren
2017-12-20 11:16   ` [dpdk-dev] [PATCH v2 1/2] test: use env variable to run test if set Harry van Haaren
2017-12-20 11:47     ` Bruce Richardson
2017-12-20 11:16   ` [dpdk-dev] [PATCH v2 2/2] meson: add tests app to build Harry van Haaren
2017-12-20 11:57     ` Laatz, Kevin
2017-12-20 12:00       ` Bruce Richardson
2017-12-20 12:20     ` Bruce Richardson
2017-12-20 12:22   ` [dpdk-dev] [PATCH v2 0/2] next-build: add test " Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1513598038-148115-2-git-send-email-harry.van.haaren@intel.com \
    --to=harry.van.haaren@intel.com \
    --cc=bruce.richardson@intel.com \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).