xref: /aosp_15_r20/external/lz4/tests/unicode_lint.sh (revision 27162e4e17433d5aa7cb38e7b6a433a09405fc7f)
1*27162e4eSAndroid Build Coastguard Worker#!/bin/bash
2*27162e4eSAndroid Build Coastguard Worker
3*27162e4eSAndroid Build Coastguard Worker# `unicode_lint.sh' determines whether source files under the ./lib/, ./tests/ and ./programs/ directories
4*27162e4eSAndroid Build Coastguard Worker# contain Unicode characters, and fails if any do.
5*27162e4eSAndroid Build Coastguard Worker#
6*27162e4eSAndroid Build Coastguard Worker# See https://github.com/lz4/lz4/issues/1018
7*27162e4eSAndroid Build Coastguard Worker
8*27162e4eSAndroid Build Coastguard Workerecho "Ensure no unicode character is present in source files *.{c,h}"
9*27162e4eSAndroid Build Coastguard Workerpass=true
10*27162e4eSAndroid Build Coastguard Worker
11*27162e4eSAndroid Build Coastguard Worker# Scan ./lib/ for Unicode in source (*.c, *.h) files
12*27162e4eSAndroid Build Coastguard Workerecho "Scanning lib/"
13*27162e4eSAndroid Build Coastguard Workerresult=$(
14*27162e4eSAndroid Build Coastguard Worker	find ./lib/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \;
15*27162e4eSAndroid Build Coastguard Worker)
16*27162e4eSAndroid Build Coastguard Workerif [[ $result ]]; then
17*27162e4eSAndroid Build Coastguard Worker	echo "$result"
18*27162e4eSAndroid Build Coastguard Worker	pass=false
19*27162e4eSAndroid Build Coastguard Workerfi
20*27162e4eSAndroid Build Coastguard Worker
21*27162e4eSAndroid Build Coastguard Worker# Scan ./programs/ for Unicode in source (*.c, *.h) files
22*27162e4eSAndroid Build Coastguard Workerecho "Scanning programs/"
23*27162e4eSAndroid Build Coastguard Workerresult=$(
24*27162e4eSAndroid Build Coastguard Worker	find ./programs/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \;
25*27162e4eSAndroid Build Coastguard Worker)
26*27162e4eSAndroid Build Coastguard Workerif [[ $result ]]; then
27*27162e4eSAndroid Build Coastguard Worker	echo "$result"
28*27162e4eSAndroid Build Coastguard Worker	pass=false
29*27162e4eSAndroid Build Coastguard Workerfi
30*27162e4eSAndroid Build Coastguard Worker
31*27162e4eSAndroid Build Coastguard Worker# Scan ./tests/ for Unicode in source (*.c, *.h) files
32*27162e4eSAndroid Build Coastguard Workerecho "Scanning tests/"
33*27162e4eSAndroid Build Coastguard Workerresult=$(
34*27162e4eSAndroid Build Coastguard Worker	find ./tests/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \;
35*27162e4eSAndroid Build Coastguard Worker)
36*27162e4eSAndroid Build Coastguard Workerif [[ $result ]]; then
37*27162e4eSAndroid Build Coastguard Worker	echo "$result"
38*27162e4eSAndroid Build Coastguard Worker	pass=false
39*27162e4eSAndroid Build Coastguard Workerfi
40*27162e4eSAndroid Build Coastguard Worker
41*27162e4eSAndroid Build Coastguard Workerif [ "$pass" = true ]; then
42*27162e4eSAndroid Build Coastguard Worker	echo "All tests successful: no unicode character detected"
43*27162e4eSAndroid Build Coastguard Worker	echo "Result: PASS"
44*27162e4eSAndroid Build Coastguard Worker	exit 0
45*27162e4eSAndroid Build Coastguard Workerelse
46*27162e4eSAndroid Build Coastguard Worker	echo "Result: FAIL"
47*27162e4eSAndroid Build Coastguard Worker	exit 1
48*27162e4eSAndroid Build Coastguard Workerfi
49