You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.9 KiB
68 lines
1.9 KiB
#!/usr/bin/env python
|
|
#
|
|
# Rebuilds the version using git describe
|
|
#
|
|
import sys
|
|
from subprocess import Popen
|
|
from os import listdir, EX_OK, EX_USAGE, EX_SOFTWARE
|
|
from os.path import isfile, isdir, abspath, basename
|
|
from tempfile import NamedTemporaryFile
|
|
from glob import glob
|
|
|
|
|
|
def main(args):
|
|
if len(args) < 2 or not isfile(args[0]) or not isdir(args[1]):
|
|
print("Usage:")
|
|
print(" arg 1: libUncrustify.js file path")
|
|
print(" arg 2: test directory path")
|
|
return EX_USAGE
|
|
|
|
c_red = '\033[31m'
|
|
c_green = '\033[32m'
|
|
c_end = '\033[0m'
|
|
|
|
js_file_path = args[0]
|
|
passed = 0
|
|
total = 0
|
|
|
|
test_files_dir = abspath(args[1])
|
|
test_files = glob(test_files_dir+"/test_*.js")
|
|
temp_file = NamedTemporaryFile(delete=True)
|
|
|
|
for test_file_path in test_files:
|
|
total += 1
|
|
pt_strg = "Testing %s: " % basename(test_file_path)
|
|
pt_strg_len = len(pt_strg)
|
|
|
|
sys.stdout.write(pt_strg)
|
|
|
|
with open(temp_file.name, 'r+') as t:
|
|
process = Popen(["node", test_file_path, js_file_path], stderr=t, stdout=t)
|
|
process.wait()
|
|
|
|
if process.returncode == 0:
|
|
print(("%spassed.%s" % (c_green, c_end)).rjust(86-pt_strg_len))
|
|
passed += 1
|
|
else:
|
|
print(("%sfailed!%s" % (c_red, c_end)).rjust(78-pt_strg_len))
|
|
|
|
t.seek(0)
|
|
text = t.read()
|
|
print(text)
|
|
|
|
if total == 0:
|
|
print("%sError%s: no test files found in %s" % (c_red, c_end, test_files_dir))
|
|
return EX_USAGE
|
|
|
|
print('-' * 80)
|
|
|
|
if passed == total:
|
|
print("%sAll %s tests passed%s" % (c_green, total, c_end))
|
|
return EX_OK
|
|
else:
|
|
print("%sWarning%s: %s/%s tests passed" % (c_red, c_end, passed, total))
|
|
return EX_SOFTWARE
|
|
|
|
if __name__ == '__main__':
|
|
exit(main(sys.argv[1:]))
|