WIP: Migrate Tezos to QCheck2
Context
https://github.com/c-cube/qcheck/pull/116 creates a QCheck2 module with integrated shrinking.
In the following release of QCheck2, the type arbitrary will also be removed, we will directly use
Gen.t
This MR (currently WIP) tries and uses this new module.
Closes #1583
Manually testing the MR
The easiest way is to clone the MR branch of QCheck and symlink it in vendors/ (so that you can remove the link without removing the repository):
# In your favorite folder to clone Git repositories
$ git clone --branch=feat/integratedShrinking git@github.com:Sir4ur0n/qcheck.git
$ cd <path/to/your/tezos/project>
$ ln -s <path/to/your/qcheck/clone> vendors/
Now run all changed tests:
$ dune build @src/lib_base/test/runtest_p2p_addr -f && \
dune exec src/lib_base/test/test_time.exe -f && \
dune test src/lib_lwt_result_stdlib -f && \
dune build @src/lib_protocol_environment/runtest_mem_context_array_theory -f && \
dune build @src/lib_proxy/runtest_fuzzing_light -f && \
dune build @src/lib_rpc_http/runtest -f && \
dune exec src/lib_shell/test/test_synchronisation_heuristic_fuzzy.exe -f && \
dune build @src/lib_stdlib/test/runtest_bounded_heap -f && \
dune build @src/lib_stdlib/test/runtest_tzList -f && \
dune build @src/proto_010_PtGRANAD/lib_protocol/runtest_saturation_fuzzing -f && \
dune exec src/proto_010_PtGRANAD/lib_protocol/test/test_gas_properties.exe -f && \
dune build @src/proto_010_PtGRANAD/lib_protocol/runtest_test_tez_repr -f && \
dune build @src/proto_alpha/lib_protocol/runtest_saturation_fuzzing -f && \
dune exec src/proto_alpha/lib_protocol/test/test_gas_properties.exe -f && \
dune build @src/proto_alpha/lib_protocol/runtest_test_tez_repr -f
Checklist
-
Document the interface of any function added or modified (see the coding guidelines) -
Document any change to the user interface, including configuration parameters (see node configuration) -
Provide automatic testing (see the testing guide). -
For new features and bug fixes, add an item in the appropriate changelog ( docs/protocols/alpha.rstfor the protocol and the environment, theDevelopment Versionsection ofCHANGES.mdfor everything else). -
Select suitable reviewers using the Reviewersfield below.
Edited by Julien Debon