author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
Tue, 10 May 2022 20:30:26 +0100 | |
changeset 49190 | 4ff4e23de7df |
parent 49189 | 237855525f64 |
permissions | -rw-r--r-- |
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 |