Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(197)

Unified Diff: net/data/parse_certificate_unittest/rebase-errors.py

Issue 2805213004: Refactor how net/data/verify_certificate_chain_unittest/* (Closed)
Patch Set: fix android Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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__":

Powered by Google App Engine
This is Rietveld 408576698