From 4bc54e2b39f2f6d59832a9969d4f3c470b599b26 Mon Sep 17 00:00:00 2001 From: Romain Bardou Date: Fri, 4 Nov 2022 10:31:55 +0100 Subject: [PATCH 1/2] Manifest: simplify lib_base test declaration --- manifest/main.ml | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/manifest/main.ml b/manifest/main.ml index ebfa8ee5cebb..5b06e5417197 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -1184,9 +1184,11 @@ let octez_base_unix = uri; ] -let lib_base_tests ?dep_files names = +let _octez_base_tests = tests - names + [ + "test_bounded"; "test_time"; "test_protocol"; "test_p2p_addr"; "test_sized"; + ] ~path:"src/lib_base/test" ~opam:"tezos-base" ~deps: @@ -1197,18 +1199,14 @@ let lib_base_tests ?dep_files names = qcheck_alcotest; octez_test_helpers |> open_; ] - ?dep_files + ~dep_files: + [ + (* Note: those files are only actually needed by test_p2p_addr. *) + "points.ok"; + "points.ko"; + ] ~modes:[Native; JS] ~js_compatible:true - ~modules:names - -let _octez_base_tests_1 = - lib_base_tests ["test_bounded"; "test_time"; "test_protocol"] - -let _octez_base_tests_2 = - lib_base_tests ["test_p2p_addr"] ~dep_files:["points.ok"; "points.ko"] - -let _octez_base_tests_3 = lib_base_tests ["test_sized"] let _octez_base_unix_tests = test -- GitLab From bb4796109c689bd531e88e13259d6ccef01cb761 Mon Sep 17 00:00:00 2001 From: Romain Bardou Date: Fri, 4 Nov 2022 10:57:01 +0100 Subject: [PATCH 2/2] Base: migrate tests to Alcotezt --- manifest/main.ml | 8 ++- opam/tezos-base.opam | 5 +- src/lib_base/test/dune | 105 +++++++++-------------------- src/lib_base/test/test_bounded.ml | 2 +- src/lib_base/test/test_p2p_addr.ml | 2 +- tezt/tests/dune | 3 +- 6 files changed, 44 insertions(+), 81 deletions(-) diff --git a/manifest/main.ml b/manifest/main.ml index 5b06e5417197..b5f25355111e 100644 --- a/manifest/main.ml +++ b/manifest/main.ml @@ -389,7 +389,7 @@ let tezt_core_lib = let tezt_js_lib = external_sublib tezt_lib ~js_compatible:true "tezt.js" -let tezt ~opam ~path ?js_compatible ?modes ?(deps = []) ?dep_globs +let tezt ~opam ~path ?js_compatible ?modes ?(deps = []) ?dep_globs ?dep_files ?opam_with_test ?synopsis l = tezt_without_tezt_lib_dependency ~opam @@ -401,6 +401,7 @@ let tezt ~opam ~path ?js_compatible ?modes ?(deps = []) ?dep_globs ~exe_deps:[tezt_lib] ~js_deps:[tezt_js_lib] ?dep_globs + ?dep_files ?opam_with_test l @@ -1185,7 +1186,7 @@ let octez_base_unix = ] let _octez_base_tests = - tests + tezt [ "test_bounded"; "test_time"; "test_protocol"; "test_p2p_addr"; "test_sized"; ] @@ -1196,8 +1197,9 @@ let _octez_base_tests = octez_base |> open_; octez_error_monad |> open_; data_encoding; - qcheck_alcotest; octez_test_helpers |> open_; + qcheck_alcotest; + alcotezt; ] ~dep_files: [ diff --git a/opam/tezos-base.opam b/opam/tezos-base.opam index ccae4c4d6f5a..c8ad4e8bb842 100644 --- a/opam/tezos-base.opam +++ b/opam/tezos-base.opam @@ -24,12 +24,15 @@ depends: [ "uri" { >= "3.1.0" } "tezos-hacl" "tezos-stdlib-unix" - "qcheck-alcotest" { with-test & >= "0.20" } "tezos-test-helpers" {with-test} + "qcheck-alcotest" { with-test & >= "0.20" } + "tezt" { with-test & >= "3.0.0" } + "octez-alcotezt" {with-test} ] build: [ ["rm" "-r" "vendors"] ["dune" "build" "-p" name "-j" jobs] ["dune" "runtest" "-p" name "-j" jobs] {with-test} + ["dune" "build" "@runtezt" "-p" name "-j" jobs] {with-test} ] synopsis: "Tezos: meta-package and pervasive type definitions for Tezos" diff --git a/src/lib_base/test/dune b/src/lib_base/test/dune index af54f30a627d..f70a1b5aeef2 100644 --- a/src/lib_base/test/dune +++ b/src/lib_base/test/dune @@ -3,105 +3,62 @@ (env (_ (env-vars (NODE_PRELOAD hacl-wasm,ocaml-bls12-381,secp256k1-wasm)))) -(executables - (names test_bounded test_time test_protocol) - (modes native js) +(library + (name src_lib_base_test_tezt_lib) + (instrumentation (backend bisect_ppx)) (libraries + tezt.core tezos-base tezos-error-monad data-encoding + tezos-test-helpers qcheck-alcotest - tezos-test-helpers) + octez-alcotezt) (js_of_ocaml) + (library_flags (:standard -linkall)) (flags (:standard) + -open Tezt_core + -open Tezt_core.Base -open Tezos_base -open Tezos_error_monad - -open Tezos_test_helpers) - (modules test_bounded test_time test_protocol)) - -(rule - (alias runtest) - (package tezos-base) - (action (run %{dep:./test_bounded.exe}))) - -(rule - (alias runtest) - (package tezos-base) - (action (run %{dep:./test_time.exe}))) - -(rule - (alias runtest) - (package tezos-base) - (action (run %{dep:./test_protocol.exe}))) - -(rule - (alias runtest_js) - (package tezos-base) - (action (run node %{dep:./test_bounded.bc.js}))) - -(rule - (alias runtest_js) - (package tezos-base) - (action (run node %{dep:./test_time.bc.js}))) - -(rule - (alias runtest_js) - (package tezos-base) - (action (run node %{dep:./test_protocol.bc.js}))) + -open Tezos_test_helpers + -open Octez_alcotezt) + (modules test_bounded test_time test_protocol test_p2p_addr test_sized)) (executable - (name test_p2p_addr) - (modes native js) + (name main) + (modes native) (libraries - tezos-base - tezos-error-monad - data-encoding - qcheck-alcotest - tezos-test-helpers) - (js_of_ocaml) - (flags - (:standard) - -open Tezos_base - -open Tezos_error_monad - -open Tezos_test_helpers) - (modules test_p2p_addr)) + src_lib_base_test_tezt_lib + tezt) + (modules main)) (rule - (alias runtest) + (alias runtezt) (package tezos-base) (deps points.ok points.ko) - (action (run %{dep:./test_p2p_addr.exe}))) + (action (run %{dep:./main.exe}))) (rule - (alias runtest_js) - (package tezos-base) - (deps points.ok points.ko) - (action (run node %{dep:./test_p2p_addr.bc.js}))) + (targets main.ml) + (action (with-stdout-to %{targets} (echo "let () = Tezt.Test.run ()")))) (executable - (name test_sized) - (modes native js) + (name main_js) + (modes js) (libraries - tezos-base - tezos-error-monad - data-encoding - qcheck-alcotest - tezos-test-helpers) + src_lib_base_test_tezt_lib + tezt.js) (js_of_ocaml) - (flags - (:standard) - -open Tezos_base - -open Tezos_error_monad - -open Tezos_test_helpers) - (modules test_sized)) + (modules main_js)) (rule - (alias runtest) + (alias runtezt_js) (package tezos-base) - (action (run %{dep:./test_sized.exe}))) + (deps points.ok points.ko) + (action (run node %{dep:./main_js.bc.js}))) (rule - (alias runtest_js) - (package tezos-base) - (action (run node %{dep:./test_sized.bc.js}))) + (targets main_js.ml) + (action (with-stdout-to %{targets} (echo "let () = Tezt_js.Test.run ()")))) diff --git a/src/lib_base/test/test_bounded.ml b/src/lib_base/test/test_bounded.ml index c8795c8d9620..cfd150d44e73 100644 --- a/src/lib_base/test/test_bounded.ml +++ b/src/lib_base/test/test_bounded.ml @@ -266,7 +266,7 @@ end = struct in let* ety = oneofl values in match ety with - | E (type a) (ty : a Bounded.Internal_for_tests.t) -> + | E ty -> let* (module S : S) = gen_from_ty ty in let* element = S.gen in return (E' {bounded = (module S); element}) diff --git a/src/lib_base/test/test_p2p_addr.ml b/src/lib_base/test/test_p2p_addr.ml index 55b3b8e1daaf..5b87808e231f 100644 --- a/src/lib_base/test/test_p2p_addr.ml +++ b/src/lib_base/test/test_p2p_addr.ml @@ -117,7 +117,7 @@ let eq l r = eq_addr l.addr r.addr && l.port = r.port && eq_peer_id l.peer_id r.peer_id let process_points filename f = - let file = open_in filename in + let file = open_in (project_root // "src/lib_base/test" // filename) in try while true do f (input_line file) diff --git a/tezt/tests/dune b/tezt/tests/dune index cfed44a9ad95..6029b9ee3d17 100644 --- a/tezt/tests/dune +++ b/tezt/tests/dune @@ -22,7 +22,8 @@ src_lib_p2p_tezt_tezt_lib src_lib_lwt_result_stdlib_test_tezt_lib src_lib_error_monad_test_tezt_lib - src_lib_benchmark_test_tezt_lib) + src_lib_benchmark_test_tezt_lib + src_lib_base_test_tezt_lib) (flags (:standard) -open Tezt -- GitLab