Commit graph

195 commits

Author SHA1 Message Date
Max Brunsfeld f52271352b Merge branch 'master' into node-fields 2019-03-05 08:08:05 -08:00
Max Brunsfeld 4e059e18cb 0.14.5 2019-02-25 12:55:28 -08:00
Max Brunsfeld 18a13b457d Get basic field API working 2019-02-08 15:16:56 -08:00
Max Brunsfeld 7f66d2406f test script: Tell cargo which package has the tests 2019-02-08 15:16:56 -08:00
Max Brunsfeld 6d6e29f2dc Add usage info to version script 2019-02-06 11:56:12 -08:00
Phil Turnbull d102c473e8 Remove invalid characters from grammar names 2019-02-05 13:37:59 +00:00
Phil Turnbull ce040e21e1 trace-pc-guard is unsupported in newer versions of clang 2019-02-05 13:35:30 +00:00
Max Brunsfeld 6ca1047bb0 Remove ci shell script 2019-02-01 20:19:38 -08:00
Max Brunsfeld 91da7206b7 Clean up environment variables after windows batch scripts 2019-02-01 15:54:34 -08:00
Max Brunsfeld 4cac85fec4 Add benchmark script
* Structure `cli` crate as both a library and an executable, so that
benchmarks can import code from the crate.
* Import macros in the Rust 2018 style.
2019-02-01 15:17:35 -08:00
Max Brunsfeld 8e198016d8 Try to make build-fuzzers script work w/ new structure & build process 2019-01-27 21:17:31 -08:00
Max Brunsfeld 5927e104c2 Check tree consistency in randomized tests 2019-01-26 22:22:29 -08:00
Max Brunsfeld 5a12fbd927 Verify changed ranges in randomized tests 2019-01-25 15:20:34 -08:00
Max Brunsfeld 233d616ebf Add random mutation tests 2019-01-25 12:05:21 -08:00
Max Brunsfeld 71357afb2f Add version script 2019-01-17 15:59:12 -08:00
Max Brunsfeld a8292f4fe9 Load all fixture grammars dynamically
This way the build doesn't take forever any time a single grammar has 
been regenerated.
2019-01-15 13:21:48 -08:00
Max Brunsfeld 5c3c1dd0bd Get logging flags working properly with test script 2019-01-15 13:21:48 -08:00
Max Brunsfeld b1fa49448d Regenerate parsers on CI 2019-01-14 15:09:54 -08:00
Max Brunsfeld fab4673c14 Get fixture grammars building for library unit tests 2019-01-10 15:48:13 -08:00
Max Brunsfeld 0f2347b318 Just call the C lib 'the library' everywhere, don't call it a 'runtime' 2019-01-10 15:22:39 -08:00
Max Brunsfeld 98807d2053 Add debug and debug-graph flags to parse and test commands 2019-01-08 21:03:51 -08:00
Max Brunsfeld f059557a9d Move parser generation code in to 'generate' module within CLI crate 2019-01-07 10:23:01 -08:00
Max Brunsfeld dd416b0955 Update include paths to not reference 'runtime' directory 2019-01-04 17:33:34 -08:00
Max Brunsfeld 47607cecf4 Reorganize repo, add rust CLI and binding code, 2019-01-04 17:31:49 -08:00
Max Brunsfeld d79203f58c Add test script 2018-12-13 16:42:46 -08:00
mpsijm e0bcb27943
Pipe output of which (hash) to /dev/null 2018-11-20 22:52:44 +01:00
mpsijm 01fef6d81f
Remove -s option from which in test script
When I tried running the tests with a debugger, the script failed with the following message:

    Illegal option -s
    Usage: /usr/bin/which [-a] args
    Illegal option -s
    Usage: /usr/bin/which [-a] args
    No debugger found

