gecko/tools/check-moz-style/run_tests.py
2013-05-26 09:42:31 -04:00

79 lines
1.9 KiB
Python
Executable File

#!/usr/bin/python
#
# Any copyright is dedicated to the Public Domain.
# http://creativecommons.org/publicdomain/zero/1.0/
#
from __future__ import print_function
from modules.scm import detect_scm_system
from contextlib import closing
import checkmozstyle
import os
import modules.cpplint as cpplint
import StringIO
TESTS = [
# Empty patch
{
"patch": "tests/test1.patch",
"cpp": "tests/test1.cpp",
"out": "tests/test1.out"
},
# Bad header
{
"patch": "tests/test2.patch",
"cpp": "tests/test2.cpp",
"out": "tests/test2.out"
},
# Bad Description
{
"patch": "tests/test3.patch",
"cpp": "tests/test3.cpp",
"out": "tests/test3.out"
},
# readability tests
{
"patch": "tests/test4.patch",
"cpp": "tests/test4.cpp",
"out": "tests/test4.out"
},
# runtime tests
{
"patch": "tests/test5.patch",
"cpp": "tests/test5.cpp",
"out": "tests/test5.out"
},
]
def main():
cwd = os.path.abspath('.')
scm = detect_scm_system(cwd)
cpplint.use_mozilla_styles()
(args, flags) = cpplint.parse_arguments([])
for test in TESTS:
with open(test["patch"]) as fh:
patch = fh.read()
with closing(StringIO.StringIO()) as output:
cpplint.set_stream(output)
checkmozstyle.process_patch(patch, cwd, cwd, scm)
result = output.getvalue()
with open(test["out"]) as fh:
expected_output = fh.read()
test_status = "PASSED"
if result != expected_output:
test_status = "FAILED"
print("TEST " + test["patch"] + " " + test_status)
print("Got result:\n" + result + "Expected:\n" + expected_output)
else:
print("TEST " + test["patch"] + " " + test_status)
if __name__ == "__main__":
main()