tests/test-check-encoding.t
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 09 Sep 2022 12:45:26 -0700
changeset 49495 59a72267f5ce
parent 49189 237855525f64
permissions -rw-r--r--
fsmonitor: migrate Python ABCs from collections to collections.abc The Collections Abstract Base Classes in the collections module are deprecated since Python 3.3 in favor of collections.abc, and removed in Python 3.10.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49189
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     1
#require test-repo hg10
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     2
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     4
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     5
  $ cat > $TESTTMP/check_ascii.py <<EOF
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     6
  > import sys
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     7
  > for file_path in sys.argv[1:]:
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     8
  >     with open(file_path, 'br') as f:
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
     9
  >         try:
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    10
  >             f.read().decode('ascii', 'strict')
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    11
  >         except UnicodeDecodeError as exc:
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    12
  >             print('%s: %s' % (file_path, exc))
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    13
  > EOF
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    14
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    15
There are some web servers in the wild that can serve static files with an
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    16
incorrect encoding (e.g. https://bz.mercurial-scm.org/show_bug.cgi?id=6559).
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    17
One way to prevent any issues is to not use any non-ASCII characters, e.g.
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    18
URL-encoding them or using HTML entities.
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    19
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    20
check charset of all tracked files ending in .js
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    21
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    22
  $ cd "`dirname "$TESTDIR"`"
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    23
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    24
  $ testrepohg locate 'set:**.js' \
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    25
  > 2>/dev/null \
237855525f64 tests: make sure .js files stay in ASCII encoding (issue6559)
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
    26
  > | xargs "$PYTHON" $TESTTMP/check_ascii.py