In case this `-s` flag is needed for other OSes than Linux (I'm working with Ubuntu 18.04), this could be based on a `uname` check (like on line 44).
2018-11-20 10:33:48 +01:00
Max Brunsfeld 87c391f8af Use hash instead of which 2018-11-13 15:56:03 -08:00
Max Brunsfeld 62ded2aa1d Add c99 flag to build-runtime script 2018-11-13 15:46:39 -08:00
Max Brunsfeld 47918070f6 Add a single-source file way of building the runtime library 2018-11-13 15:36:21 -08:00
Max Brunsfeld 24d1e7ec7e Included embedded-template parser in randomized tests 2018-11-03 23:18:24 -07:00
Max Brunsfeld a8bcd2ce9e Forward arguments to jekyll serve in the serve-docs script 2018-08-13 18:03:57 -07:00
Max Brunsfeld e21b4505c8 Resume testing against master branch of fixture repos 2018-08-01 15:22:23 -07:00
Max Brunsfeld 68618f61a6 Test against immediate token branches of grammar repos 2018-08-01 14:23:52 -07:00
Max Brunsfeld 247848baf3 Return to using the master branch of tree-sitter-javascript for testing 2018-07-25 11:29:41 -07:00
Max Brunsfeld 9ecb20650b Fix logic for checking out branches in fixture repos 2018-07-17 15:46:14 -07:00
Max Brunsfeld 483881ec6a Use included range branch of javascript parser for testing on windows CI
Co-Authored-By: Ashi Krishnan <queerviolet@github.com>
2018-07-17 15:26:29 -07:00
Max Brunsfeld d8a420cad1 Use included range branch of javascript parser for testing 2018-07-17 14:04:37 -07:00
Max Brunsfeld 71f7bf2fca Fetch HTML grammar as a test fixture on windows too 2018-06-18 10:06:59 -07:00
Max Brunsfeld b14951de9d Included HTML parser in randomized test suite 2018-06-15 16:17:56 -07:00
Max Brunsfeld 10dcf050d6 Tweak docs styling, add serve-docs script 2018-06-12 17:58:38 -07:00
Max Brunsfeld 95fbc23fd6 Add support for running focused tests via windows test script 2018-05-21 14:09:42 -07:00
Max Brunsfeld 29c0cd3aa4 Add appveyor config 2018-05-18 09:58:34 -07:00
Max Brunsfeld e61edf5398 Don't perform platform-specific name mangling on C functions for bindings 2018-05-18 09:30:00 -07:00
Max Brunsfeld 572a60183c Suppress warnings associated w/ generated bindings 2018-05-17 17:41:44 -07:00
Max Brunsfeld 08217fff8d Get basic parsing working, add some unit tests 2018-05-17 17:16:35 -07:00
Max Brunsfeld 6e4115548c Initial commit 2018-05-17 14:30:03 -07:00
Max Brunsfeld 1eafcf0ba7 Make test script generate debug graphs even when assertions fail 2018-04-06 16:11:01 -07:00
Max Brunsfeld fe29173d5f
Merge pull request #142 from tree-sitter/fuzz-halt-recover
Add 'halt' and 'recover' modes to fuzzer
2018-03-14 09:28:58 -07:00
Phil Turnbull 547a71899c Allow extra libFuzzer arguments to script/reproduce 2018-03-12 12:54:06 -07:00
Max Brunsfeld 60eacbc7ff Delete .dot file after successfully generating SVGs 2018-03-05 09:35:12 -08:00
Phil Turnbull bc192d95ca Build fuzzer in 'halt' and 'recover' modes
Build each language fuzzer in two modes (halt_on_error=true and
halt_on_error=false) and use different timeouts for each fuzzer.

Also merge the run-fuzzer and reproduce scripts so they use identical
values of ASAN_OPTIONS/UBSAN_OPTIONS/etc0
2018-03-02 10:13:13 -08:00
Max Brunsfeld 777aca25c8 Fix errors in test script 2017-12-28 15:49:34 -08:00
Max Brunsfeld 6304a3bcd1 Make it easier to run tests with debug graphs 2017-12-28 12:41:23 -08:00
Phil Turnbull c57f8ae0a6 Allow fuzzer CFLAGS to be overridden by envrionment 2017-09-14 11:04:19 -04:00
Max Brunsfeld 05066e492e Fetch fixture grammars on appveyor 2017-08-08 14:47:43 -07:00
Max Brunsfeld 37836f593a Run tests on windows 2017-08-08 14:07:23 -07:00
Max Brunsfeld b03e9a636f Fix configure batch script and add test batch script 2017-08-07 15:36:14 -07:00
Max Brunsfeld 2854983342 Add windows configure script 2017-08-07 12:43:24 -07:00
Max Brunsfeld e5c3bf742d Update fixture grammars 2017-08-03 16:32:39 -07:00
Max Brunsfeld 09f4796f6b Get tests passing w/ new alias API 2017-08-01 14:35:34 -07:00
Max Brunsfeld 0d6ab65a97 Use branches of grammar repos that use new scanner API 2017-07-17 17:35:30 -07:00
Max Brunsfeld 9a04231ab1 Remove length restriction in external scanner serialization API 2017-07-17 17:12:36 -07:00
Max Brunsfeld 34279257f9 Merge pull request #91 from tree-sitter/libFuzzer
Add support for fuzzing with libFuzzer
2017-07-17 11:43:01 -07:00
Phil Turnbull 153c2033df Update list of test grammars 2017-07-14 13:50:42 -07:00
Phil Turnbull 798ef5e4dc Add libFuzzer support
This adds support for fuzzing tree-sitter grammars with libFuzzer. This
currently only works on Linux because of linking issues on macOS. Breifly, the
AddressSanitizer library is dynamically linked into the fuzzer binary and
cannot be found at runtime if built with a compiler that wasn't provided by
Xcode(?). The runtime library is statically linked on Linux so this isn't a
problem.
2017-07-14 13:50:41 -07:00
Max Brunsfeld 21bc50377e Run make with the right target when building benchmarks on CI 2017-07-06 12:36:57 -07:00
Max Brunsfeld 2b73a30fba Build benchmarks in release mode 2017-07-06 11:49:32 -07:00
Max Brunsfeld a64db98218 Rename lib.sh -> scan-build.sh 2017-07-06 10:32:41 -07:00
Max Brunsfeld 78333b70c0 Build benchmarks with scan-build on CI 2017-07-06 10:22:14 -07:00
Max Brunsfeld c53f9bcbd9 Build benchmarks in Test mode for now 2017-07-05 17:27:50 -07:00
Max Brunsfeld 17bc3dfaf7 Add a benchmark command
This command measures the speed of parsing each grammar's examples.
It also uses each grammar to parse all of the *other* grammars' examples
in order to measure error recovery performance with fairly large files.
2017-07-05 14:14:38 -07:00
Max Brunsfeld ca4db76bb1 Override LINK to call clang++ w/ -fsanitize=address in test script
Signed-off-by: Philip Turnbull <philipturnbull@github.com>
2017-06-27 15:44:58 -07:00
Max Brunsfeld 513edec7c1 Merge pull request #77 from philipturnbull/scan-build-fixes
Fix errors found by scan-build
2017-06-20 10:15:20 -07:00
Phil Turnbull 7bdb0917d3 Revert "Add standalone scan-build script"
This reverts commit 9135d14b81.
2017-06-19 10:24:40 -04:00
Phil Turnbull 1b9e78add2 Fix formatting and use '-n' 2017-06-19 10:24:08 -04:00
Phil Turnbull e9bf794cd9 Remove unneeded build step 2017-06-19 10:23:54 -04:00
Phil Turnbull ee3caafe7b Use -j2 on the CI boxes
The travis-ci trusty container has two cores.
2017-06-16 15:16:40 -04:00
Phil Turnbull 9135d14b81 Add standalone scan-build script
For running scan-build outside of CI, e.g. `./script/scan-build -j4`
2017-06-16 15:16:40 -04:00
Phil Turnbull 7171664eec Disable DeadStores scan-build checker
This silences a true, but minor, bug in the external json-parser:

externals/json-parser/json.c:653:37: warning: Value stored to 'b' is never read
                                    b = 0;
                                    ^   ~
2017-06-16 15:16:40 -04:00
Phil Turnbull 97cdd8b738 Run scan-build during CI
This bumps the travis-ci container image to Trusty so that we have a version of
clang that includes proper support for C++14.
2017-06-16 15:16:29 -04:00
Max Brunsfeld 97bcc86a3a Use master version of all fixture grammars 2017-03-19 22:19:35 -07:00
Max Brunsfeld 24878277e9 Use new version of python grammar in tests 2017-03-17 17:05:02 -07:00
Max Brunsfeld 6dc0ff359d Rename spec -> test
'Test' is a lot more straightforward of a name.
2017-03-09 20:40:01 -08:00
Max Brunsfeld 9b930748cf Test against a specific version of the javascript grammar for now 2017-02-07 17:49:31 -08:00
Max Brunsfeld 5c72c1e28b Fetch python grammar as part of CI 2016-12-20 13:06:16 -08:00
Max Brunsfeld cfef576a9f Remove google perftools dependency 2016-11-30 17:23:44 -08:00
Max Brunsfeld c0fb0c12a8 Don't use boost regex lib on travis 2016-11-18 14:46:53 -08:00
Max Brunsfeld 7968da672f Upgrade bandit test framework 2016-11-18 13:50:34 -08:00
Max Brunsfeld 4106ecda43 Remove logic for recovering from OOM 2016-11-04 09:18:38 -07:00
Max Brunsfeld 883a7c8266 In script/test, style SVG graphs for readability 2016-08-30 13:02:27 -07:00
Max Brunsfeld 04de7cc208 Make script/test -S flag work when there are assertion failures 2016-08-29 12:37:58 -07:00
Max Brunsfeld 607366a422 Add test script flag for piping stderr to dot to make an svg 2016-08-29 11:51:47 -07:00
Max Brunsfeld e1a3a1daeb Import error corpus entries from grammar repos
Now that error recovery requires no input for the grammar author, it shouldn't
be tested in the individual grammar repos.
2016-05-28 20:12:02 -07:00
Max Brunsfeld 8bfaa5ffc3 Add directory argument to format script 2016-04-11 23:11:37 -07:00
Max Brunsfeld 5a595d6e70 Clone fixture grammars from new tree-sitter org 2016-02-12 12:47:38 -08:00
Max Brunsfeld a302ee822a Add swift runtime memory memory leak to valgrind suppressions 2016-02-02 13:37:23 -08:00
Max Brunsfeld 2da716d659 Update help message for test script 2016-02-02 12:31:13 -08:00
Max Brunsfeld b1f4b046f5 Test script - allow valgrind to be run w/o the leak check 2016-01-29 17:03:35 -08:00
Max Brunsfeld ca6dfb81d9 Run valgrind with full leak check 2016-01-28 21:18:41 -08:00