Bug 1874644 [wpt PR 43993] - Rewrite prerender-while-prerender.html with a different...
[gecko.git] / config / check_js_msg_encoding.py
blob6543405f904438e3af235095edbd8a9fe92c6813
1 # vim: set ts=8 sts=4 et sw=4 tw=99:
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 # ----------------------------------------------------------------------------
7 # This script checks encoding of the files that define JSErrorFormatStrings.
9 # JSErrorFormatString.format member should be in ASCII encoding.
10 # ----------------------------------------------------------------------------
12 import os
13 import sys
15 from mozversioncontrol import get_repository_from_env
17 scriptname = os.path.basename(__file__)
18 expected_encoding = "ascii"
20 # The following files don't define JSErrorFormatString.
21 ignore_files = [
22 "dom/base/domerr.msg",
23 "js/xpconnect/src/xpc.msg",
27 def log_pass(filename, text):
28 print("TEST-PASS | {} | {} | {}".format(scriptname, filename, text))
31 def log_fail(filename, text):
32 print("TEST-UNEXPECTED-FAIL | {} | {} | {}".format(scriptname, filename, text))
35 def check_single_file(filename):
36 with open(filename, "rb") as f:
37 data = f.read()
38 try:
39 data.decode(expected_encoding)
40 except Exception:
41 log_fail(filename, "not in {} encoding".format(expected_encoding))
43 log_pass(filename, "ok")
44 return True
47 def check_files():
48 result = True
50 with get_repository_from_env() as repo:
51 root = repo.path
53 for filename, _ in repo.get_tracked_files_finder().find("**/*.msg"):
54 if filename not in ignore_files:
55 if not check_single_file(os.path.join(root, filename)):
56 result = False
58 return result
61 def main():
62 if not check_files():
63 sys.exit(1)
65 sys.exit(0)
68 if __name__ == "__main__":
69 main()