secp256k1
secp256k1 copied to clipboard
Running a single test file
Similar to src/test/test_bitcoin --run-test=something I'd like to be able to run a single test file, because make check takes a while.
Maybe this is already possible, in which it just needs a README change...
Even with --disable-exhaustive-tests it's a bit slow when e.g. you're just trying to monkey-wrench test vectors.
./tests 4 or even ./tests 0 may help you.
./tests 0 fails with An iteration count of 0 or less is not allowed..
./tests 1 takes 14 seconds for me. Doable but not as nice as ~1 second.
PR #1211 is an attempt to implement this.
Maybe this is already possible...
Yes, it is possible when using CMake:
$ cmake -B build
$ cmake --build build
$ ctest --test-dir build --show-only
Internal ctest changing into directory: /home/hebasto/git/secp256k1/secp256k1/build
Test project /home/hebasto/git/secp256k1/secp256k1/build
Test #1: noverify_tests
Test #2: tests
Test #3: exhaustive_tests
Total Tests: 3
$ ctest --test-dir build --show-only -R ^tests
Internal ctest changing into directory: /home/hebasto/git/secp256k1/secp256k1/build
Test project /home/hebasto/git/secp256k1/secp256k1/build
Test #2: tests
Total Tests: 1
Maybe this is already possible...
Yes, it is possible when using CMake:
What’s displayed there are the test binaries, not the individual test cases @hebasto. Each binary contains multiple test cases, and at present there’s no way to specify which one to run. #1734 introduces that capability, along with support for test execution parallelization (which in my view is quite useful, since it lets you run the full suite quite fast with just a few workers).
@Sjors, feel welcome to explore it. Self-quote from #1734:
You can rapidly try it using ./tests -j=<workers_num> for parallel execution, or ./tests -t=<test_name> to run a specific test (use ./tests -print_tests to display all available tests). Or run ./tests -help to see all available options.
Also, you can repeat the -t arg (or -target) to specify multiple tests at the same time.