Enable itt sanity test: - test that itt library enable code tracing - to collect itt tracing data, use vtune collector
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..86e4a88 --- /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..a984faf --- /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..f317635 --- /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 (#6432): https://lists.yoctoproject.org/g/meta-intel/message/6432 Mute This Topic: https://lists.yoctoproject.org/mt/72095572/21656 Group Owner: [email protected] Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
