summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRadoslaw Biernacki <radoslaw.biernacki@linaro.org>2017-11-09 19:14:32 +0100
committerThomas Monjalon <thomas@monjalon.net>2017-11-12 04:15:54 +0100
commitf046826e765c2777fc2bfc32f992bee0eaef9811 (patch)
tree738e828ae02a642365cd5f5f12e1ee5b2536bc83
parent71330483a19303e5001ea70af80672cbe6cd881b (diff)
downloaddpdk-f046826e765c2777fc2bfc32f992bee0eaef9811.zip
dpdk-f046826e765c2777fc2bfc32f992bee0eaef9811.tar.gz
dpdk-f046826e765c2777fc2bfc32f992bee0eaef9811.tar.xz
test/memory: fix autotest parsing
This patch fixes three problems in memory autotest: - the regex for IOVA - missing validation of second and following output lines - propagation of error to consecutive tests - conversion base for mem size (hex indtead of dec) First fix is for changes introduced with IOVA, the regex was not updated which lead to unit test failure. Patch now also uses loop for line outputs processing to verify more than just one line. By this we also satisfy the pexpect() and scan the "Test OK"/"Test Failed" so in case of error all output lines are consumed and does not break the consecutive test (error does not propagate). Fixes: 7ba49d39f14c ("mem: rename segment address from physical to IOVA") Fixes: b4ce15aa2bc7 ("app/test: fix memory autotest") Signed-off-by: Radoslaw Biernacki <radoslaw.biernacki@linaro.org>
-rw-r--r--test/test/autotest_test_funcs.py37
1 files changed, 23 insertions, 14 deletions
diff --git a/test/test/autotest_test_funcs.py b/test/test/autotest_test_funcs.py
index 8da8fcd..15fcb7c 100644
--- a/test/test/autotest_test_funcs.py
+++ b/test/test/autotest_test_funcs.py
@@ -62,21 +62,30 @@ def dump_autotest(child, test_name):
def memory_autotest(child, test_name):
+ lines = 0
+ error = ''
child.sendline(test_name)
- regexp = "phys:0x[0-9a-f]*, len:([0-9]*), virt:0x[0-9a-f]*, " \
- "socket_id:[0-9]*"
- index = child.expect([regexp, pexpect.TIMEOUT], timeout=180)
- if index != 0:
- return -1, "Fail [Timeout]"
- size = int(child.match.groups()[0], 16)
- if size <= 0:
- return -1, "Fail [Bad size]"
- index = child.expect(["Test OK", "Test Failed",
- pexpect.TIMEOUT], timeout=10)
- if index == 1:
- return -1, "Fail"
- elif index == 2:
- return -1, "Fail [Timeout]"
+ while True:
+ regexp = "IOVA:0x[0-9a-f]*, len:([0-9]*), virt:0x[0-9a-f]*, " \
+ "socket_id:[0-9]*"
+ index = child.expect([regexp, "Test OK", "Test Failed",
+ pexpect.TIMEOUT], timeout=10)
+ if index == 3:
+ return -1, "Fail [Timeout]"
+ elif index == 1:
+ break
+ elif index == 2:
+ return -1, "Fail"
+ else:
+ lines = lines + 1
+ size = int(child.match.groups()[0], 10)
+ if size <= 0:
+ error = 'Bad size'
+
+ if lines <= 0:
+ return -1, "Fail [No entries]"
+ if error != '':
+ return -1, "Fail [{}]".format(error)
return 0, "Success"