Regression tests
This commit is contained in:
@@ -7,6 +7,7 @@ import __builtin__
|
|||||||
import sys
|
import sys
|
||||||
reload(sys)
|
reload(sys)
|
||||||
sys.setdefaultencoding('utf8')
|
sys.setdefaultencoding('utf8')
|
||||||
|
import argparse
|
||||||
import datetime
|
import datetime
|
||||||
import os
|
import os
|
||||||
import signal
|
import signal
|
||||||
@@ -193,14 +194,17 @@ def test(tint2path, config):
|
|||||||
stop_xvfb()
|
stop_xvfb()
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def show_timestamp():
|
||||||
utc_datetime = datetime.datetime.utcnow()
|
utc_datetime = datetime.datetime.utcnow()
|
||||||
print("Last updated:", utc_datetime.strftime("%Y-%m-%d %H:%M UTC"))
|
print("Last updated:", utc_datetime.strftime("%Y-%m-%d %H:%M UTC"))
|
||||||
out, _ = run("git show -s '--format=%h %s'", True).communicate()
|
|
||||||
|
|
||||||
|
def show_git_info(src_dir):
|
||||||
|
out, _ = run("cd {0}; git show -s '--format=%h %s %d'".format(src_dir), True).communicate()
|
||||||
print("Last commit:", out.strip())
|
print("Last commit:", out.strip())
|
||||||
diff, _ = run("git diff", True).communicate()
|
diff, _ = run("cd {0}; git diff".format(src_dir), True).communicate()
|
||||||
diff = diff.strip()
|
diff = diff.strip()
|
||||||
diff_staged, _ = run("git diff --staged", True).communicate()
|
diff_staged, _ = run("cd {0}; git diff --staged".format(src_dir), True).communicate()
|
||||||
diff_staged = diff_staged.strip()
|
diff_staged = diff_staged.strip()
|
||||||
if diff or diff_staged:
|
if diff or diff_staged:
|
||||||
print("Repository not clean", warning)
|
print("Repository not clean", warning)
|
||||||
@@ -214,18 +218,24 @@ def main():
|
|||||||
print("```")
|
print("```")
|
||||||
print(diff_staged)
|
print(diff_staged)
|
||||||
print("```")
|
print("```")
|
||||||
|
|
||||||
|
|
||||||
|
def show_system_info():
|
||||||
out, _ = run("lsb_release -sd", True).communicate()
|
out, _ = run("lsb_release -sd", True).communicate()
|
||||||
out.strip()
|
out.strip()
|
||||||
print("System:", out)
|
print("System:", out)
|
||||||
out, _ = run("cat /proc/cpuinfo | grep 'model name' | head -n1 | cut -d ':' -f2", True).communicate()
|
out, _ = run("cat /proc/cpuinfo | grep 'model name' | head -n1 | cut -d ':' -f2", True).communicate()
|
||||||
out.strip()
|
out.strip()
|
||||||
print("Hardware:", out)
|
print("Hardware:", out)
|
||||||
|
|
||||||
|
|
||||||
|
def compile_and_report(src_dir):
|
||||||
print("")
|
print("")
|
||||||
print("# Compilation")
|
print("# Compilation")
|
||||||
cmake_flags = "-DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON"
|
cmake_flags = "-DCMAKE_BUILD_TYPE=Debug -DENABLE_ASAN=ON"
|
||||||
print("Flags:", cmake_flags)
|
print("Flags:", cmake_flags)
|
||||||
start = time.time()
|
start = time.time()
|
||||||
c = run("rm -rf build; mkdir build; cd build; cmake {0} ../../ ; make -j7".format(cmake_flags), True)
|
c = run("rm -rf build; mkdir build; cd build; cmake {0} {1} ; make -j7".format(cmake_flags, src_dir), True)
|
||||||
out, _ = c.communicate()
|
out, _ = c.communicate()
|
||||||
duration = time.time() - start
|
duration = time.time() - start
|
||||||
if c.returncode != 0:
|
if c.returncode != 0:
|
||||||
@@ -245,16 +255,35 @@ def main():
|
|||||||
print("```")
|
print("```")
|
||||||
else:
|
else:
|
||||||
print("Status: Succeeded in %.1f seconds" % (duration,), ok)
|
print("Status: Succeeded in %.1f seconds" % (duration,), ok)
|
||||||
|
|
||||||
|
|
||||||
|
def run_test(config, index):
|
||||||
|
print("")
|
||||||
|
print("# Test", index)
|
||||||
|
print("Config: [{0}]({1})".format(config.split("/")[-1].replace(".tint2rc", ""), "https://gitlab.com/o9000/tint2/blob/master/test/" + config))
|
||||||
|
test("./build/tint2", config)
|
||||||
|
|
||||||
|
|
||||||
|
def run_tests():
|
||||||
configs = []
|
configs = []
|
||||||
configs += ["./configs/tint2/" +s for s in os.listdir("./configs/tint2") ]
|
configs += ["./configs/tint2/" +s for s in os.listdir("./configs/tint2") ]
|
||||||
configs += ["../themes/" + s for s in os.listdir("../themes")]
|
configs += ["../themes/" + s for s in os.listdir("../themes")]
|
||||||
index = 0
|
index = 0
|
||||||
for config in configs:
|
for config in configs:
|
||||||
index += 1
|
index += 1
|
||||||
print("")
|
run_test(config, index)
|
||||||
print("# Test", index)
|
|
||||||
print("Config: [{0}]({1})".format(config.split("/")[-1].replace(".tint2rc", ""), "https://gitlab.com/o9000/tint2/blob/master/test/" + config))
|
|
||||||
test("./build/tint2", config)
|
def main():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("--src_dir", default="../../")
|
||||||
|
args = parser.parse_args()
|
||||||
|
show_timestamp()
|
||||||
|
show_git_info(args.src_dir)
|
||||||
|
show_system_info()
|
||||||
|
compile_and_report(args.src_dir)
|
||||||
|
run_tests()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user