Patchwork D12620: tests: make sure .js files stay in ASCII encoding (issue6559)

login
register
mail settings
Submitter phabricator
Date May 9, 2022, 5:07 p.m.
Message ID <differential-rev-PHID-DREV-pvmm2xan7tyh7qejxcyy-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/50972/
State New
Headers show

Comments

phabricator - May 9, 2022, 5:07 p.m.
av6 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D12620

AFFECTED FILES
  tests/test-check-encoding.t

CHANGE DETAILS




To: av6, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

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 <<EOF
+  > 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