1
0
mirror of https://git.yoctoproject.org/poky synced 2026-07-27 19:37:10 +00:00
Files
poky/bitbake/lib/toaster/tests/eventreplay/__init__.py
T
Richard Purdie 79834a7144 bitbake: bitbake: Add initial pass of SPDX license headers to source code
This adds the SPDX-License-Identifier license headers to the majority of
our source files to make it clearer exactly which license files are under.

The bulk of the files are under GPL v2.0 with one found to be under V2.0
or later, some under MIT and some have dual license. There are some files
which are potentially harder to classify where we've imported upstream code
and those can be handled specifically in later commits.

The COPYING file is replaced with LICENSE.X files which contain the full
license texts.

(Bitbake rev: ff237c33337f4da2ca06c3a2c49699bc26608a6b)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2019-05-04 10:44:04 +01:00

100 lines
3.9 KiB
Python

#! /usr/bin/env python
# ex:ts=4:sw=4:sts=4:et
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
#
# BitBake Toaster Implementation
#
# Copyright (C) 2016 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
#
# 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.
# Tests were part of openembedded-core oe selftest Authored by: Lucian Musat
# Ionut Chisanovici, Paul Eggleton and Cristian Iorga
"""
Test toaster backend by playing build event log files
using toaster-eventreplay script
"""
import os
from subprocess import getstatusoutput
from pathlib import Path
from django.test import TestCase
from orm.models import Target_Installed_Package, Package, Build
class EventReplay(TestCase):
"""Base class for eventreplay test cases"""
def setUp(self):
"""
Setup build environment:
- set self.script to toaster-eventreplay path
- set self.eventplay_dir to the value of EVENTPLAY_DIR env variable
"""
bitbake_dir = Path(__file__.split('lib/toaster')[0])
self.script = bitbake_dir / 'bin' / 'toaster-eventreplay'
self.assertTrue(self.script.exists(), "%s doesn't exist")
self.eventplay_dir = os.getenv("EVENTREPLAY_DIR")
self.assertTrue(self.eventplay_dir,
"Environment variable EVENTREPLAY_DIR is not set")
def _replay(self, eventfile):
"""Run toaster-eventplay <eventfile>"""
eventpath = Path(self.eventplay_dir) / eventfile
status, output = getstatusoutput('%s %s' % (self.script, eventpath))
if status:
print(output)
self.assertEqual(status, 0)
class CoreImageMinimalEventReplay(EventReplay):
"""Replay core-image-minimal events"""
def test_installed_packages(self):
"""Test if all required packages have been installed"""
self._replay('core-image-minimal.events')
# test installed packages
packages = sorted(Target_Installed_Package.objects.\
values_list('package__name', flat=True))
self.assertEqual(packages, ['base-files', 'base-passwd', 'busybox',
'busybox-hwclock', 'busybox-syslog',
'busybox-udhcpc', 'eudev', 'glibc',
'init-ifupdown', 'initscripts',
'initscripts-functions', 'kernel-base',
'kernel-module-uvesafb', 'libkmod',
'modutils-initscripts', 'netbase',
'packagegroup-core-boot', 'run-postinsts',
'sysvinit', 'sysvinit-inittab',
'sysvinit-pidof', 'udev-cache',
'update-alternatives-opkg',
'update-rc.d', 'util-linux-libblkid',
'util-linux-libuuid', 'v86d', 'zlib'])
class ZlibEventReplay(EventReplay):
"""Replay zlib events"""
def test_replay_zlib(self):
"""Test if zlib build and package are in the database"""
self._replay("zlib.events")
self.assertEqual(Build.objects.last().target_set.last().target, "zlib")
self.assertTrue('zlib' in Package.objects.values_list('name', flat=True))