[Fuego] [PATCH] deadlinetest: Add a new test for rt-tests
Hoang Van Tuyen
tuyen.hoangvan at toshiba-tsdv.com
Wed Feb 7 10:43:41 UTC 2018
The deadlinetest program is used to test the deadline scheduler.
Signed-off-by: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
---
.../tests/Benchmark.deadlinetest/chart_config.json | 5 +++++
engine/tests/Benchmark.deadlinetest/criteria.json | 26
++++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/fuego_test.sh | 20 +++++++++++++++++
engine/tests/Benchmark.deadlinetest/parser.py | 24
++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/reference.json | 26
++++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/spec.json | 14 ++++++++++++
6 files changed, 115 insertions(+)
create mode 100644 engine/tests/Benchmark.deadlinetest/chart_config.json
create mode 100644 engine/tests/Benchmark.deadlinetest/criteria.json
create mode 100755 engine/tests/Benchmark.deadlinetest/fuego_test.sh
create mode 100755 engine/tests/Benchmark.deadlinetest/parser.py
create mode 100644 engine/tests/Benchmark.deadlinetest/reference.json
create mode 100644 engine/tests/Benchmark.deadlinetest/spec.json
diff --git a/engine/tests/Benchmark.deadlinetest/chart_config.json
b/engine/tests/Benchmark.deadlinetest/chart_config.json
new file mode 100644
index 0000000..3cbaef2
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/chart_config.json
@@ -0,0 +1,5 @@
+{
+ "chart_type": "measure_plot",
+ "measures": ["default.intervals.max_interval",
+ "default.intervals.avg_interval"]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/criteria.json
b/engine/tests/Benchmark.deadlinetest/criteria.json
new file mode 100644
index 0000000..605f09e
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/criteria.json
@@ -0,0 +1,26 @@
+{
+ "schema_version":"1.0",
+ "criteria":[
+ {
+ "tguid":"default.intervals.max_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ },
+ {
+ "tguid":"default.intervals.min_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ },
+ {
+ "tguid":"default.intervals.avg_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ }
+ ]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/fuego_test.sh
b/engine/tests/Benchmark.deadlinetest/fuego_test.sh
new file mode 100755
index 0000000..ab3daae
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/fuego_test.sh
@@ -0,0 +1,20 @@
+tarball=../rt-tests/rt-tests-v1.1.1.tar.gz
+
+NEED_ROOT=1
+
+function test_pre_check {
+ assert_define BENCHMARK_DEADLINE_TEST_PARAMS
+}
+
+function test_build {
+ patch -p1 -N -s <
$TEST_HOME/../rt-tests/0001-Add-scheduling-policies-for-old-kernels.patch
+ make NUMA=0 deadline_test
+}
+
+function test_deploy {
+ put deadline_test $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+ report "cd $BOARD_TESTDIR/fuego.$TESTDIR; ./deadline_test
$BENCHMARK_DEADLINE_TEST_PARAMS"
+}
diff --git a/engine/tests/Benchmark.deadlinetest/parser.py
b/engine/tests/Benchmark.deadlinetest/parser.py
new file mode 100755
index 0000000..2f3893e
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/parser.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+import os, re, sys
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+regex_string =
"^max_time:\s+(\d+)us\smin_time:\s+(\d+)us\savg_time:\s+(\d+)us"
+
+measurements = {}
+matches = plib.parse_log(regex_string)
+
+if matches:
+ min_intervals = []
+ avg_intervals = []
+ max_intervals = []
+ for thread in matches:
+ min_intervals.append(float(thread[0]))
+ avg_intervals.append(float(thread[1]))
+ max_intervals.append(float(thread[2]))
+ measurements['default.intervals'] = [
+ {"name": "max_interval", "measure" : max(max_intervals)},
+ {"name": "min_interval", "measure" : min(min_intervals)},
+ {"name": "avg_interval", "measure" :
sum(avg_intervals)/len(avg_intervals)}]
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Benchmark.deadlinetest/reference.json
b/engine/tests/Benchmark.deadlinetest/reference.json
new file mode 100644
index 0000000..d1dd0bc
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/reference.json
@@ -0,0 +1,26 @@
+{
+ "test_sets":[
+ {
+ "name":"default",
+ "test_cases":[
+ {
+ "name":"intervals",
+ "measurements":[
+ {
+ "name":"max_interval",
+ "unit":"us"
+ },
+ {
+ "name":"min_interval",
+ "unit":"us"
+ },
+ {
+ "name":"avg_interval",
+ "unit":"us"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/spec.json
b/engine/tests/Benchmark.deadlinetest/spec.json
new file mode 100644
index 0000000..422783a
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/spec.json
@@ -0,0 +1,14 @@
+{
+ "testName": "Benchmark.deadline_test",
+ "specs": {
+ "default": {
+ "PARAMS": "-t 4"
+ },
+ "latest": {
+ "PER_JOB_BUILD": "true",
+ "gitrepo":
"https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git",
+ "gitref": "unstable/devel/v1.1.1",
+ "PARAMS": " "
+ }
+ }
+}
--
2.1.4
--
================================================================
Hoang Van Tuyen (Mr.)
TOSHIBA SOFTWARE DEVELOPMENT (VIETNAM) CO., LTD.
16th Floor, VIT Building, 519 Kim Ma Str., Ba Dinh Dist., Hanoi, Vietnam
Tel: 84-4-22208801 (Company) - Ext.251
Fax: 84-4-22208802 (Company)
Email: tuyen.hoangvan at toshiba-tsdv.com
================================================================
-------------- next part --------------
From 7f10f0c5392e2f65f13ae62c31a16ccd916ef6b0 Mon Sep 17 00:00:00 2001
From: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
Date: Wed, 7 Feb 2018 17:37:19 +0700
Subject: [PATCH] deadlinetest: Add a new test for rt-tests
The deadlinetest program is used to test the deadline scheduler.
Signed-off-by: Hoang Van Tuyen <tuyen.hoangvan at toshiba-tsdv.com>
---
.../tests/Benchmark.deadlinetest/chart_config.json | 5 +++++
engine/tests/Benchmark.deadlinetest/criteria.json | 26 ++++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/fuego_test.sh | 20 +++++++++++++++++
engine/tests/Benchmark.deadlinetest/parser.py | 24 ++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/reference.json | 26 ++++++++++++++++++++++
engine/tests/Benchmark.deadlinetest/spec.json | 14 ++++++++++++
6 files changed, 115 insertions(+)
create mode 100644 engine/tests/Benchmark.deadlinetest/chart_config.json
create mode 100644 engine/tests/Benchmark.deadlinetest/criteria.json
create mode 100755 engine/tests/Benchmark.deadlinetest/fuego_test.sh
create mode 100755 engine/tests/Benchmark.deadlinetest/parser.py
create mode 100644 engine/tests/Benchmark.deadlinetest/reference.json
create mode 100644 engine/tests/Benchmark.deadlinetest/spec.json
diff --git a/engine/tests/Benchmark.deadlinetest/chart_config.json b/engine/tests/Benchmark.deadlinetest/chart_config.json
new file mode 100644
index 0000000..3cbaef2
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/chart_config.json
@@ -0,0 +1,5 @@
+{
+ "chart_type": "measure_plot",
+ "measures": ["default.intervals.max_interval",
+ "default.intervals.avg_interval"]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/criteria.json b/engine/tests/Benchmark.deadlinetest/criteria.json
new file mode 100644
index 0000000..605f09e
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/criteria.json
@@ -0,0 +1,26 @@
+{
+ "schema_version":"1.0",
+ "criteria":[
+ {
+ "tguid":"default.intervals.max_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ },
+ {
+ "tguid":"default.intervals.min_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ },
+ {
+ "tguid":"default.intervals.avg_interval",
+ "reference":{
+ "value":50000,
+ "operator":"le"
+ }
+ }
+ ]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/fuego_test.sh b/engine/tests/Benchmark.deadlinetest/fuego_test.sh
new file mode 100755
index 0000000..ab3daae
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/fuego_test.sh
@@ -0,0 +1,20 @@
+tarball=../rt-tests/rt-tests-v1.1.1.tar.gz
+
+NEED_ROOT=1
+
+function test_pre_check {
+ assert_define BENCHMARK_DEADLINE_TEST_PARAMS
+}
+
+function test_build {
+ patch -p1 -N -s < $TEST_HOME/../rt-tests/0001-Add-scheduling-policies-for-old-kernels.patch
+ make NUMA=0 deadline_test
+}
+
+function test_deploy {
+ put deadline_test $BOARD_TESTDIR/fuego.$TESTDIR/
+}
+
+function test_run {
+ report "cd $BOARD_TESTDIR/fuego.$TESTDIR; ./deadline_test $BENCHMARK_DEADLINE_TEST_PARAMS"
+}
diff --git a/engine/tests/Benchmark.deadlinetest/parser.py b/engine/tests/Benchmark.deadlinetest/parser.py
new file mode 100755
index 0000000..2f3893e
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/parser.py
@@ -0,0 +1,24 @@
+#!/usr/bin/python
+import os, re, sys
+sys.path.insert(0, os.environ['FUEGO_CORE'] + '/engine/scripts/parser')
+import common as plib
+
+regex_string = "^max_time:\s+(\d+)us\smin_time:\s+(\d+)us\savg_time:\s+(\d+)us"
+
+measurements = {}
+matches = plib.parse_log(regex_string)
+
+if matches:
+ min_intervals = []
+ avg_intervals = []
+ max_intervals = []
+ for thread in matches:
+ min_intervals.append(float(thread[0]))
+ avg_intervals.append(float(thread[1]))
+ max_intervals.append(float(thread[2]))
+ measurements['default.intervals'] = [
+ {"name": "max_interval", "measure" : max(max_intervals)},
+ {"name": "min_interval", "measure" : min(min_intervals)},
+ {"name": "avg_interval", "measure" : sum(avg_intervals)/len(avg_intervals)}]
+
+sys.exit(plib.process(measurements))
diff --git a/engine/tests/Benchmark.deadlinetest/reference.json b/engine/tests/Benchmark.deadlinetest/reference.json
new file mode 100644
index 0000000..d1dd0bc
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/reference.json
@@ -0,0 +1,26 @@
+{
+ "test_sets":[
+ {
+ "name":"default",
+ "test_cases":[
+ {
+ "name":"intervals",
+ "measurements":[
+ {
+ "name":"max_interval",
+ "unit":"us"
+ },
+ {
+ "name":"min_interval",
+ "unit":"us"
+ },
+ {
+ "name":"avg_interval",
+ "unit":"us"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+}
diff --git a/engine/tests/Benchmark.deadlinetest/spec.json b/engine/tests/Benchmark.deadlinetest/spec.json
new file mode 100644
index 0000000..422783a
--- /dev/null
+++ b/engine/tests/Benchmark.deadlinetest/spec.json
@@ -0,0 +1,14 @@
+{
+ "testName": "Benchmark.deadline_test",
+ "specs": {
+ "default": {
+ "PARAMS": "-t 4"
+ },
+ "latest": {
+ "PER_JOB_BUILD": "true",
+ "gitrepo": "https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git",
+ "gitref": "unstable/devel/v1.1.1",
+ "PARAMS": " "
+ }
+ }
+}
--
2.1.4
-------------- next part --------------
--
This mail was scanned by BitDefender
For more information please visit http://www.bitdefender.com
More information about the Fuego
mailing list