# HG changeset patch # User Anton Shestakov # Date 2022-05-02 12:27:14 # Node ID 237855525f64d0584698551d22d80d59f237aaa4 # Parent a17ffde1e71b1c9de5899ae8d5078e67c54ef1d3 tests: make sure .js files stay in ASCII encoding (issue6559) Differential Revision: https://phab.mercurial-scm.org/D12620 diff --git a/tests/test-check-encoding.t b/tests/test-check-encoding.t new file mode 100644 --- /dev/null +++ b/tests/test-check-encoding.t @@ -0,0 +1,26 @@ +#require test-repo hg10 + + $ . "$TESTDIR/helpers-testrepo.sh" + + $ cat > $TESTTMP/check_ascii.py < import sys + > for file_path in sys.argv[1:]: + > with open(file_path, 'br') as f: + > try: + > f.read().decode('ascii', 'strict') + > except UnicodeDecodeError as exc: + > print('%s: %s' % (file_path, exc)) + > EOF + +There are some web servers in the wild that can serve static files with an +incorrect encoding (e.g. https://bz.mercurial-scm.org/show_bug.cgi?id=6559). +One way to prevent any issues is to not use any non-ASCII characters, e.g. +URL-encoding them or using HTML entities. + +check charset of all tracked files ending in .js + + $ cd "`dirname "$TESTDIR"`" + + $ testrepohg locate 'set:**.js' \ + > 2>/dev/null \ + > | xargs "$PYTHON" $TESTTMP/check_ascii.py