Files
poky/bitbake/bin/bitbake-selftest
Mark Hatle 1ac19d1bf1 bitbake: layerindexlib: Initial layer index processing module implementation
The layer index module is expected to be used by various parts of the system
in order to access a layerindex-web (such as layers.openembedded.org) and
perform basic processing on the information, such as dependency scanning.

Along with the layerindex implementation are associated tests.  The tests
properly honor BB_SKIP_NETTESTS='yes' to prevent test failures.

Tests Implemented:
   - Branch, LayerItem, LayerBranch, LayerDependency, Recipe, Machine and
      Distro objects
   - LayerIndex setup using the layers.openembedded.org restapi
   - LayerIndex storing and retrieving from a file
   - LayerIndex verify dependency resolution ordering
   - LayerIndex setup using simulated cooker data

(Bitbake rev: fd0ee6c10dbb5592731e56f4c592fe687682a3e6)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-08-02 10:18:27 +01:00

2.2 KiB
Executable File

#!/usr/bin/env python3

Copyright (C) 2012 Richard Purdie

This program is free software; you can redistribute it and/or modify

it under the terms of the GNU General Public License version 2 as

published by the Free Software Foundation.

This program is distributed in the hope that it will be useful,

but WITHOUT ANY WARRANTY; without even the implied warranty of

MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the

GNU General Public License for more details.

You should have received a copy of the GNU General Public License along

with this program; if not, write to the Free Software Foundation, Inc.,

51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

import os import sys, logging sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(file)), 'lib'))

import unittest try: import bb import layerindexlib except RuntimeError as exc: sys.exit(str(exc))

tests = ["bb.tests.codeparser", "bb.tests.cow", "bb.tests.data", "bb.tests.event", "bb.tests.fetch", "bb.tests.parse", "bb.tests.utils", "layerindexlib.tests.layerindexobj", "layerindexlib.tests.restapi", "layerindexlib.tests.cooker"]

for t in tests: t = '.'.join(t.split('.')[:3]) import(t)

Set-up logging

class StdoutStreamHandler(logging.StreamHandler): """Special handler so that unittest is able to capture stdout""" def init(self): # Override init() because we don't want to set self.stream here logging.Handler.init(self)

@property
def stream(self):
    # We want to dynamically write wherever sys.stdout is pointing to
    return sys.stdout

handler = StdoutStreamHandler() bb.logger.addHandler(handler) bb.logger.setLevel(logging.DEBUG)

ENV_HELP = """
Environment variables: BB_SKIP_NETTESTS set to 'yes' in order to skip tests using network connection BB_TMPDIR_NOCLEAN set to 'yes' to preserve test tmp directories """

class main(unittest.main): def _print_help(self, *args, **kwargs): super(main, self)._print_help(*args, **kwargs) print(ENV_HELP)

if name == 'main': main(defaultTest=tests, buffer=True)