Initial commit
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
#! /usr/bin/env python3
|
||||
#
|
||||
# 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.daemon = 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)
|
||||
Reference in New Issue
Block a user