poky/bitbake/lib/toaster/tests/commands/test_runbuilds.py
Richard Purdie 9501864db8 bitbake: bitbake: Strip old editor directives from file headers
There are much better ways to handle this and most editors shouldn't need this
in modern times, drop the noise from the files. Its not consitently applied
anyway.

(Bitbake rev: 5e43070e3087d09aea2f459b033d035c5ef747d0)

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

77 lines
2.0 KiB
Python

#! /usr/bin/env python
#
# BitBake Toaster Implementation
#
# Copyright (C) 2016 Intel Corporation
#
# SPDX-License-Identifier: GPL-2.0-only
#
import os
from django.test import TestCase
from django.core import management
from orm.models import signal_runbuilds
import threading
import time
import subprocess
import signal
class KillRunbuilds(threading.Thread):
""" Kill the runbuilds process after an amount of time """
def __init__(self, *args, **kwargs):
super(KillRunbuilds, self).__init__(*args, **kwargs)
self.setDaemon(True)
def run(self):
time.sleep(5)
signal_runbuilds()
time.sleep(1)
pidfile_path = os.path.join(os.environ.get("BUILDDIR", "."),
".runbuilds.pid")
with open(pidfile_path) as pidfile:
pid = pidfile.read()
os.kill(int(pid), signal.SIGTERM)
class TestCommands(TestCase):
""" Sanity test that runbuilds executes OK """
def setUp(self):
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
"toastermain.settings_test")
os.environ.setdefault("BUILDDIR",
"/tmp/")
# Setup a real database if needed for runbuilds process
# to connect to
management.call_command('migrate')
def test_runbuilds_command(self):
kill_runbuilds = KillRunbuilds()
kill_runbuilds.start()
manage_py = os.path.join(
os.path.dirname(os.path.abspath(__file__)),
os.pardir,
os.pardir,
"manage.py")
command = "%s runbuilds" % manage_py
process = subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(out, err) = process.communicate()
process.wait()
self.assertNotEqual(process.returncode, 1,
"Runbuilds returned an error %s" % err)