blob: 96bfd9086ead47fff84ec60807ef831796015f91 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
import logging
import shutil
import time
import os
from pathlib import Path
def create_test_directory():
test_dir_name = "tests/" + time.strftime("%Y_%m_%d_%H_%M_%S")
path = os.path.join(os.getcwd(), test_dir_name)
os.mkdir(path, mode=0o777)
print("Test directory: ", path)
return path
def configure_logging(log_filename, clear_log_file=True):
format_template = ("%(asctime)s %(threadName)s %(name)s %(levelname)s "
"%(filename)-25s %(lineno)-5s "
"%(funcName)-25s : %(message)s")
logging.basicConfig(format=format_template,
filename=log_filename,
filemode='a',
level=logging.DEBUG)
if clear_log_file:
with open(log_filename, "w") as f:
f.write("asctime\t\t\t\t\tthreadName name levelname filename\
\tlineno\tfuncName\t\t\t\tmessage\n")
logging.getLogger("asyncio").setLevel(logging.WARNING)
logging.getLogger("matplotlib").setLevel(logging.WARNING)
def copy_config_files_to_test_directory(files: list, test_directory: str):
for file in files:
shutil.copy(file, test_directory + "/" + Path(file).name)
def copy_log_files_to_test_directory(dir: str):
log_files = ["log/log_rx.log", "log/log_tx.log", "log/check_addr.log"]
for file in log_files:
shutil.copy(file, dir + "/" + time.strftime("%Y_%m_%d_%H_%M_%S_") +
file.replace("log/", ""))
# Running tests as sudo implies root permissions on created directories/files.
# This function sets the default permission mode to dirs/files in given path
# recursively.
def set_default_chmod_recurs(path):
for root, dirs, files in os.walk(path):
for d in dirs:
os.chmod(os.path.join(root, d), 0o0777)
for f in files:
os.chmod(os.path.join(root, f), 0o0777)