annotate tests/test-check-encoding.t @ 51388:cb5175edd225 stable

cext: fix potential memory leaks of list items appended with PyList_Append Also reduce the duplication in the tricky code that uses PyList_Append by extracting it into a function `pylist_append_owned`.
author Arseniy Alekseyev <aalekseyev@janestreet.com>
date Thu, 15 Feb 2024 15:21:43 +0000
parents 237855525f64
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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