Squash commits for public release
This commit is contained in:
57
utils/test/test.py
Normal file
57
utils/test/test.py
Normal file
@@ -0,0 +1,57 @@
|
||||
import subprocess
|
||||
import sys
|
||||
import os
|
||||
from termcolor import colored
|
||||
import signal
|
||||
|
||||
# verbose
|
||||
flag = ""
|
||||
if len(sys.argv) >= 2:
|
||||
flag = sys.argv[1]
|
||||
|
||||
process = subprocess.Popen(
|
||||
"./run_tester.sh", stdout=subprocess.PIPE, preexec_fn=os.setpgrp)
|
||||
string = ""
|
||||
|
||||
|
||||
dumping_kasan = False
|
||||
|
||||
def process_string(string):
|
||||
global dumping_kasan
|
||||
|
||||
if flag == "verbose" or dumping_kasan:
|
||||
print(string)
|
||||
|
||||
if (string.startswith("[OK]")):
|
||||
print(colored("ok ", color="green", attrs=[
|
||||
"bold"]), string.replace("$", "/")[5:])
|
||||
|
||||
if (string.startswith("[MSG]")):
|
||||
print(string[6:])
|
||||
|
||||
if (string.startswith("[ALL TESTS PASSED]")):
|
||||
print(colored(string, color="green", attrs=["bold"]))
|
||||
os.killpg(os.getpgid(process.pid), signal.SIGTERM)
|
||||
|
||||
if (string.startswith("[FAILED]")):
|
||||
print(colored("failed ", color="red", attrs=[
|
||||
"bold"]), string.replace("$", "/")[9:])
|
||||
os.killpg(os.getpgid(process.pid), signal.SIGTERM)
|
||||
exit(1)
|
||||
|
||||
if (string.startswith("======== KASAN ERROR ========")):
|
||||
dumping_kasan = True
|
||||
print(colored(string, color="red", attrs=["bold"]))
|
||||
|
||||
if (string.startswith("=============================")):
|
||||
dumping_kasan = False
|
||||
os.killpg(os.getpgid(process.pid), signal.SIGTERM)
|
||||
|
||||
|
||||
for c in iter(lambda: process.stdout.read(1), b''):
|
||||
letter = c.decode()
|
||||
if letter == "\n":
|
||||
process_string(string)
|
||||
string = ""
|
||||
else:
|
||||
string += letter
|
||||
Reference in New Issue
Block a user