From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- poky/meta/lib/oeqa/sdkext/__init__.py | 0 poky/meta/lib/oeqa/sdkext/case.py | 21 ++++ poky/meta/lib/oeqa/sdkext/cases/devtool.py | 129 +++++++++++++++++++++ poky/meta/lib/oeqa/sdkext/context.py | 29 +++++ poky/meta/lib/oeqa/sdkext/files/myapp/Makefile | 10 ++ poky/meta/lib/oeqa/sdkext/files/myapp/myapp.c | 9 ++ .../oeqa/sdkext/files/myapp_cmake/CMakeLists.txt | 11 ++ .../meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c | 9 ++ 8 files changed, 218 insertions(+) create mode 100644 poky/meta/lib/oeqa/sdkext/__init__.py create mode 100644 poky/meta/lib/oeqa/sdkext/case.py create mode 100644 poky/meta/lib/oeqa/sdkext/cases/devtool.py create mode 100644 poky/meta/lib/oeqa/sdkext/context.py create mode 100644 poky/meta/lib/oeqa/sdkext/files/myapp/Makefile create mode 100644 poky/meta/lib/oeqa/sdkext/files/myapp/myapp.c create mode 100644 poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt create mode 100644 poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c (limited to 'poky/meta/lib/oeqa/sdkext') diff --git a/poky/meta/lib/oeqa/sdkext/__init__.py b/poky/meta/lib/oeqa/sdkext/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/poky/meta/lib/oeqa/sdkext/case.py b/poky/meta/lib/oeqa/sdkext/case.py new file mode 100644 index 000000000..21b718831 --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/case.py @@ -0,0 +1,21 @@ +# Copyright (C) 2016 Intel Corporation +# Released under the MIT license (see COPYING.MIT) + +import os +import subprocess + +from oeqa.utils import avoid_paths_in_environ +from oeqa.sdk.case import OESDKTestCase + +class OESDKExtTestCase(OESDKTestCase): + def _run(self, cmd): + # extensible sdk shows a warning if found bitbake in the path + # because can cause contamination, i.e. use devtool from + # poky/scripts instead of eSDK one. + env = os.environ.copy() + paths_to_avoid = ['bitbake/bin', 'poky/scripts'] + env['PATH'] = avoid_paths_in_environ(paths_to_avoid) + + return subprocess.check_output(". %s > /dev/null;"\ + " %s;" % (self.tc.sdk_env, cmd), stderr=subprocess.STDOUT, + shell=True, env=env, universal_newlines=True) diff --git a/poky/meta/lib/oeqa/sdkext/cases/devtool.py b/poky/meta/lib/oeqa/sdkext/cases/devtool.py new file mode 100644 index 000000000..ea9051710 --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/cases/devtool.py @@ -0,0 +1,129 @@ +# Copyright (C) 2016 Intel Corporation +# Released under the MIT license (see COPYING.MIT) + +import os +import shutil +import subprocess + +from oeqa.sdkext.case import OESDKExtTestCase +from oeqa.core.decorator.depends import OETestDepends +from oeqa.core.decorator.oeid import OETestID +from oeqa.utils.httpserver import HTTPService + +class DevtoolTest(OESDKExtTestCase): + @classmethod + def setUpClass(cls): + myapp_src = os.path.join(cls.tc.esdk_files_dir, "myapp") + cls.myapp_dst = os.path.join(cls.tc.sdk_dir, "myapp") + shutil.copytree(myapp_src, cls.myapp_dst) + + myapp_cmake_src = os.path.join(cls.tc.esdk_files_dir, "myapp_cmake") + cls.myapp_cmake_dst = os.path.join(cls.tc.sdk_dir, "myapp_cmake") + shutil.copytree(myapp_cmake_src, cls.myapp_cmake_dst) + + @classmethod + def tearDownClass(cls): + shutil.rmtree(cls.myapp_dst) + shutil.rmtree(cls.myapp_cmake_dst) + + def _test_devtool_build(self, directory): + self._run('devtool add myapp %s' % directory) + try: + self._run('devtool build myapp') + finally: + self._run('devtool reset myapp') + + def _test_devtool_build_package(self, directory): + self._run('devtool add myapp %s' % directory) + try: + self._run('devtool package myapp') + finally: + self._run('devtool reset myapp') + + def test_devtool_location(self): + output = self._run('which devtool') + self.assertEqual(output.startswith(self.tc.sdk_dir), True, \ + msg="Seems that devtool isn't the eSDK one: %s" % output) + + @OETestDepends(['test_devtool_location']) + def test_devtool_add_reset(self): + self._run('devtool add myapp %s' % self.myapp_dst) + self._run('devtool reset myapp') + + @OETestID(1605) + @OETestDepends(['test_devtool_location']) + def test_devtool_build_make(self): + self._test_devtool_build(self.myapp_dst) + + @OETestID(1606) + @OETestDepends(['test_devtool_location']) + def test_devtool_build_esdk_package(self): + self._test_devtool_build_package(self.myapp_dst) + + @OETestID(1607) + @OETestDepends(['test_devtool_location']) + def test_devtool_build_cmake(self): + self._test_devtool_build(self.myapp_cmake_dst) + + @OETestID(1608) + @OETestDepends(['test_devtool_location']) + def test_extend_autotools_recipe_creation(self): + req = 'https://github.com/rdfa/librdfa' + recipe = "librdfa" + self._run('devtool sdk-install libxml2') + self._run('devtool add %s %s' % (recipe, req) ) + try: + self._run('devtool build %s' % recipe) + finally: + self._run('devtool reset %s' % recipe) + + @OETestID(1609) + @OETestDepends(['test_devtool_location']) + def test_devtool_kernelmodule(self): + docfile = 'https://github.com/umlaeute/v4l2loopback.git' + recipe = 'v4l2loopback-driver' + self._run('devtool add %s %s' % (recipe, docfile) ) + try: + self._run('devtool build %s' % recipe) + finally: + self._run('devtool reset %s' % recipe) + + @OETestID(1610) + @OETestDepends(['test_devtool_location']) + def test_recipes_for_nodejs(self): + package_nodejs = "npm://registry.npmjs.org;name=winston;version=2.2.0" + self._run('devtool add %s ' % package_nodejs) + try: + self._run('devtool build %s ' % package_nodejs) + finally: + self._run('devtool reset %s '% package_nodejs) + +class SdkUpdateTest(OESDKExtTestCase): + @classmethod + def setUpClass(self): + self.publish_dir = os.path.join(self.tc.sdk_dir, 'esdk_publish') + if os.path.exists(self.publish_dir): + shutil.rmtree(self.publish_dir) + os.mkdir(self.publish_dir) + + base_tcname = "%s/%s" % (self.td.get("SDK_DEPLOY", ''), + self.td.get("TOOLCHAINEXT_OUTPUTNAME", '')) + tcname_new = "%s-new.sh" % base_tcname + if not os.path.exists(tcname_new): + tcname_new = "%s.sh" % base_tcname + + cmd = 'oe-publish-sdk %s %s' % (tcname_new, self.publish_dir) + subprocess.check_output(cmd, shell=True) + + self.http_service = HTTPService(self.publish_dir) + self.http_service.start() + + self.http_url = "http://127.0.0.1:%d" % self.http_service.port + + def test_sdk_update_http(self): + output = self._run("devtool sdk-update \"%s\"" % self.http_url) + + @classmethod + def tearDownClass(self): + self.http_service.stop() + shutil.rmtree(self.publish_dir) diff --git a/poky/meta/lib/oeqa/sdkext/context.py b/poky/meta/lib/oeqa/sdkext/context.py new file mode 100644 index 000000000..65da4c6e1 --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/context.py @@ -0,0 +1,29 @@ +# Copyright (C) 2016 Intel Corporation +# Released under the MIT license (see COPYING.MIT) + +import os +from oeqa.sdk.context import OESDKTestContext, OESDKTestContextExecutor + +class OESDKExtTestContext(OESDKTestContext): + esdk_files_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "files") + + # FIXME - We really need to do better mapping of names here, this at + # least allows some tests to run + def hasHostPackage(self, pkg): + # We force a toolchain to be installed into the eSDK even if its minimal + if pkg.startswith("packagegroup-cross-canadian-"): + return True + return self._hasPackage(self.host_pkg_manifest, pkg) + +class OESDKExtTestContextExecutor(OESDKTestContextExecutor): + _context_class = OESDKExtTestContext + + name = 'esdk' + help = 'esdk test component' + description = 'executes esdk tests' + + default_cases = OESDKTestContextExecutor.default_cases + \ + [os.path.join(os.path.abspath(os.path.dirname(__file__)), 'cases')] + default_test_data = None + +_executor_class = OESDKExtTestContextExecutor diff --git a/poky/meta/lib/oeqa/sdkext/files/myapp/Makefile b/poky/meta/lib/oeqa/sdkext/files/myapp/Makefile new file mode 100644 index 000000000..abd91bea6 --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/files/myapp/Makefile @@ -0,0 +1,10 @@ +all: myapp + +myapp: myapp.o + $(CC) $(LDFLAGS) $< -o $@ + +myapp.o: myapp.c + $(CC) $(CFLAGS) -c $< -o $@ + +clean: + rm -rf myapp.o myapp diff --git a/poky/meta/lib/oeqa/sdkext/files/myapp/myapp.c b/poky/meta/lib/oeqa/sdkext/files/myapp/myapp.c new file mode 100644 index 000000000..f0b63f03f --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/files/myapp/myapp.c @@ -0,0 +1,9 @@ +#include + +int +main(int argc, char *argv[]) +{ + printf("Hello world\n"); + + return 0; +} diff --git a/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt b/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt new file mode 100644 index 000000000..19d773dd6 --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required (VERSION 2.6) +project (myapp) +# The version number. +set (myapp_VERSION_MAJOR 1) +set (myapp_VERSION_MINOR 0) + +# add the executable +add_executable (myapp myapp.c) + +install(TARGETS myapp + RUNTIME DESTINATION bin) diff --git a/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c b/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c new file mode 100644 index 000000000..f0b63f03f --- /dev/null +++ b/poky/meta/lib/oeqa/sdkext/files/myapp_cmake/myapp.c @@ -0,0 +1,9 @@ +#include + +int +main(int argc, char *argv[]) +{ + printf("Hello world\n"); + + return 0; +} -- cgit v1.2.3