From 4cfbf43f0730fc6e622255062a681bab82214874 Mon Sep 17 00:00:00 2001 From: Henning Schild Date: Thu, 2 Jul 2020 10:35:32 +0200 Subject: [PATCH] tests: add testcase for repo layers Signed-off-by: Henning Schild Signed-off-by: Jan Kiszka --- tests/test_layers.py | 62 +++++++++++++++++++++++++++++ tests/test_layers/oe-init-build-env | 3 ++ tests/test_layers/test.yml | 22 ++++++++++ 3 files changed, 87 insertions(+) create mode 100644 tests/test_layers.py create mode 100755 tests/test_layers/oe-init-build-env create mode 100644 tests/test_layers/test.yml diff --git a/tests/test_layers.py b/tests/test_layers.py new file mode 100644 index 0000000..21299ac --- /dev/null +++ b/tests/test_layers.py @@ -0,0 +1,62 @@ +# kas - setup tool for bitbake based projects +# +# Copyright (c) Siemens AG, 2020 +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +import os +import shutil +from kas import kas + +import pytest + + +@pytest.fixture +def dokas(tmpdir): + tdir = str(tmpdir.mkdir('test_layers')) + shutil.rmtree(tdir, ignore_errors=True) + shutil.copytree('tests/test_layers', tdir) + os.chdir(tdir) + kas.kas(['shell', 'test.yml', '-c', 'true']) + yield + os.chdir(os.path.join(os.path.dirname(__file__), '..')) + + +def test_layers_default(dokas): + match = 0 + with open('build/conf/bblayers.conf', 'r') as f: + for line in f: + if 'test_layers/kas/' in line: + match += 1 + assert(match == 1) + + +def test_layers_include(dokas): + match = 0 + with open('build/conf/bblayers.conf', 'r') as f: + for line in f: + if 'test_layers/kas1/meta-' in line: + match += 1 + assert(match == 2) + + +def test_layers_exclude(dokas): + with open('build/conf/bblayers.conf', 'r') as f: + for line in f: + assert('test_layers/kas2' not in line) diff --git a/tests/test_layers/oe-init-build-env b/tests/test_layers/oe-init-build-env new file mode 100755 index 0000000..296ef78 --- /dev/null +++ b/tests/test_layers/oe-init-build-env @@ -0,0 +1,3 @@ +#!/bin/sh + +true diff --git a/tests/test_layers/test.yml b/tests/test_layers/test.yml new file mode 100644 index 0000000..cb1b7eb --- /dev/null +++ b/tests/test_layers/test.yml @@ -0,0 +1,22 @@ +header: + version: 8 + +repos: + this: + + kas: + url: https://github.com/siemens/kas.git + refspec: master + + kas1: + url: https://github.com/siemens/kas.git + refspec: master + layers: + meta-foo: + meta-bar: + + kas2: + url: https://github.com/siemens/kas.git + refspec: master + layers: + .: excluded