Message ID | 20210114164537.28936-1-stephen@networkplumber.org (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Series | test: don't break terminal settings when running tests | expand |
Context | Check | Description |
---|---|---|
ci/iol-testing | fail | Testing issues |
ci/iol-testing | warning | Testing issues |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-mellanox-Functional | success | Functional Testing PASS |
ci/iol-mellanox-Functional | success | Functional Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-intel-Functional | success | Functional Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/intel-Testing | success | Testing PASS |
ci/iol-broadcom-Functional | success | Functional Testing PASS |
ci/iol-broadcom-Functional | success | Functional Testing PASS |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | success | coding style OK |
> From: Stephen Hemminger <stephen@networkplumber.org> > Sent: Thursday, January 14, 2021 4:46 PM > To: Richardson, Bruce <bruce.richardson@intel.com>; Van Haaren, Harry > <harry.van.haaren@intel.com>; De Lara Guarch, Pablo > <pablo.de.lara.guarch@intel.com> > Cc: stable@dpdk.org; dev@dpdk.org; Stephen Hemminger > <stephen@networkplumber.org> > Subject: [PATCH] test: don't break terminal settings when running tests > > When running one test (via DPDK_TEST) the test program > would leave the terminal in raw mode. This was because > it was setting up cmdline to do interactive input. > > The fix is to use cmdline_new() for the interactive > case. > > This also fixes a memory leak because the test > runner was never calling cmdline_free(). > > Fixes: 9b848774a5dc ("test: use env variable to run tests") > Cc: harry.van.haaren@intel.com > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Tested-by: Harry van Haaren <harry.van.haaren@intel.com>
14/01/2021 18:01, Van Haaren, Harry: > > From: Stephen Hemminger <stephen@networkplumber.org> > > Sent: Thursday, January 14, 2021 4:46 PM > > To: Richardson, Bruce <bruce.richardson@intel.com>; Van Haaren, Harry > > <harry.van.haaren@intel.com>; De Lara Guarch, Pablo > > <pablo.de.lara.guarch@intel.com> > > Cc: stable@dpdk.org; dev@dpdk.org; Stephen Hemminger > > <stephen@networkplumber.org> > > Subject: [PATCH] test: don't break terminal settings when running tests > > > > When running one test (via DPDK_TEST) the test program > > would leave the terminal in raw mode. This was because > > it was setting up cmdline to do interactive input. > > > > The fix is to use cmdline_new() for the interactive > > case. > > > > This also fixes a memory leak because the test > > runner was never calling cmdline_free(). > > > > Fixes: 9b848774a5dc ("test: use env variable to run tests") > > Cc: harry.van.haaren@intel.com > > Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> > > Tested-by: Harry van Haaren <harry.van.haaren@intel.com> Applied, thanks
diff --git a/app/test/test.c b/app/test/test.c index ba0b0309b561..624dd48042f8 100644 --- a/app/test/test.c +++ b/app/test/test.c @@ -164,29 +164,38 @@ main(int argc, char **argv) #ifdef RTE_LIB_CMDLINE - cl = cmdline_stdin_new(main_ctx, "RTE>>"); - if (cl == NULL) { - ret = -1; - goto out; - } - char *dpdk_test = getenv("DPDK_TEST"); if (dpdk_test && strlen(dpdk_test)) { char buf[1024]; + + cl = cmdline_new(main_ctx, "RTE>>", 0, 1); + if (cl == NULL) { + ret = -1; + goto out; + } + snprintf(buf, sizeof(buf), "%s\n", dpdk_test); if (cmdline_in(cl, buf, strlen(buf)) < 0) { printf("error on cmdline input\n"); + + ret = -1; + } else { + ret = last_test_result; + } + cmdline_free(cl); + goto out; + } else { + /* if no DPDK_TEST env variable, go interactive */ + cl = cmdline_stdin_new(main_ctx, "RTE>>"); + if (cl == NULL) { ret = -1; goto out; } + cmdline_interact(cl); cmdline_stdin_exit(cl); - ret = last_test_result; - goto out; + cmdline_free(cl); } - /* if no DPDK_TEST env variable, go interactive */ - cmdline_interact(cl); - cmdline_stdin_exit(cl); #endif ret = 0;
When running one test (via DPDK_TEST) the test program would leave the terminal in raw mode. This was because it was setting up cmdline to do interactive input. The fix is to use cmdline_new() for the interactive case. This also fixes a memory leak because the test runner was never calling cmdline_free(). Fixes: 9b848774a5dc ("test: use env variable to run tests") Cc: harry.van.haaren@intel.com Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> revise test bugfix --- app/test/test.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-)