Index: net/data/parse_certificate_unittest/rebase-errors.py |
diff --git a/net/data/verify_certificate_chain_unittest/rebase-errors.py b/net/data/parse_certificate_unittest/rebase-errors.py |
similarity index 64% |
copy from net/data/verify_certificate_chain_unittest/rebase-errors.py |
copy to net/data/parse_certificate_unittest/rebase-errors.py |
index a99d7db365c93920404005e8143255e084d12ff5..ebb8722e1d0cc4d5013bf1bf42c239996a421d4d 100755 |
--- a/net/data/verify_certificate_chain_unittest/rebase-errors.py |
+++ b/net/data/parse_certificate_unittest/rebase-errors.py |
@@ -11,18 +11,21 @@ error format. |
To use this run the affected tests, and then pass the input to this script |
(either via stdin, or as the first argument). For instance: |
- $ ./out/Release/net_unittests --gtest_filter="*VerifyCertificateChain*" | \ |
- net/data/verify_certificate_chain_unittest/rebase-errors.py |
+ $ ./out/Release/net_unittests --gtest_filter="*ParseCertificate*" | \ |
+ net/data/parse_certificate_unittest/rebase-errors.py |
The script works by scanning the stdout looking for gtest failures when |
-comparing "errors.ToDebugString(chain)". The C++ test side should have been |
+comparing "errors.ToDebugString()". The C++ test side should have been |
instrumented to dump out the test file's path on mismatch. |
-This script will then update the corresponding file(s) -- a .pem file, and |
-possibly an accompanying .py file. |
+This script will then update the corresponding .pem file |
""" |
+import sys |
+sys.path += ['../verify_certificate_chain_unittest'] |
+ |
import common |
+ |
import os |
import sys |
import re |
@@ -33,10 +36,10 @@ import re |
# * Group 2 of the match is file path (relative to //src) where the expected |
# errors were read from. |
failed_test_regex = re.compile(r""" |
-Value of: errors.ToDebugString\((?:test.chain)?\) |
+Value of: errors.ToDebugString\(\) |
Actual: "(.*)" |
(?:.|\n)+? |
-Test file: (.*) |
+Test file: (.*[.]pem) |
""", re.MULTILINE) |
@@ -68,19 +71,6 @@ def write_string_to_file(data, path): |
f.write(data) |
-def get_py_path(pem_path): |
- """Returns the .py filepath used to generate the given .pem path, which may |
- or may not exist. |
- |
- Some test files (notably those in verify_certificate_chain_unittest/ have a |
- "generate-XXX.py" script that builds the "XXX.pem" file. Build the path to |
- the corresponding "generate-XXX.py" (which may or may not exist).""" |
- file_name = os.path.basename(pem_path) |
- file_name_no_extension = os.path.splitext(file_name)[0] |
- py_file_name = 'generate-' + file_name_no_extension + '.py' |
- return os.path.join(os.path.dirname(pem_path), py_file_name) |
- |
- |
def replace_string(original, start, end, replacement): |
"""Replaces the specified range of |original| with |replacement|""" |
return original[0:start] + replacement + original[end:] |
@@ -102,22 +92,6 @@ def fixup_pem_file(path, actual_errors): |
write_string_to_file(contents, path) |
-def fixup_py_file(path, actual_errors): |
- """Replaces the 'errors = XXX' section of the test's python script""" |
- contents = read_file_to_string(path) |
- |
- # This assumes that the errors variable uses triple quotes. |
- prog = re.compile(r'^errors = (""".*?"""|None)', re.MULTILINE | re.DOTALL) |
- result = prog.search(contents) |
- |
- # Replace the stuff in between the triple quotes with the actual errors. |
- contents = replace_string(contents, result.start(1), result.end(1), |
- '"""' + actual_errors + '"""') |
- |
- # Update the file. |
- write_string_to_file(contents, path) |
- |
- |
def get_src_root(): |
"""Returns the path to the enclosing //src directory. This assumes the |
current script is inside the source tree.""" |
@@ -141,18 +115,6 @@ def get_abs_path(rel_path): |
return os.path.join(get_src_root(), rel_path) |
-def fixup_errors_for_file(actual_errors, pem_path): |
- """Updates the errors in |test_file_path| (.pem file) to match |
- |actual_errors|""" |
- |
- fixup_pem_file(pem_path, actual_errors) |
- |
- # If the test has a generator script update it too. |
- py_path = get_py_path(pem_path) |
- if os.path.isfile(py_path): |
- fixup_py_file(py_path, actual_errors) |
- |
- |
def main(): |
if len(sys.argv) > 2: |
print 'Usage: %s [path-to-unittest-stdout]' % (sys.argv[0]) |
@@ -170,7 +132,7 @@ def main(): |
actual_errors = m.group(1) |
actual_errors = actual_errors.decode('string-escape') |
relative_test_path = m.group(2) |
- fixup_errors_for_file(actual_errors, get_abs_path(relative_test_path)) |
+ fixup_pem_file(get_abs_path(relative_test_path), actual_errors) |
if __name__ == "__main__": |