[dpdk-dev] app/test: disable filtering with stripped binary

Message ID 1468947230-22874-1-git-send-email-thomas.monjalon@6wind.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Thomas Monjalon July 19, 2016, 4:53 p.m. UTC
  The unavailable tests are filtered out by autotest by looking for
the symbols in the binary:

PCI autotest:                  Skipped [Not Available]       [00m 00s]
Malloc autotest:               Success                       [00m 00s]

It results to skip everything if the binary has no symbol (stripped):

PCI autotest:                  Skipped [Not Available]       [00m 00s]
Malloc autotest:               Skipped [Not Available]       [00m 00s]

This case is handled by getting back to the old behaviour if the binary
has no symbol information:

PCI autotest:                  Fail [Not found]              [00m 00s]
Malloc autotest:               Success                       [00m 00s]

Fixes: d553c8f2b1a2 ("app/test: filter out unavailable tests")

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 app/test/autotest_runner.py | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)
  

Comments

Olivier Matz July 21, 2016, 9:07 a.m. UTC | #1
On 07/19/2016 06:53 PM, Thomas Monjalon wrote:
> The unavailable tests are filtered out by autotest by looking for
> the symbols in the binary:
> 
> PCI autotest:                  Skipped [Not Available]       [00m 00s]
> Malloc autotest:               Success                       [00m 00s]
> 
> It results to skip everything if the binary has no symbol (stripped):
> 
> PCI autotest:                  Skipped [Not Available]       [00m 00s]
> Malloc autotest:               Skipped [Not Available]       [00m 00s]
> 
> This case is handled by getting back to the old behaviour if the binary
> has no symbol information:
> 
> PCI autotest:                  Fail [Not found]              [00m 00s]
> Malloc autotest:               Success                       [00m 00s]
> 
> Fixes: d553c8f2b1a2 ("app/test: filter out unavailable tests")
> 
> Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>

Tested-by: Olivier Matz <olivier.matz@6wind.com>
  
Thomas Monjalon July 21, 2016, 9:59 p.m. UTC | #2
2016-07-21 11:07, Olivier Matz:
> On 07/19/2016 06:53 PM, Thomas Monjalon wrote:
> > The unavailable tests are filtered out by autotest by looking for
> > the symbols in the binary:
> > 
> > PCI autotest:                  Skipped [Not Available]       [00m 00s]
> > Malloc autotest:               Success                       [00m 00s]
> > 
> > It results to skip everything if the binary has no symbol (stripped):
> > 
> > PCI autotest:                  Skipped [Not Available]       [00m 00s]
> > Malloc autotest:               Skipped [Not Available]       [00m 00s]
> > 
> > This case is handled by getting back to the old behaviour if the binary
> > has no symbol information:
> > 
> > PCI autotest:                  Fail [Not found]              [00m 00s]
> > Malloc autotest:               Success                       [00m 00s]
> > 
> > Fixes: d553c8f2b1a2 ("app/test: filter out unavailable tests")
> > 
> > Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
> 
> Tested-by: Olivier Matz <olivier.matz@6wind.com>

Applied
  

Patch

diff --git a/app/test/autotest_runner.py b/app/test/autotest_runner.py
index bd99e19..21d3be2 100644
--- a/app/test/autotest_runner.py
+++ b/app/test/autotest_runner.py
@@ -107,8 +107,10 @@  def run_test_group(cmdline, test_group):
 
 	# parse the binary for available test commands
 	binary = cmdline.split()[0]
-	symbols = subprocess.check_output(['nm', binary]).decode('utf-8')
-	avail_cmds = re.findall('test_register_(\w+)', symbols)
+	stripped = 'not stripped' not in subprocess.check_output(['file', binary])
+	if not stripped:
+		symbols = subprocess.check_output(['nm', binary]).decode('utf-8')
+		avail_cmds = re.findall('test_register_(\w+)', symbols)
 
 	# run all tests in test group
 	for test in test_group["Tests"]:
@@ -129,7 +131,7 @@  def run_test_group(cmdline, test_group):
 			print >>logfile, "\n%s %s\n" % ("-"*20, test["Name"])
 
 			# run test function associated with the test
-			if test["Command"] in avail_cmds:
+			if stripped or test["Command"] in avail_cmds:
 				result = test["Func"](child, test["Command"])
 			else:
 				result = (0, "Skipped [Not Available]")