ocf/tests/unit/framework/run_unit_tests.py
Kamil Lepek 827a115fa9 Gather all unit tests logs in single directory
Signed-off-by: Kamil Lepek <kamil.lepek94@gmail.com>
2019-05-17 11:35:33 +02:00

75 lines
2.0 KiB
Python
Executable File

#!/usr/bin/env python2
#
# Copyright(c) 2012-2018 Intel Corporation
# SPDX-License-Identifier: BSD-3-Clause-Clear
#
import tests_config
import os
import commands
import sys
script_path = os.path.dirname(os.path.realpath(__file__))
main_UT_dir = os.path.normpath(script_path + os.sep\
+ tests_config.MAIN_DIRECTORY_OF_UNIT_TESTS) + os.sep
main_tested_dir = os.path.normpath(script_path + os.sep\
+ tests_config.MAIN_DIRECTORY_OF_TESTED_PROJECT) + os.sep
if not os.path.isdir(main_UT_dir + "ocf_env" + os.sep + "ocf"):
try:
os.makedirs(main_UT_dir + "ocf_env" + os.sep + "ocf")
except Exception:
print "Cannot create ocf_env/ocf directory!"
status, output = commands.getstatusoutput("cp " + main_tested_dir +\
"inc" + os.sep + "*" + " " + main_UT_dir + "ocf_env" + os.sep + "ocf")
if os.system(script_path + os.sep + "prepare_sources_for_testing.py") != 0:
print "Preparing sources for testing failed!"
exit()
build_dir = main_UT_dir + "build" + os.sep
logs_dir = main_UT_dir + "logs" + os.sep
if not os.path.isdir(build_dir):
try:
os.makedirs(build_dir)
except Exception:
print "Cannot create build directory!"
if not os.path.isdir(logs_dir):
try:
os.makedirs(logs_dir)
except Exception:
print "Cannot create logs directory!"
cmake_status, cmake_output = commands.getstatusoutput("cd " + build_dir + " && cmake ..")
print cmake_output
with open(logs_dir + 'cmake.output', 'w') as f:
f.write(cmake_output)
if cmake_status != 0:
with open(logs_dir + 'tests.output', 'w') as f:
f.write("Cmake step failed! More details in cmake.output.")
sys.exit(1)
make_status, make_output = commands.getstatusoutput("cd " + build_dir + " && make")
print make_output
with open(logs_dir + 'make.output', 'w') as f:
f.write(make_output)
if make_status != 0:
with open(logs_dir + 'tests.output', 'w') as f:
f.write("Make step failed! More details in make.output.")
sys.exit(1)
test_status, test_output = commands.getstatusoutput("cd " + build_dir + " && make test")
print test_output
with open(logs_dir + 'tests.output', 'w') as f:
f.write(test_output)