From 9a7e0992a9c8fb2a711ebe85e5aed25f7727a903 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 12:08:55 +0200 Subject: [PATCH 01/18] Tezt: fix next_protocol --- tezt/lib_tezos/protocol.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tezt/lib_tezos/protocol.ml b/tezt/lib_tezos/protocol.ml index 521493b59dac..0c2492860293 100644 --- a/tezt/lib_tezos/protocol.ml +++ b/tezt/lib_tezos/protocol.ml @@ -137,7 +137,7 @@ let write_parameter_file : let next_protocol = function | Ithaca -> Some Jakarta - | Jakarta -> None + | Jakarta -> Some Kathmandu | Kathmandu -> None | Alpha -> None -- GitLab From 69ccafcc43679a47f7a53cd0e6cd727c8830d628 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 12:12:57 +0200 Subject: [PATCH 02/18] Proto & Tezt: add comments for next_protocol and previous_protocol --- src/proto_alpha/lib_protocol/init_storage.ml | 4 +++- tezt/lib_tezos/protocol.ml | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/proto_alpha/lib_protocol/init_storage.ml b/src/proto_alpha/lib_protocol/init_storage.ml index 2e49c84bf062..b23f509b66ab 100644 --- a/src/proto_alpha/lib_protocol/init_storage.ml +++ b/src/proto_alpha/lib_protocol/init_storage.ml @@ -138,7 +138,9 @@ let prepare_first_block chain_id ctxt ~typecheck ~level ~timestamp = ( ctxt, commitments_balance_updates @ bootstrap_balance_updates @ deposits_balance_updates ) - | Jakarta_013 -> + | Jakarta_013 + (* Please update [next_protocol] and [previous_protocol] in + [tezt/lib_tezos/protocol.ml] when you update this value. *) -> (* TODO (#2704): possibly handle endorsements for migration block (in bakers); if that is done, do not set Storage.Tenderbake.First_level_of_protocol. *) Raw_level_repr.of_int32 level >>?= fun level -> diff --git a/tezt/lib_tezos/protocol.ml b/tezt/lib_tezos/protocol.ml index 0c2492860293..37375b95694a 100644 --- a/tezt/lib_tezos/protocol.ml +++ b/tezt/lib_tezos/protocol.ml @@ -138,11 +138,11 @@ let write_parameter_file : let next_protocol = function | Ithaca -> Some Jakarta | Jakarta -> Some Kathmandu - | Kathmandu -> None + | Kathmandu -> None (* To update once the migration starts from Kathmandu. *) | Alpha -> None let previous_protocol = function - | Alpha -> Some Jakarta + | Alpha -> Some Jakarta (* To update once the migration starts from K. *) | Jakarta -> Some Ithaca | Kathmandu -> Some Jakarta | Ithaca -> None -- GitLab From 5af7046e506d4706866e3db14095aef690e505e0 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 12:16:25 +0200 Subject: [PATCH 03/18] Tezt: consistency in protocol order in registrations --- tezt/tests/main.ml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 54b393baa1b8..091a58235245 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -32,8 +32,7 @@ other files. *) -let protocols = - [Protocol.Alpha; Protocol.Kathmandu; Protocol.Jakarta; Protocol.Ithaca] +let protocols = Protocol.[Ithaca; Jakarta; Kathmandu; Alpha] let migrate_from = Protocol.Jakarta @@ -115,8 +114,8 @@ let () = (* This file tests an RPC added in protocol G *) Big_map_all.register () ; Reject_malformed_micheline.register ~protocols:[Alpha] ; - Tx_rollup.register ~protocols:[Alpha; Jakarta; Kathmandu] ; - Tx_rollup_node.register ~protocols:[Alpha; Jakarta; Kathmandu] ; + Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; Sc_rollup.register ~protocols:[Alpha] ; @@ -127,7 +126,7 @@ let () = (* Relies on a feature only available since J. *) Run_script.register ~protocols:[Alpha] ; Sapling.register ~protocols:[Alpha] ; - Client_run_view.register ~protocols:[Alpha; Jakarta; Kathmandu] ; + Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Multinode_snapshot.register ~protocols:[Alpha] ; (* Relies on a feature only available since K. *) Testnet_dictator.register ~protocols:[Alpha] ; -- GitLab From 92b56ef991388a922afc749e4e6a589ee91ba73f Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 12:20:43 +0200 Subject: [PATCH 04/18] Tezt: do not specify protocols when all --- tezt/tests/main.ml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 091a58235245..5a53a4b16509 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -57,7 +57,7 @@ let () = Normalize.register ~protocols:[Alpha] ; Double_bake.register ~protocols:[Alpha] ; Light.register ~protocols:[Alpha] ; - Mockup.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; + Mockup.register ~protocols ; Mockup.register_constant_migration ~migrate_from ~migrate_to ; Mockup.register_global_constants ~protocols:[Alpha] ; Node_event_level.register ~protocols:[Alpha] ; @@ -69,15 +69,15 @@ let () = User_activated_upgrade.register ~migrate_from ~migrate_to ; Rpc_config_logging.register ~protocols:[Alpha] ; Protocol_table_update.register ~migrate_from ~migrate_to ; - Cache_cache.register [Ithaca; Jakarta; Kathmandu; Alpha] ; - Baking.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; - Prevalidator.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; + Cache_cache.register protocols ; + Baking.register ~protocols ; + Prevalidator.register ~protocols ; Dal.register ~protocols:[Alpha] ; Monitor_operations.register ~protocols:[Alpha] ; Stresstest_command.register ~protocols:[Alpha] ; (* Adding a new protocol would require adding samples at ./tezt/tests/encoding_samples directory*) Encoding.register ~protocols ; - Precheck.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; + Precheck.register ~protocols ; Tenderbake.register ~protocols:[Alpha] ; Forge.register ~protocols:[Alpha] ; (* Tests that are protocol-independent. @@ -91,7 +91,7 @@ let () = Client_keys.register_protocol_independent () ; (* Tests that are heavily protocol-dependent. Those modules define different tests for different protocols in their [register]. *) - RPC_test.register [Ithaca; Jakarta; Kathmandu; Alpha] ; + RPC_test.register protocols ; Demo_counter.register () ; (* Alpha cannot stitch from Jakarta yet, but when it can, we can add a voting test from Jakarta to Alpha. *) @@ -117,11 +117,11 @@ let () = Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Manager_operations.register ~protocols ; - Replace_by_fees.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; + Replace_by_fees.register ~protocols ; Sc_rollup.register ~protocols:[Alpha] ; Views.register [Alpha] ; Runtime_script_failure.register ~protocols ; - Deposits_limit.register ~protocols:[Ithaca; Jakarta; Kathmandu; Alpha] ; + Deposits_limit.register ~protocols ; Large_metadata.register ~protocols:[Alpha] ; (* Relies on a feature only available since J. *) Run_script.register ~protocols:[Alpha] ; -- GitLab From 41719452b5b5a93b5c72019745717e8fa8cd0471 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 12:36:33 +0200 Subject: [PATCH 05/18] Tezt/Big_map_all: now concerns all protocols --- tezt/tests/big_map_all.ml | 16 +++++++--------- tezt/tests/main.ml | 3 +-- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/tezt/tests/big_map_all.ml b/tezt/tests/big_map_all.ml index 3bf805870ebd..092b582a319f 100644 --- a/tezt/tests/big_map_all.ml +++ b/tezt/tests/big_map_all.ml @@ -28,7 +28,7 @@ Component: big_maps RPC Invocation: dune exec tezt/tests/main.exe -- big_map_all Subject: Check that RPC [/chain//blocks//context/big_maps] - behaves correctly with and without pagination + added in protocol G behaves correctly with and without pagination. *) let init ~protocol = @@ -174,16 +174,14 @@ let test_invalid_input_fail client = let* _ = must_fail ~offset:(-1) ~length:(-1) () in Lwt.return_unit -let test_wrapper ~protocol = - Test.register +let test_wrapper = + Protocol.register_test ~__FILE__ ~title: - (sf - "(%s) RPC \ - /chain//blocks//context/big_maps/?offset=[int]&length=[int]" - (Protocol.name protocol)) + "RPC \ + /chain//blocks//context/big_maps/?offset=[int]&length=[int]" ~tags:["big_map_all"; "rpc"] - @@ fun () -> + @@ fun protocol -> let* _, client = init ~protocol in let entries : (string * int) list = List.map (fun i -> (Format.sprintf "\"%04i\"" i, i)) all_values @@ -216,4 +214,4 @@ let test_wrapper ~protocol = let* () = test_invalid_input_fail client in Lwt.return_unit -let register () = test_wrapper ~protocol:Protocol.Alpha +let register ~protocols = test_wrapper protocols diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 5a53a4b16509..0d161ccd5e82 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -75,6 +75,7 @@ let () = Dal.register ~protocols:[Alpha] ; Monitor_operations.register ~protocols:[Alpha] ; Stresstest_command.register ~protocols:[Alpha] ; + Big_map_all.register ~protocols:[Alpha] ; (* Adding a new protocol would require adding samples at ./tezt/tests/encoding_samples directory*) Encoding.register ~protocols ; Precheck.register ~protocols ; @@ -111,8 +112,6 @@ let () = ~from_protocol:Alpha ~to_protocol:Demo ~loser_protocols:[Jakarta] ; - (* This file tests an RPC added in protocol G *) - Big_map_all.register () ; Reject_malformed_micheline.register ~protocols:[Alpha] ; Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; -- GitLab From 1114a884a87d933afda981568466e91c981f86c3 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:30:31 +0200 Subject: [PATCH 06/18] Tezt: move protocol-independent registrations --- tezt/tests/main.ml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 0d161ccd5e82..e17e33a0a8ce 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -42,6 +42,15 @@ let migrate_to = Protocol.Alpha Each module defines tests which are thematically related, as functions to be called here. *) let () = + (* Tests that are protocol-independent. + They do not take a protocol as a parameter and thus need to be registered only once. *) + Light.register_protocol_independent () ; + P2p.register_protocol_independent () ; + Proxy.register_protocol_independent () ; + Mockup.register_protocol_independent () ; + Bootstrap.register_protocol_independent () ; + Cli_tezos.register_protocol_independent () ; + Client_keys.register_protocol_independent () ; (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; @@ -81,15 +90,6 @@ let () = Precheck.register ~protocols ; Tenderbake.register ~protocols:[Alpha] ; Forge.register ~protocols:[Alpha] ; - (* Tests that are protocol-independent. - They do not take a protocol as a parameter and thus need to be registered only once. *) - Light.register_protocol_independent () ; - P2p.register_protocol_independent () ; - Proxy.register_protocol_independent () ; - Mockup.register_protocol_independent () ; - Bootstrap.register_protocol_independent () ; - Cli_tezos.register_protocol_independent () ; - Client_keys.register_protocol_independent () ; (* Tests that are heavily protocol-dependent. Those modules define different tests for different protocols in their [register]. *) RPC_test.register protocols ; -- GitLab From a0bde2e0621a8e6ddeb7991f76a34a931b5a611e Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:31:08 +0200 Subject: [PATCH 07/18] Tezt: Config and Demo_counter are protocol-independent too --- tezt/tests/main.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index e17e33a0a8ce..ec33a5dfb678 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -51,6 +51,8 @@ let () = Bootstrap.register_protocol_independent () ; Cli_tezos.register_protocol_independent () ; Client_keys.register_protocol_independent () ; + Config.register () ; + Demo_counter.register () ; (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; @@ -93,7 +95,6 @@ let () = (* Tests that are heavily protocol-dependent. Those modules define different tests for different protocols in their [register]. *) RPC_test.register protocols ; - Demo_counter.register () ; (* Alpha cannot stitch from Jakarta yet, but when it can, we can add a voting test from Jakarta to Alpha. *) Voting.register @@ -132,7 +133,6 @@ let () = Ghostnet_dictator_migration.register ~protocols:[Alpha] ; Test_contract_bls12_381.register ~protocols:[Alpha] ; Increase_paid_storage.register ~protocols:[Alpha] ; - Config.register () ; Events.register ~protocols:[Alpha] ; (* Relies on a feature only available since K. *) Op_validation.register ~protocols ; -- GitLab From 9db46d038309716464109136cc87ac6b2a24e39c Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:31:59 +0200 Subject: [PATCH 08/18] Tezt: move protocol migration registrations --- tezt/tests/main.ml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index ec33a5dfb678..da0d8ebb3b64 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -53,6 +53,11 @@ let () = Client_keys.register_protocol_independent () ; Config.register () ; Demo_counter.register () ; + (* Tests related to protocol migration. *) + Mockup.register_constant_migration ~migrate_from ~migrate_to ; + Protocol_migration.register ~migrate_from ~migrate_to ; + User_activated_upgrade.register ~migrate_from ~migrate_to ; + Protocol_table_update.register ~migrate_from ~migrate_to ; (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; @@ -69,17 +74,13 @@ let () = Double_bake.register ~protocols:[Alpha] ; Light.register ~protocols:[Alpha] ; Mockup.register ~protocols ; - Mockup.register_constant_migration ~migrate_from ~migrate_to ; Mockup.register_global_constants ~protocols:[Alpha] ; Node_event_level.register ~protocols:[Alpha] ; Proxy.register ~protocols ; Proxy_server_test.register ~protocols:[Alpha] ; P2p.register ~protocols:[Alpha] ; Protocol_limits.register ~protocols:[Alpha] ; - Protocol_migration.register ~migrate_from ~migrate_to ; - User_activated_upgrade.register ~migrate_from ~migrate_to ; Rpc_config_logging.register ~protocols:[Alpha] ; - Protocol_table_update.register ~migrate_from ~migrate_to ; Cache_cache.register protocols ; Baking.register ~protocols ; Prevalidator.register ~protocols ; -- GitLab From dca17f0a55fa6b931fa9c23cb461170ce1df84fc Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:33:30 +0200 Subject: [PATCH 09/18] Tezt: Op_validation works for all protocols, apparently --- tezt/tests/main.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index da0d8ebb3b64..32ab63a6e40a 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -88,6 +88,7 @@ let () = Monitor_operations.register ~protocols:[Alpha] ; Stresstest_command.register ~protocols:[Alpha] ; Big_map_all.register ~protocols:[Alpha] ; + Op_validation.register ~protocols ; (* Adding a new protocol would require adding samples at ./tezt/tests/encoding_samples directory*) Encoding.register ~protocols ; Precheck.register ~protocols ; @@ -135,7 +136,5 @@ let () = Test_contract_bls12_381.register ~protocols:[Alpha] ; Increase_paid_storage.register ~protocols:[Alpha] ; Events.register ~protocols:[Alpha] ; - (* Relies on a feature only available since K. *) - Op_validation.register ~protocols ; (* Test.run () should be the last statement, don't register afterwards! *) Test.run () -- GitLab From db802a44070b638f958e2a6496279a7fe6dd9721 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:33:56 +0200 Subject: [PATCH 10/18] Tezt: Sc_rollup and Vdf are K+ only --- tezt/tests/main.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 32ab63a6e40a..dd54a74919cd 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -63,7 +63,6 @@ let () = Baker_test.register ~protocols:[Alpha] ; Signer_test.register ~protocols:[Alpha] ; Basic.register ~protocols:[Alpha] ; - Vdf_test.register ~protocols:[Kathmandu; Alpha] ; Client_config.register ~protocols:[Alpha] ; Client_commands.register ~protocols ; Global_constants.register ~protocols:[Alpha] ; @@ -120,7 +119,6 @@ let () = Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols ; - Sc_rollup.register ~protocols:[Alpha] ; Views.register [Alpha] ; Runtime_script_failure.register ~protocols ; Deposits_limit.register ~protocols ; @@ -136,5 +134,7 @@ let () = Test_contract_bls12_381.register ~protocols:[Alpha] ; Increase_paid_storage.register ~protocols:[Alpha] ; Events.register ~protocols:[Alpha] ; + Sc_rollup.register ~protocols:[Alpha] ; + Vdf_test.register ~protocols:[Kathmandu; Alpha] ; (* Test.run () should be the last statement, don't register afterwards! *) Test.run () -- GitLab From 5c4cc35af52b0f0c92a41e1de60dbd755b9e69c8 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:35:18 +0200 Subject: [PATCH 11/18] Tezt: move J-only registrations --- tezt/tests/main.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index dd54a74919cd..f22032adb01f 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -115,15 +115,15 @@ let () = ~to_protocol:Demo ~loser_protocols:[Jakarta] ; Reject_malformed_micheline.register ~protocols:[Alpha] ; - Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; - Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols ; - Views.register [Alpha] ; Runtime_script_failure.register ~protocols ; Deposits_limit.register ~protocols ; - Large_metadata.register ~protocols:[Alpha] ; (* Relies on a feature only available since J. *) + Views.register [Alpha] ; + Large_metadata.register ~protocols:[Alpha] ; + Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Run_script.register ~protocols:[Alpha] ; Sapling.register ~protocols:[Alpha] ; Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; -- GitLab From c285c106b568c802e01c01dcf901e49b4110d0de Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:35:47 +0200 Subject: [PATCH 12/18] Tezt: remove obsolete comments --- tezt/tests/main.ml | 3 --- 1 file changed, 3 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index f22032adb01f..ef65f5d4dfbf 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -88,13 +88,10 @@ let () = Stresstest_command.register ~protocols:[Alpha] ; Big_map_all.register ~protocols:[Alpha] ; Op_validation.register ~protocols ; - (* Adding a new protocol would require adding samples at ./tezt/tests/encoding_samples directory*) Encoding.register ~protocols ; Precheck.register ~protocols ; Tenderbake.register ~protocols:[Alpha] ; Forge.register ~protocols:[Alpha] ; - (* Tests that are heavily protocol-dependent. - Those modules define different tests for different protocols in their [register]. *) RPC_test.register protocols ; (* Alpha cannot stitch from Jakarta yet, but when it can, we can add a voting test from Jakarta to Alpha. *) -- GitLab From 2247eb74476b3e788ec1e298f790ed391b2d6bd1 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:37:05 +0200 Subject: [PATCH 13/18] Tezt: move stitching-related registrations --- tezt/tests/main.ml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index ef65f5d4dfbf..11146a17c067 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -58,6 +58,24 @@ let () = Protocol_migration.register ~migrate_from ~migrate_to ; User_activated_upgrade.register ~migrate_from ~migrate_to ; Protocol_table_update.register ~migrate_from ~migrate_to ; + (* Alpha cannot stitch from Jakarta yet, but when it can, we can + add a voting test from Jakarta to Alpha. *) + Voting.register + ~from_protocol:Ithaca + ~to_protocol:(Known Jakarta) + ~loser_protocols:[Alpha] ; + Voting.register + ~from_protocol:Ithaca + ~to_protocol:Injected_test + ~loser_protocols:[Alpha; Ithaca] ; + Voting.register + ~from_protocol:Alpha + ~to_protocol:Injected_test + ~loser_protocols:[Jakarta] ; + Voting.register + ~from_protocol:Alpha + ~to_protocol:Demo + ~loser_protocols:[Jakarta] ; (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; @@ -93,24 +111,6 @@ let () = Tenderbake.register ~protocols:[Alpha] ; Forge.register ~protocols:[Alpha] ; RPC_test.register protocols ; - (* Alpha cannot stitch from Jakarta yet, but when it can, we can - add a voting test from Jakarta to Alpha. *) - Voting.register - ~from_protocol:Ithaca - ~to_protocol:(Known Jakarta) - ~loser_protocols:[Alpha] ; - Voting.register - ~from_protocol:Ithaca - ~to_protocol:Injected_test - ~loser_protocols:[Alpha; Ithaca] ; - Voting.register - ~from_protocol:Alpha - ~to_protocol:Injected_test - ~loser_protocols:[Jakarta] ; - Voting.register - ~from_protocol:Alpha - ~to_protocol:Demo - ~loser_protocols:[Jakarta] ; Reject_malformed_micheline.register ~protocols:[Alpha] ; Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols ; -- GitLab From 7dbd0e1a540cc8e02f50cdb5b54f56f6f70f538b Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:51:36 +0200 Subject: [PATCH 14/18] Tezt: split main into functions so people are more careful --- tezt/tests/main.ml | 32 +++++++++++++++++++++++++------- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 11146a17c067..cdacfe264963 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -41,7 +41,8 @@ let migrate_to = Protocol.Alpha (* This module runs the tests implemented in all other modules of this directory. Each module defines tests which are thematically related, as functions to be called here. *) -let () = + +let register_protocol_independent_tests () = (* Tests that are protocol-independent. They do not take a protocol as a parameter and thus need to be registered only once. *) Light.register_protocol_independent () ; @@ -52,7 +53,9 @@ let () = Cli_tezos.register_protocol_independent () ; Client_keys.register_protocol_independent () ; Config.register () ; - Demo_counter.register () ; + Demo_counter.register () + +let register_protocol_migration_tests () = (* Tests related to protocol migration. *) Mockup.register_constant_migration ~migrate_from ~migrate_to ; Protocol_migration.register ~migrate_from ~migrate_to ; @@ -75,7 +78,9 @@ let () = Voting.register ~from_protocol:Alpha ~to_protocol:Demo - ~loser_protocols:[Jakarta] ; + ~loser_protocols:[Jakarta] + +let register_protocol_agnostic_tests () = (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; @@ -115,8 +120,12 @@ let () = Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols ; Runtime_script_failure.register ~protocols ; - Deposits_limit.register ~protocols ; - (* Relies on a feature only available since J. *) + Deposits_limit.register ~protocols + +let register_J_plus_tests () = + (* Relies on a feature only available since J. + Move these to [register_protocol_agnostic_tests] once J is the smallest + protocol. *) Views.register [Alpha] ; Large_metadata.register ~protocols:[Alpha] ; Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; @@ -124,7 +133,9 @@ let () = Run_script.register ~protocols:[Alpha] ; Sapling.register ~protocols:[Alpha] ; Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; - Multinode_snapshot.register ~protocols:[Alpha] ; + Multinode_snapshot.register ~protocols:[Alpha] + +let register_K_plus_tests () = (* Relies on a feature only available since K. *) Testnet_dictator.register ~protocols:[Alpha] ; Ghostnet_dictator_migration.register ~protocols:[Alpha] ; @@ -132,6 +143,13 @@ let () = Increase_paid_storage.register ~protocols:[Alpha] ; Events.register ~protocols:[Alpha] ; Sc_rollup.register ~protocols:[Alpha] ; - Vdf_test.register ~protocols:[Kathmandu; Alpha] ; + Vdf_test.register ~protocols:[Kathmandu; Alpha] + +let () = + register_protocol_independent_tests () ; + register_protocol_migration_tests () ; + register_protocol_agnostic_tests () ; + register_J_plus_tests () ; + register_K_plus_tests () ; (* Test.run () should be the last statement, don't register afterwards! *) Test.run () -- GitLab From dc73a9df20089a85e86d34ed7aa358c6360c77a2 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:53:57 +0200 Subject: [PATCH 15/18] Tezt: express migrate_from as a function of migrate_to --- tezt/tests/main.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index cdacfe264963..8a989770b86f 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -34,8 +34,6 @@ let protocols = Protocol.[Ithaca; Jakarta; Kathmandu; Alpha] -let migrate_from = Protocol.Jakarta - let migrate_to = Protocol.Alpha (* This module runs the tests implemented in all other modules of this directory. @@ -57,6 +55,7 @@ let register_protocol_independent_tests () = let register_protocol_migration_tests () = (* Tests related to protocol migration. *) + let migrate_from = Option.get @@ Protocol.previous_protocol migrate_to in Mockup.register_constant_migration ~migrate_from ~migrate_to ; Protocol_migration.register ~migrate_from ~migrate_to ; User_activated_upgrade.register ~migrate_from ~migrate_to ; -- GitLab From 0936eca0ad333345c495c8c0d4680f5a28672c5b Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 14:57:19 +0200 Subject: [PATCH 16/18] Tezt: generalize voting tests --- tezt/tests/main.ml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 8a989770b86f..5ada1ba9766e 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -65,19 +65,19 @@ let register_protocol_migration_tests () = Voting.register ~from_protocol:Ithaca ~to_protocol:(Known Jakarta) - ~loser_protocols:[Alpha] ; + ~loser_protocols:[migrate_to] ; Voting.register ~from_protocol:Ithaca ~to_protocol:Injected_test - ~loser_protocols:[Alpha; Ithaca] ; + ~loser_protocols:[migrate_to; Ithaca] ; Voting.register - ~from_protocol:Alpha + ~from_protocol:migrate_to ~to_protocol:Injected_test - ~loser_protocols:[Jakarta] ; + ~loser_protocols:[migrate_from] ; Voting.register - ~from_protocol:Alpha + ~from_protocol:migrate_to ~to_protocol:Demo - ~loser_protocols:[Jakarta] + ~loser_protocols:[migrate_from] let register_protocol_agnostic_tests () = (* Tests that are relatively protocol-agnostic. -- GitLab From 48649c4e95ff367e21133b3650ada5fccd42dcfe Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 15:16:15 +0200 Subject: [PATCH 17/18] Tezt: alphabetically order registrations --- tezt/tests/main.ml | 70 +++++++++++++++++++++++----------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index 5ada1ba9766e..b0c2aecd18ef 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -43,13 +43,13 @@ let migrate_to = Protocol.Alpha let register_protocol_independent_tests () = (* Tests that are protocol-independent. They do not take a protocol as a parameter and thus need to be registered only once. *) - Light.register_protocol_independent () ; - P2p.register_protocol_independent () ; - Proxy.register_protocol_independent () ; - Mockup.register_protocol_independent () ; Bootstrap.register_protocol_independent () ; Cli_tezos.register_protocol_independent () ; Client_keys.register_protocol_independent () ; + Light.register_protocol_independent () ; + Mockup.register_protocol_independent () ; + P2p.register_protocol_independent () ; + Proxy.register_protocol_independent () ; Config.register () ; Demo_counter.register () @@ -58,8 +58,8 @@ let register_protocol_migration_tests () = let migrate_from = Option.get @@ Protocol.previous_protocol migrate_to in Mockup.register_constant_migration ~migrate_from ~migrate_to ; Protocol_migration.register ~migrate_from ~migrate_to ; - User_activated_upgrade.register ~migrate_from ~migrate_to ; Protocol_table_update.register ~migrate_from ~migrate_to ; + User_activated_upgrade.register ~migrate_from ~migrate_to ; (* Alpha cannot stitch from Jakarta yet, but when it can, we can add a voting test from Jakarta to Alpha. *) Voting.register @@ -83,65 +83,65 @@ let register_protocol_agnostic_tests () = (* Tests that are relatively protocol-agnostic. We can run them on all protocols, or only one if the CI would be too slow. *) Baker_test.register ~protocols:[Alpha] ; - Signer_test.register ~protocols:[Alpha] ; + Baking.register ~protocols ; Basic.register ~protocols:[Alpha] ; + Big_map_all.register ~protocols:[Alpha] ; + Bootstrap.register ~protocols:[Alpha] ; + Cache_cache.register protocols ; Client_config.register ~protocols:[Alpha] ; Client_commands.register ~protocols ; + Dal.register ~protocols:[Alpha] ; + Deposits_limit.register ~protocols ; + Double_bake.register ~protocols:[Alpha] ; + Encoding.register ~protocols ; + Forge.register ~protocols:[Alpha] ; Global_constants.register ~protocols:[Alpha] ; - Bootstrap.register ~protocols:[Alpha] ; Hash_data.register ~protocols:[Alpha] ; - Synchronisation_heuristic.register ~protocols:[Alpha] ; - Normalize.register ~protocols:[Alpha] ; - Double_bake.register ~protocols:[Alpha] ; Light.register ~protocols:[Alpha] ; + Manager_operations.register ~protocols ; Mockup.register ~protocols ; Mockup.register_global_constants ~protocols:[Alpha] ; + Monitor_operations.register ~protocols:[Alpha] ; Node_event_level.register ~protocols:[Alpha] ; + Normalize.register ~protocols:[Alpha] ; + Op_validation.register ~protocols ; + Precheck.register ~protocols ; + Prevalidator.register ~protocols ; + Protocol_limits.register ~protocols:[Alpha] ; Proxy.register ~protocols ; Proxy_server_test.register ~protocols:[Alpha] ; P2p.register ~protocols:[Alpha] ; - Protocol_limits.register ~protocols:[Alpha] ; - Rpc_config_logging.register ~protocols:[Alpha] ; - Cache_cache.register protocols ; - Baking.register ~protocols ; - Prevalidator.register ~protocols ; - Dal.register ~protocols:[Alpha] ; - Monitor_operations.register ~protocols:[Alpha] ; - Stresstest_command.register ~protocols:[Alpha] ; - Big_map_all.register ~protocols:[Alpha] ; - Op_validation.register ~protocols ; - Encoding.register ~protocols ; - Precheck.register ~protocols ; - Tenderbake.register ~protocols:[Alpha] ; - Forge.register ~protocols:[Alpha] ; - RPC_test.register protocols ; Reject_malformed_micheline.register ~protocols:[Alpha] ; - Manager_operations.register ~protocols ; Replace_by_fees.register ~protocols ; + Rpc_config_logging.register ~protocols:[Alpha] ; + RPC_test.register protocols ; Runtime_script_failure.register ~protocols ; - Deposits_limit.register ~protocols + Signer_test.register ~protocols:[Alpha] ; + Stresstest_command.register ~protocols:[Alpha] ; + Synchronisation_heuristic.register ~protocols:[Alpha] ; + Tenderbake.register ~protocols:[Alpha] let register_J_plus_tests () = (* Relies on a feature only available since J. Move these to [register_protocol_agnostic_tests] once J is the smallest protocol. *) - Views.register [Alpha] ; + Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; Large_metadata.register ~protocols:[Alpha] ; - Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; - Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Multinode_snapshot.register ~protocols:[Alpha] ; Run_script.register ~protocols:[Alpha] ; Sapling.register ~protocols:[Alpha] ; - Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; - Multinode_snapshot.register ~protocols:[Alpha] + Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Views.register [Alpha] let register_K_plus_tests () = (* Relies on a feature only available since K. *) - Testnet_dictator.register ~protocols:[Alpha] ; + Events.register ~protocols:[Alpha] ; Ghostnet_dictator_migration.register ~protocols:[Alpha] ; - Test_contract_bls12_381.register ~protocols:[Alpha] ; Increase_paid_storage.register ~protocols:[Alpha] ; - Events.register ~protocols:[Alpha] ; Sc_rollup.register ~protocols:[Alpha] ; + Test_contract_bls12_381.register ~protocols:[Alpha] ; + Testnet_dictator.register ~protocols:[Alpha] ; Vdf_test.register ~protocols:[Kathmandu; Alpha] let () = -- GitLab From 51f5075a98ca636349e818d663d587e046b14694 Mon Sep 17 00:00:00 2001 From: Mehdi Bouaziz Date: Fri, 8 Jul 2022 15:18:18 +0200 Subject: [PATCH 18/18] Tezt: simplify future move of tests --- tezt/tests/main.ml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tezt/tests/main.ml b/tezt/tests/main.ml index b0c2aecd18ef..9ef98e5c6aa8 100644 --- a/tezt/tests/main.ml +++ b/tezt/tests/main.ml @@ -125,24 +125,26 @@ let register_J_plus_tests () = (* Relies on a feature only available since J. Move these to [register_protocol_agnostic_tests] once J is the smallest protocol. *) - Client_run_view.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + let protocols = Protocol.[Jakarta; Kathmandu; Alpha] in + Client_run_view.register ~protocols ; Large_metadata.register ~protocols:[Alpha] ; Multinode_snapshot.register ~protocols:[Alpha] ; Run_script.register ~protocols:[Alpha] ; Sapling.register ~protocols:[Alpha] ; - Tx_rollup.register ~protocols:[Jakarta; Kathmandu; Alpha] ; - Tx_rollup_node.register ~protocols:[Jakarta; Kathmandu; Alpha] ; + Tx_rollup.register ~protocols ; + Tx_rollup_node.register ~protocols ; Views.register [Alpha] let register_K_plus_tests () = (* Relies on a feature only available since K. *) + let protocols = Protocol.[Kathmandu; Alpha] in Events.register ~protocols:[Alpha] ; Ghostnet_dictator_migration.register ~protocols:[Alpha] ; Increase_paid_storage.register ~protocols:[Alpha] ; Sc_rollup.register ~protocols:[Alpha] ; Test_contract_bls12_381.register ~protocols:[Alpha] ; Testnet_dictator.register ~protocols:[Alpha] ; - Vdf_test.register ~protocols:[Kathmandu; Alpha] + Vdf_test.register ~protocols let () = register_protocol_independent_tests () ; -- GitLab