From 688fb597f1770ae40a0d325c725177a566d1caf2 Mon Sep 17 00:00:00 2001 From: Vincent Hsu Date: Thu, 5 Sep 2013 13:40:04 +0800 Subject: openembedded/cyclictest: fix cyclictest test Signed-off-by: Vincent Hsu Acked-by: Fathi Boudra --- openembedded/cyclictest.yaml | 13 ++++++++++-- openembedded/scripts/cyclictest.py | 39 +++++++++++++++++++++++++++++++++++ openembedded/scripts/infinite_loop.py | 14 +++++++++++++ 3 files changed, 64 insertions(+), 2 deletions(-) create mode 100755 openembedded/scripts/cyclictest.py create mode 100755 openembedded/scripts/infinite_loop.py diff --git a/openembedded/cyclictest.yaml b/openembedded/cyclictest.yaml index 523633a..6632602 100644 --- a/openembedded/cyclictest.yaml +++ b/openembedded/cyclictest.yaml @@ -6,5 +6,14 @@ metadata: run: steps: - - "exec cyclictest -t50 -p 80 -i 10000 -n -d 86400 -a 1 > ~/cyclictest.log" - - "lava-test-case-attach ~/cyclictest.log text/plain" + - "fping -g 127.0.0.1 127.0.0.10 -t 100 -q -l &> /dev/null &" + - "./openembedded/scripts/infinite_loop.py 864300 &> /dev/null &" + - "cyclictest -t 50 -p 80 -n -a0 -q -D 86400 > ~/cyclictest.log" + - "cat ~/cyclictest.log | ./openembedded/scripts/cyclictest.py" + - "lava-test-run-attach ~/cyclictest.log text/plain" + - "killall calibrator infinite_loop.py fping" +parse: + pattern: "^test_case_id:(?P.+)\\s+result:(?P\\w+)\\s+measurement:(?P.+)\\s+units:(?P.+)" + fixupdict: + PASS: pass + FAIL: fail diff --git a/openembedded/scripts/cyclictest.py b/openembedded/scripts/cyclictest.py new file mode 100755 index 0000000..ba66013 --- /dev/null +++ b/openembedded/scripts/cyclictest.py @@ -0,0 +1,39 @@ +#!/usr/bin/python +import re +import sys +import os + +threshold = 10000 +pass_threshold = True +max_lentency = 0 + +#parse format: +# T:49 ( 4518) P:31 I:4243600 C: 2 Min: 8 Act: 8 Avg: 8 Max: 9 +parser = re.compile("(?P\d+)\D+(?P\d+)\D+(?P

\d+)\D+(?P\d+)\D+(?P\d+)\D+(?P\d+)\D+(?P\d+)\D+(?P\d+)\D+(?P\d+)") + +data = sys.stdin.readlines() + +if len(data) == 0: + print "test_case_id:Test program running result:fail measurement:0 units:none" +else: + print "test_case_id:Test program running result:pass measurement:0 units:none" + + for line in data: + result = parser.search(line) + if result is not None: + if int(result.group('Max')) > threshold: + pass_threshold = False + + if int(result.group('Avg')) > threshold: + pass_threshold = False + + if int(result.group('Min')) > threshold: + pass_threshold = False + + if int(result.group('Max')) > max_lentency: + max_lentency = int(result.group('Max')) + + if pass_threshold is True: + print "test_case_id:Latency bound (<10ms) result:pass measurement:" + str(max_lentency) + " units:usecs" + else: + print "test_case_id:Latency bound (<10ms) result:fail measurement:" + str(max_lentency) + " units:usecs" diff --git a/openembedded/scripts/infinite_loop.py b/openembedded/scripts/infinite_loop.py new file mode 100755 index 0000000..0405354 --- /dev/null +++ b/openembedded/scripts/infinite_loop.py @@ -0,0 +1,14 @@ +#!/usr/bin/python +import sys +import time +import os + +t1 = time.time() + +while True: + t2 = time.time() - t1 + + if t2 > float(sys.argv[1]): + exit() + else: + os.system("calibrator 1000 500M ca.log") -- cgit v1.2.3