diff --git a/tezt/tests/cloud/agent_kind.ml b/tezt/tests/cloud/agent_kind.ml index 61e4a0ffe77f9ceef9185ace4eea52461cdfc865..41750a17702250f545c3d25d7ef79f39ba16c9ec 100644 --- a/tezt/tests/cloud/agent_kind.ml +++ b/tezt/tests/cloud/agent_kind.ml @@ -20,24 +20,59 @@ type t = | Echo_rollup_dal_observer of {slot_index : int} | Stresstest of int +let rex_bootstrap = rex "bootstrap" + +let rex_baker_index = rex "baker-(\\d+)" + +let rex_producer_index = rex "dal-producer-(\\d+)" + +let rex_observer_index = rex "dal-observer-(\\d+)" + +let rex_observer_pkh = rex "dal-observer-([a-zA-Z0-9]+)" + +let rex_reverse_proxy = rex "dal-reverse-proxy" + +let rex_etherlink_operator = rex "etherlink-operator" + +let rex_etherlink_dal_operator = rex "etherlink-dal-operator" + +let rex_etherlink_dal_observer_index = rex "etherlink-dal-operator-(\\d+)" + +let rex_etherlink_producer_index = rex "etherlink-producer-(\\d+)" + +let rex_echo_rollup_operator = rex "echo-rollup-operator" + +let rex_echo_rollup_dal_observer_index = rex "echo-rollup-dal-node-(\\d+)" + +let rex_stresstest_index = rex "stresstest-(\\d+)" + +let rex_constant = show_rex + +let rex_replace_string = + let string = rex "\\(\\[a-zA-Z0-9\\]\\+\\)" in + fun r by -> replace_string string ~by (show_rex r) + +let rex_replace_index = + let index = rex "\\(\\\\d\\+\\)" in + fun r i -> replace_string index ~by:(string_of_int i) (show_rex r) + let name_of = function - | Bootstrap -> "bootstrap" - | Baker i -> Format.asprintf "baker-%d" i - | Producer i -> Format.asprintf "dal-producer-%d" i - | Observer (`Index i) -> Format.asprintf "dal-observer-%d" i + | Bootstrap -> rex_constant rex_bootstrap + | Baker i -> rex_replace_index rex_baker_index i + | Producer i -> rex_replace_index rex_producer_index i + | Observer (`Index i) -> rex_replace_index rex_observer_index i | Observer (`Pkh pkh) -> - (* Shorting the pkh enables to get better logs. *) - Format.asprintf "dal-observer-%s" (String.sub pkh 0 8) - | Reverse_proxy -> "dal-reverse-proxy" - | Etherlink_operator -> "etherlink-operator" - | Etherlink_dal_operator -> "etherlink-dal-operator" + rex_replace_string rex_observer_pkh (String.sub pkh 0 8) + | Reverse_proxy -> rex_constant rex_reverse_proxy + | Etherlink_operator -> rex_constant rex_etherlink_operator + | Etherlink_dal_operator -> rex_constant rex_etherlink_dal_operator | Etherlink_dal_observer {slot_index} -> - Format.asprintf "etherlink-dal-operator-%d" slot_index - | Etherlink_producer i -> Format.asprintf "etherlink-producer-%d" i - | Echo_rollup_operator -> "echo-rollup-operator" + rex_replace_index rex_etherlink_dal_operator slot_index + | Etherlink_producer i -> rex_replace_index rex_etherlink_producer_index i + | Echo_rollup_operator -> rex_constant rex_echo_rollup_operator | Echo_rollup_dal_observer {slot_index} -> - Format.sprintf "echo-rollup-dal-node-%d" slot_index - | Stresstest i -> Format.sprintf "stresstest-%d" i + rex_replace_index rex_echo_rollup_dal_observer_index slot_index + | Stresstest i -> rex_replace_index rex_stresstest_index i type daemon = | Baker_l1_node of int diff --git a/tezt/tests/cloud/agent_kind.mli b/tezt/tests/cloud/agent_kind.mli index b9167c586c30f81e2e5bf4ab95989c38dc066593..a660bdad3fb20ec7f7169fa686aa979dedb9add3 100644 --- a/tezt/tests/cloud/agent_kind.mli +++ b/tezt/tests/cloud/agent_kind.mli @@ -34,8 +34,41 @@ type t = (** A DAL observer node for the Echo rollup, indexed by slot. *) | Stresstest of int -(** [name_of agent] returns the standard name associated with a given [agent]. - Used for consistent naming of VMs, logs and artifacts. *) +val rex_bootstrap : rex + +val rex_baker_index : rex + +val rex_producer_index : rex + +val rex_observer_index : rex + +val rex_observer_pkh : rex + +val rex_reverse_proxy : rex + +val rex_etherlink_operator : rex + +val rex_etherlink_dal_operator : rex + +val rex_etherlink_dal_observer_index : rex + +val rex_etherlink_producer_index : rex + +val rex_echo_rollup_operator : rex + +val rex_echo_rollup_dal_observer_index : rex + +val rex_stresstest_index : rex + +(** [name_of t] returns the standard name associated with a given [t]. + Used for consistent naming of VMs, logs and artifacts. + + The name matches the regular expressions defined above, where: + - if [rex] ends with [_index]: [(\\d+)] has been replaced with + the integer payload of the [t] value. + - if [rex] ends with [_pkh]: [([a-zA-Z0-9]+)] has been replaced with + the first 8 bytes of the pkh payload of the [t] value. + - else: this is a constant string. *) val name_of : t -> string (** [daemon] stands for a binary that is running onto an agent. A [daemon] is diff --git a/tezt/tests/cloud/layer1.ml b/tezt/tests/cloud/layer1.ml index aa6f5196e444b4d67dc9150b89205e7748f7eefd..64883af216c2d120beab0c313656b238bd093a20 100644 --- a/tezt/tests/cloud/layer1.ml +++ b/tezt/tests/cloud/layer1.ml @@ -44,12 +44,6 @@ let nb_stresstester network tps = let n2 = tps * Network.block_time network / stresstest_max_pkh_pre_node in max 1 (max n1 n2) -let agent_name_stresstest : rex = rex "stresstest-(\\d+)" - -let agent_name_baker : rex = rex "baker-(\\d+)" - -let agent_name_dal_producer : rex = rex "dal-producer-(\\d+)" - let extract_agent_index (r : rex) agent = match Agent.name agent =~* r with | None -> @@ -698,9 +692,9 @@ let init ~(configuration : Scenarios_configuration.LAYER1.t) cloud = else Lwt.return_none) (Cloud.agents cloud) in - let* stresstest_agents = create_nodes agent_name_stresstest in - let* baker_agents = create_nodes agent_name_baker in - let* producers_agents = create_nodes agent_name_dal_producer in + let* stresstest_agents = create_nodes Agent_kind.rex_stresstest_index in + let* baker_agents = create_nodes Agent_kind.rex_baker_index in + let* producers_agents = create_nodes Agent_kind.rex_producer_index in let* teztale = init_teztale cloud bootstrap_agent in let* () = init_explorus cloud bootstrap_node in let peers : string list = @@ -774,7 +768,9 @@ let init ~(configuration : Scenarios_configuration.LAYER1.t) cloud = let* producers = Lwt_list.mapi_p (fun i (((agent, _, _) as producer_info), account) -> - let slot_index = extract_agent_index agent_name_dal_producer agent in + let slot_index = + extract_agent_index Agent_kind.rex_producer_index agent + in init_producer_i i configuration