@@ -6,30 +6,30 @@ if [[ "$(uname -s)" != Linux ]]; then
66 exit 1
77fi
88
9- if [[ -z " $LIB_FUZZER_PATH " ]]; then
10- echo " LIB_FUZZER_PATH not set"
11- exit 1
12- fi
13-
149CC=${CC:- clang}
1510CXX=${CXX:- clang++}
16- LINK=${LINK:- clang++}
1711
1812default_fuzz_flags=" -fsanitize=fuzzer,address,undefined"
1913
2014CFLAGS=${CFLAGS:- " $default_fuzz_flags " }
2115CXXFLAGS=${CXXFLAGS:- " $default_fuzz_flags " }
2216
2317export CFLAGS
24- make
18+ make CC= " $CC " CXX= " $CXX "
2519
2620if [ -z " $@ " ]; then
2721 languages=$( ls test/fixtures/grammars)
2822else
2923 languages=" $@ "
3024fi
3125
26+ mkdir -p test/fuzz/out
27+
3228for lang in ${languages[@]} ; do
29+ # skip typescript
30+ if [[ $lang == " typescript" ]]; then
31+ continue
32+ fi
3333 echo " Building $lang fuzzer..."
3434 lang_dir=" test/fixtures/grammars/$lang "
3535
@@ -54,19 +54,24 @@ for lang in ${languages[@]}; do
5454 highlights_filename=" ${lang_dir} /queries/highlights.scm"
5555 if [ -e " ${highlights_filename} " ]; then
5656 ts_lang_query_filename=" ${lang} .scm"
57- cp " ${highlights_filename} " " out/${ts_lang_query_filename} "
57+ cp " ${highlights_filename} " " test/fuzz/ out/${ts_lang_query_filename} "
5858 else
5959 ts_lang_query_filename=" "
6060 fi
6161
6262 # FIXME: We should extract the grammar name from grammar.js. Use the name of
6363 # the directory instead. Also, the grammar name needs to be a valid C
6464 # identifier so replace any '-' characters
65- ts_lang=" tree_sitter_$( echo $lang | tr -- - _) "
65+ ts_lang=" tree_sitter_$( echo " $lang " | tr -- - _) "
6666 $CXX $CXXFLAGS -std=c++11 -I lib/include -D TS_LANG=" $ts_lang " -D TS_LANG_QUERY_FILENAME=" \" ${ts_lang_query_filename} \" " \
6767 " test/fuzz/fuzzer.cc" " ${objects[@]} " \
68- libtree-sitter.a " $LIB_FUZZER_PATH " \
69- -o " out/${lang} _fuzzer"
68+ libtree-sitter.a \
69+ -o " test/fuzz/ out/${lang} _fuzzer"
7070
71- python test/fuzz/gen-dict.py " ${lang_dir} /src/grammar.json" > " out/$lang .dict"
71+ jq '
72+ [ ..
73+ | if .type? == "STRING" or (.type? == "ALIAS" and .named? == false) then .value else empty end
74+ | select(test("\\S") and length == utf8bytelength)
75+ ] | unique | .[]
76+ ' | sort
7277done
0 commit comments