diff --git a/script/util/run_tests.sh b/script/util/run_tests.sh index df1f29db..c70bb4bf 100644 --- a/script/util/run_tests.sh +++ b/script/util/run_tests.sh @@ -27,7 +27,7 @@ function run_tests { local cmd="out/Debug/${target}" shift - while getopts "df:ghpv" option; do + while getopts "df:s:ghpv" option; do case ${option} in h) usage @@ -48,6 +48,9 @@ function run_tests { v) args+=("--reporter=spec") ;; + s) + export TREE_SITTER_SEED=${OPTARG} + ;; esac done diff --git a/spec/runtime/language_specs.cc b/spec/runtime/language_specs.cc index d8d7f256..c902d35e 100644 --- a/spec/runtime/language_specs.cc +++ b/spec/runtime/language_specs.cc @@ -108,8 +108,6 @@ string random_words(size_t count) { START_TEST describe("Languages", [&]() { - srand(0); - for (const auto &pair : languages) { describe(("The " + pair.first + " parser").c_str(), [&]() { TSDocument *doc; @@ -117,6 +115,7 @@ describe("Languages", [&]() { before_each([&]() { doc = ts_document_make(); ts_document_set_language(doc, pair.second); + // ts_document_set_debugger(doc, log_debugger_make(true)); }); after_each([&]() { diff --git a/spec/runtime/runtime_specs.cc b/spec/runtime/runtime_specs.cc index cf8c6937..d6540167 100644 --- a/spec/runtime/runtime_specs.cc +++ b/spec/runtime/runtime_specs.cc @@ -1,5 +1,16 @@ #include "runtime/runtime_spec_helper.h" int main(int argc, char *argv[]) { + int seed; + const char *seed_env = getenv("TREE_SITTER_SEED"); + if (seed_env) { + seed = atoi(seed_env); + } else { + seed = time(nullptr); + } + + printf("Random seed: %d\n", seed); + srand(seed); + return bandit::run(argc, argv); }