ocf/tests/unit/framework/run_unit_tests.py
Michal Mielewczyk 3e2ee7a7c8 UT framerwok: Auto generating wrap functions
Test code have to contain wraps only for those functions, which are used by
test itself. Empty wraps are generated automatically by UT framework.

Signed-off-by: Michal Mielewczyk <michal.mielewczyk@intel.com>
2019-06-06 08:20:25 -04:00

84 lines
2.5 KiB
Python
Executable File

#!/usr/bin/env python3
#
# Copyright(c) 2012-2018 Intel Corporation
# SPDX-License-Identifier: BSD-3-Clause-Clear
#
import tests_config
import os
import sys
import subprocess
def run_command(args):
result = subprocess.run(" ".join(args), shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
result.stdout = result.stdout.decode("ASCII", errors='ignore')
result.stderr = result.stderr.decode("ASCII", errors='ignore')
return result
script_path = os.path.dirname(os.path.realpath(__file__))
main_UT_dir = os.path.join(script_path, tests_config.MAIN_DIRECTORY_OF_UNIT_TESTS)
main_tested_dir = os.path.join(script_path, tests_config.MAIN_DIRECTORY_OF_TESTED_PROJECT)
if not os.path.isdir(os.path.join(main_UT_dir, "ocf_env", "ocf")):
try:
os.makedirs(os.path.join(main_UT_dir, "ocf_env", "ocf"))
except Exception:
raise Exception("Cannot create ocf_env/ocf directory!")
result = run_command([ "cp", "-r",
os.path.join(main_tested_dir, "inc", "*"),
os.path.join(main_UT_dir, "ocf_env", "ocf") ])
if result.returncode != 0:
raise Exception("Preparing sources for testing failed!")
result = run_command([ os.path.join(script_path, "prepare_sources_for_testing.py") ])
if result.returncode != 0:
raise Exception("Preparing sources for testing failed!")
build_dir = os.path.join(main_UT_dir, "build")
logs_dir = os.path.join(main_UT_dir, "logs")
try:
if not os.path.isdir(build_dir):
os.makedirs(build_dir)
if not os.path.isdir(logs_dir):
os.makedirs(logs_dir)
except Exception:
raise Exception("Cannot create logs directory!")
os.chdir(build_dir)
cmake_result = run_command([ "cmake", ".." ])
print(cmake_result.stdout)
with open(os.path.join(logs_dir, "cmake.output"), "w") as f:
f.write(cmake_result.stdout)
f.write(cmake_result.stderr)
if cmake_result.returncode != 0:
with open(os.path.join(logs_dir, "tests.output"), "w") as f:
f.write("Cmake step failed! More details in cmake.output.")
sys.exit(1)
make_result = run_command([ "make", "-j" ])
print(make_result.stdout)
with open(os.path.join(logs_dir, "make.output"), "w") as f:
f.write(make_result.stdout)
f.write(make_result.stderr)
if make_result.returncode != 0:
with open(os.path.join(logs_dir, "tests.output"), "w") as f:
f.write("Make step failed! More details in make.output.")
sys.exit(1)
test_result = run_command([ "make", "test" ])
print(test_result.stdout)
with open(os.path.join(logs_dir , "tests.output"), "w") as f:
f.write(test_result.stdout)