Enable itt sanity test that validate itt library enable
code tracing.
Signed-off-by: Yeoh Ee Peng <[email protected]>
---
lib/oeqa/runtime/cases/itt.py | 28 ++++++++++++++++++++++++++
lib/oeqa/runtime/files/itt/itt-sample.c | 24 ++++++++++++++++++++++
lib/oeqa/runtime/miutils/tests/itt_test.py | 32 ++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+)
create mode 100644 lib/oeqa/runtime/cases/itt.py
create mode 100644 lib/oeqa/runtime/files/itt/itt-sample.c
create mode 100644 lib/oeqa/runtime/miutils/tests/itt_test.py
diff --git a/lib/oeqa/runtime/cases/itt.py b/lib/oeqa/runtime/cases/itt.py
new file mode 100644
index 0000000..c630c31
--- /dev/null
+++ b/lib/oeqa/runtime/cases/itt.py
@@ -0,0 +1,28 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.runtime.decorator.package import OEHasPackage
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.runtime.miutils.targets.oeqatarget import OEQATarget
+from oeqa.runtime.miutils.tests.itt_test import IttTest
+
+class ITT(OERuntimeTestCase):
+
+ @classmethod
+ def setUpClass(cls):
+ cls.itt = IttTest(OEQATarget(cls.tc.target))
+ cls.itt.setup()
+
+ @classmethod
+ def tearDownClass(cls):
+ cls.itt.tear_down()
+
+ @OEHasPackage(['itt-staticdev'])
+ @OEHasPackage(['itt-dev'])
+ def test_itt_can_compile_sample(self):
+ (status, output) = self.itt.test_itt_can_compile_sample()
+ self.assertEqual(status, 0, msg='status and output: %s and %s' %
(status, output))
+
+ @OETestDepends(['itt.ITT.test_itt_can_compile_sample'])
+ def test_itt_can_enable_tracing(self):
+ (status, output) = self.itt.test_itt_can_execute_sample()
+ self.assertEqual(status, 0, msg='status and output: %s and %s' %
(status, output))
diff --git a/lib/oeqa/runtime/files/itt/itt-sample.c
b/lib/oeqa/runtime/files/itt/itt-sample.c
new file mode 100644
index 0000000..bda25e9
--- /dev/null
+++ b/lib/oeqa/runtime/files/itt/itt-sample.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#include <ittnotify.h>
+
+void MyFn(int a)
+{
+ for (size_t i = 0; i < a; ++i)
+ {
+ printf("Loop");
+ }
+}
+
+int main()
+{
+ // Create a domain that is visible globally: we will use it in our example.
+ __itt_domain* domain = __itt_domain_create("Example.Domain.Global");
+ // Create string handles which associates with the "main" task.
+ __itt_string_handle* handle_main = __itt_string_handle_create("main");
+
+ // Build the graph
+ __itt_task_begin(domain, __itt_null, __itt_null, handle_main);
+ MyFn(5);
+ __itt_task_end(domain);
+ return 0;
+}
\ No newline at end of file
diff --git a/lib/oeqa/runtime/miutils/tests/itt_test.py
b/lib/oeqa/runtime/miutils/tests/itt_test.py
new file mode 100644
index 0000000..8b18e47
--- /dev/null
+++ b/lib/oeqa/runtime/miutils/tests/itt_test.py
@@ -0,0 +1,32 @@
+import os
+script_path = os.path.dirname(os.path.realpath(__file__))
+files_path = os.path.join(script_path, '../../files/')
+
+class IttTest(object):
+ itt_input_files = 'itt-sample.c'
+ itt_files_dir = '/tmp/'
+ itt_target_sample = 'itt-sample'
+
+ def __init__(self, target):
+ self.target = target
+
+ def setup(self):
+ self.target.copy_to(os.path.join(files_path, 'itt',
self.itt_input_files), self.itt_files_dir)
+
+ def tear_down(self):
+ files = '%s%s %s%s' % (self.itt_files_dir,
+ self.itt_input_files,
+ self.itt_files_dir,
+ self.itt_target_sample)
+ self.target.run('rm %s' % files)
+
+ def test_itt_can_compile_sample(self):
+ return self.target.run('gcc %s%s -o %s%s -littnotify64 -lpthread -ldl
%s' %
+ (self.itt_files_dir,
+ self.itt_input_files,
+ self.itt_files_dir,
+ self.itt_target_sample,
+ '-I /usr/include/ittnotify'))
+
+ def test_itt_can_execute_sample(self):
+ return self.target.run('%s%s' % (self.itt_files_dir,
self.itt_target_sample))
--
2.7.4
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#6420):
https://lists.yoctoproject.org/g/meta-intel/message/6420
Mute This Topic: https://lists.yoctoproject.org/mt/72045571/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-