diff --git a/Cargo.lock b/Cargo.lock index 242b59895ed..24621cd2c6f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5610,6 +5610,33 @@ dependencies = [ "x509-parser", ] +[[package]] +name = "ic-boundary-nodes-custom-domains-test" +version = "0.9.0" +dependencies = [ + "anyhow", + "candid", + "certificate_orchestrator_interface", + "chacha20poly1305", + "ic-agent", + "ic-interfaces-registry", + "ic-protobuf", + "ic-registry-keys", + "ic-registry-nns-data-provider", + "ic-registry-routing-table", + "ic-registry-subnet-type", + "ic-system-test-driver", + "indoc", + "k256", + "pem 1.1.1", + "rand 0.8.5", + "rand_chacha 0.3.1", + "reqwest 0.12.8", + "serde_json", + "slog", + "tokio", +] + [[package]] name = "ic-boundary-nodes-integration-test-common" version = "0.9.0" @@ -19918,8 +19945,6 @@ dependencies = [ "bitcoincore-rpc", "candid", "canister-test", - "certificate_orchestrator_interface", - "chacha20poly1305", "chrono", "crossbeam-channel", "cycles-minting-canister", @@ -20015,7 +20040,6 @@ dependencies = [ "icp-ledger", "icrc-ledger-agent", "icrc-ledger-types", - "indoc", "itertools 0.12.1", "json5", "k256", diff --git a/Cargo.toml b/Cargo.toml index f7ca6f8360b..802f75bbf47 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -351,6 +351,7 @@ members = [ "rs/test_utilities/tmpdir", "rs/tests", "rs/tests/boundary_nodes", + "rs/tests/boundary_nodes/custom_domains", "rs/tests/boundary_nodes/integration_test_common", "rs/tests/boundary_nodes/performance_test_common", "rs/tests/boundary_nodes/utils", diff --git a/rs/tests/BUILD.bazel b/rs/tests/BUILD.bazel index 49d546eaf94..d00c91b6333 100644 --- a/rs/tests/BUILD.bazel +++ b/rs/tests/BUILD.bazel @@ -408,45 +408,3 @@ oci_tar( image = "@bitcoind", repo_tags = ["bitcoind:pinned"], ) - -oci_tar( - name = "coredns.tar", - image = "@coredns", - repo_tags = ["coredns:latest"], -) - -oci_tar( - name = "pebble.tar", - image = "@pebble", - repo_tags = ["pebble:latest"], -) - -oci_tar( - name = "python3.tar", - image = "@python3", - repo_tags = ["python3:latest"], -) - -oci_tar( - name = "openssl.tar", - image = "@alpine_openssl", - repo_tags = ["openssl:latest"], -) - -uvm_config_image( - name = "custom_domains_uvm_config_image", - srcs = [ - # Docker images - ":coredns_tar", - ":openssl_tar", - ":pebble_tar", - ":python3_tar", - - # Assets - ":src/custom_domains_integration/activate.sh", - ":src/custom_domains_integration/pebble_cache.py", - ":src/custom_domains_integration/cloudflare_api.py", - ], - remap_paths = {"activate.sh": "activate"}, - tags = ["manual"], # this target will be built if required as a dependency of another target -) diff --git a/rs/tests/Cargo.toml b/rs/tests/Cargo.toml index d959d9fff33..7a56b38a71b 100644 --- a/rs/tests/Cargo.toml +++ b/rs/tests/Cargo.toml @@ -19,8 +19,6 @@ bincode = { workspace = true } bitcoincore-rpc = "0.15.0" candid = { workspace = true } canister-test = { path = "../rust_canisters/canister_test" } -certificate_orchestrator_interface = { path = "../boundary_node/certificate_issuance/certificate_orchestrator_interface" } -chacha20poly1305 = "0.10.0" chrono = { workspace = true } crossbeam-channel = { workspace = true } cycles-minting-canister = { path = "../nns/cmc" } @@ -114,7 +112,6 @@ ic_consensus_threshold_sig_system_test_utils = { path = "./consensus/tecdsa/util icp-ledger = { path = "../ledger_suite/icp" } icrc-ledger-agent = { path = "../../packages/icrc-ledger-agent" } icrc-ledger-types = { path = "../../packages/icrc-ledger-types" } -indoc = "1.0.9" itertools = { workspace = true } json5 = "0.4.1" k256 = { workspace = true } @@ -269,10 +266,6 @@ path = "testing_verification/test_driver_e2e_scenarios.rs" name = "ic-systest-bn-update-workload-test" path = "boundary_nodes/bn_update_workload_test.rs" -[[bin]] -name = "ic-systest-custom-domains-integration" -path = "boundary_nodes/custom_domains_integration_test.rs" - [[bin]] name = "ic-systest-mainnet" path = "testing_verification/mainnet_test.rs" diff --git a/rs/tests/boundary_nodes/BUILD.bazel b/rs/tests/boundary_nodes/BUILD.bazel index 46aa5b0e7f9..6278d652572 100644 --- a/rs/tests/boundary_nodes/BUILD.bazel +++ b/rs/tests/boundary_nodes/BUILD.bazel @@ -1,4 +1,4 @@ -load("//rs/tests:common.bzl", "BOUNDARY_NODE_GUESTOS_RUNTIME_DEPS", "COUNTER_CANISTER_RUNTIME_DEPS", "CUSTOM_DOMAINS_RUNTIME_DEPS", "DEPENDENCIES", "GRAFANA_RUNTIME_DEPS", "GUESTOS_RUNTIME_DEPS", "MACRO_DEPENDENCIES", "UNIVERSAL_VM_RUNTIME_DEPS") +load("//rs/tests:common.bzl", "BOUNDARY_NODE_GUESTOS_RUNTIME_DEPS", "COUNTER_CANISTER_RUNTIME_DEPS", "DEPENDENCIES", "GRAFANA_RUNTIME_DEPS", "GUESTOS_RUNTIME_DEPS", "MACRO_DEPENDENCIES", "UNIVERSAL_VM_RUNTIME_DEPS") load("//rs/tests:system_tests.bzl", "system_test", "system_test_nns") package(default_visibility = ["//rs:system-tests-pkg"]) @@ -178,24 +178,6 @@ system_test( ], ) -system_test_nns( - name = "custom_domains_integration_test", - env = { - "CERTIFICATE_ORCHESTRATOR_WASM_PATH": "$(rootpath //rs/boundary_node/certificate_issuance/certificate_orchestrator:certificate_orchestrator)", - }, - proc_macro_deps = MACRO_DEPENDENCIES, - tags = [ - "manual", - ], - target_compatible_with = ["@platforms//os:linux"], # requires libssh that does not build on Mac OS - runtime_deps = BOUNDARY_NODE_GUESTOS_RUNTIME_DEPS + - GUESTOS_RUNTIME_DEPS + - UNIVERSAL_VM_RUNTIME_DEPS + - CERTIFICATE_ORCHESTRATOR_RUNTIME_DEPS + - CUSTOM_DOMAINS_RUNTIME_DEPS, - deps = DEPENDENCIES + ["//rs/tests"], -) - system_test_nns( name = "api_bn_decentralization_test", extra_head_nns_tags = [], # don't run the head_nns variant on nightly since it aleady runs on long_test. diff --git a/rs/tests/boundary_nodes/custom_domains/BUILD.bazel b/rs/tests/boundary_nodes/custom_domains/BUILD.bazel new file mode 100644 index 00000000000..fc1ca3ededd --- /dev/null +++ b/rs/tests/boundary_nodes/custom_domains/BUILD.bazel @@ -0,0 +1,99 @@ +load("//rs/tests:common.bzl", "BOUNDARY_NODE_GUESTOS_RUNTIME_DEPS", "GUESTOS_RUNTIME_DEPS", "MACRO_DEPENDENCIES", "UNIVERSAL_VM_RUNTIME_DEPS") +load("//rs/tests:system_tests.bzl", "oci_tar", "system_test_nns", "uvm_config_image") + +package(default_visibility = ["//rs:system-tests-pkg"]) + +CERTIFICATE_ORCHESTRATOR_RUNTIME_DEPS = ["//rs/boundary_node/certificate_issuance/certificate_orchestrator:certificate_orchestrator"] + +oci_tar( + name = "coredns.tar", + image = "@coredns", + repo_tags = ["coredns:latest"], +) + +oci_tar( + name = "pebble.tar", + image = "@pebble", + repo_tags = ["pebble:latest"], +) + +oci_tar( + name = "python3.tar", + image = "@python3", + repo_tags = ["python3:latest"], +) + +oci_tar( + name = "openssl.tar", + image = "@alpine_openssl", + repo_tags = ["openssl:latest"], +) + +uvm_config_image( + name = "custom_domains_uvm_config_image", + srcs = [ + # Docker images + ":coredns_tar", + ":openssl_tar", + ":pebble_tar", + ":python3_tar", + + # Assets + ":activate.sh", + ":pebble_cache.py", + ":cloudflare_api.py", + ], + remap_paths = {"activate.sh": "activate"}, + tags = ["manual"], # this target will be built if required as a dependency of another target +) + +# This system test is meant for manual testing of the boundary node custom domain offering. +# It runs through all the steps from registering a custom domain, to accessing, to updating, and +# finally removing it. This test is not meant to run as part of a regular pipeline. +system_test_nns( + name = "custom_domains_integration_test", + srcs = [ + "setup.rs", + ], + crate_root = "custom_domains_integration_test.rs", + env = { + "CERTIFICATE_ORCHESTRATOR_WASM_PATH": "$(rootpath //rs/boundary_node/certificate_issuance/certificate_orchestrator:certificate_orchestrator)", + "CUSTOM_DOMAIN_UVM_CONFIG_PATH": "$(rootpath :custom_domains_uvm_config_image)", + "ASSET_CANISTER_WASM_PATH": "$(rootpath @asset_canister//file)", + }, + proc_macro_deps = MACRO_DEPENDENCIES, + tags = [ + "manual", + ], + target_compatible_with = ["@platforms//os:linux"], # requires libssh that does not build on Mac OS + runtime_deps = BOUNDARY_NODE_GUESTOS_RUNTIME_DEPS + + GUESTOS_RUNTIME_DEPS + + UNIVERSAL_VM_RUNTIME_DEPS + + CERTIFICATE_ORCHESTRATOR_RUNTIME_DEPS + [ + ":custom_domains_uvm_config_image", + "@asset_canister//file", + ], + deps = [ + # Keep sorted. + "//rs/boundary_node/certificate_issuance/certificate_orchestrator_interface", + "//rs/interfaces/registry", + "//rs/protobuf", + "//rs/registry/keys", + "//rs/registry/nns_data_provider", + "//rs/registry/routing_table", + "//rs/registry/subnet_type", + "//rs/tests/driver:ic-system-test-driver", + "@crate_index//:anyhow", + "@crate_index//:candid", + "@crate_index//:chacha20poly1305", + "@crate_index//:ic-agent", + "@crate_index//:k256", + "@crate_index//:pem", + "@crate_index//:rand", + "@crate_index//:rand_chacha", + "@crate_index//:reqwest", + "@crate_index//:serde_json", + "@crate_index//:slog", + "@crate_index//:tokio", + ], +) diff --git a/rs/tests/boundary_nodes/custom_domains/Cargo.toml b/rs/tests/boundary_nodes/custom_domains/Cargo.toml new file mode 100644 index 00000000000..38e1d45b865 --- /dev/null +++ b/rs/tests/boundary_nodes/custom_domains/Cargo.toml @@ -0,0 +1,34 @@ +[package] +name = "ic-boundary-nodes-custom-domains-test" +version.workspace = true +authors.workspace = true +edition.workspace = true +description.workspace = true +documentation.workspace = true + +[dependencies] +anyhow = { workspace = true } +candid = { workspace = true } +chacha20poly1305 = "0.10.0" +certificate_orchestrator_interface = { path = "../../../boundary_node/certificate_issuance/certificate_orchestrator_interface" } +ic-agent = { workspace = true } +ic-interfaces-registry = { path = "../../../interfaces/registry" } +ic-protobuf = { path = "../../../protobuf" } +ic-registry-keys = { path = "../../../registry/keys" } +ic-registry-nns-data-provider = { path = "../../../registry/nns_data_provider" } +ic-registry-routing-table = { path = "../../../registry/routing_table" } +ic-registry-subnet-type = { path = "../../../registry/subnet_type" } +ic-system-test-driver = { path = "../../driver" } +indoc = "1.0.9" +k256 = { workspace = true } +pem = "1.0.1" +rand = { workspace = true } +rand_chacha = { workspace = true } +reqwest = { workspace = true } +serde_json = { workspace = true } +slog = { workspace = true } +tokio = { workspace = true } + +[[bin]] +name = "ic-systest-custom-domains-integration" +path = "custom_domains_integration_test.rs" diff --git a/rs/tests/src/custom_domains_integration/activate.sh b/rs/tests/boundary_nodes/custom_domains/activate.sh similarity index 100% rename from rs/tests/src/custom_domains_integration/activate.sh rename to rs/tests/boundary_nodes/custom_domains/activate.sh diff --git a/rs/tests/src/custom_domains_integration/cloudflare_api.py b/rs/tests/boundary_nodes/custom_domains/cloudflare_api.py similarity index 100% rename from rs/tests/src/custom_domains_integration/cloudflare_api.py rename to rs/tests/boundary_nodes/custom_domains/cloudflare_api.py diff --git a/rs/tests/src/custom_domains_integration/certificate_orchestrator.rs b/rs/tests/boundary_nodes/custom_domains/custom_domains_integration_test.rs similarity index 57% rename from rs/tests/src/custom_domains_integration/certificate_orchestrator.rs rename to rs/tests/boundary_nodes/custom_domains/custom_domains_integration_test.rs index 6aa6daa721e..562f755d9e5 100644 --- a/rs/tests/src/custom_domains_integration/certificate_orchestrator.rs +++ b/rs/tests/boundary_nodes/custom_domains/custom_domains_integration_test.rs @@ -15,21 +15,28 @@ Coverage:: End-to-end registration processing end::catalog[] */ -use crate::custom_domains_integration::setup::{ +mod setup; + +use ic_system_test_driver::{ + driver::{boundary_node::BoundaryNodeVm, group::SystemTestGroup, test_env::TestEnv}, + retry_with_msg_async, systest, + util::block_on, +}; +use setup::{ access_domain, create_bn_http_client, get_registration_status, get_service_errors, - remove_dns_records, remove_registration, setup_asset_canister, setup_dns_records, + remove_dns_records, remove_registration, setup, setup_asset_canister, setup_dns_records, submit_registration_request, update_dns_records, update_registration, GetRequestState, RegistrationRequestState, RemoveRequestState, UpdateRequestState, BOUNDARY_NODE_VM_ID, }; -use ic_system_test_driver::{ - driver::boundary_node::BoundaryNodeVm, driver::test_env::TestEnv, util::block_on, -}; use slog::info; use std::time::Duration; -use anyhow::Error; +use anyhow::{bail, Error, Result}; + +pub const READY_WAIT_TIMEOUT: Duration = Duration::from_secs(90); +pub const RETRY_BACKOFF: Duration = Duration::from_secs(5); // Goal: Process a single registration // @@ -92,15 +99,26 @@ pub fn test_end_to_end_registration(env: TestEnv) { } } - // wait a bit - tokio::time::sleep(Duration::from_secs(2)).await; - // check that the custom domain is being served by the BN by checking the content of the canister - assert_eq!( - access_domain(bn_http_client.clone(), domain_name).await?, - "canister1", - "Site content of the custom domain is not correct" - ); + retry_with_msg_async!( + "check updated domain", + &logger, + READY_WAIT_TIMEOUT, + RETRY_BACKOFF, + || async { + let content = match access_domain(bn_http_client.clone(), domain_name).await { + Ok(x) => x, + Err(x) => bail!("Custom domain is not ready yet: {x}"), + }; + + if content != "canister1" { + bail!("Custom domain is not pointing to the right canister: expected 'canister1', got '{}'", content); + } + Ok(()) + } + ) + .await + .expect("The boundary node failed to configure the custom domain"); // need to wait a second to prevent being rate-limited tokio::time::sleep(Duration::from_secs(1)).await; @@ -127,27 +145,45 @@ pub fn test_end_to_end_registration(env: TestEnv) { // update the DNS records update_dns_records(env.clone(), domain_name, new_asset_canister_id).await?; - // wait for DNS changes to propagate - tokio::time::sleep(Duration::from_secs(1)).await; - // submit an update request - let update_response = update_registration(bn_http_client.clone(), registration_id.as_str()).await?; - - // check if the update request was accepted - match update_response { - UpdateRequestState::Accepted => {}, - UpdateRequestState::Rejected(reason) => panic!("Failed to update the custom domain: {reason}"), - }; - - // wait a bit - tokio::time::sleep(Duration::from_secs(2)).await; + retry_with_msg_async!( + "update the canister of the custom domain", + &logger, + READY_WAIT_TIMEOUT, + RETRY_BACKOFF, + || async { + let update_response = update_registration(bn_http_client.clone(), registration_id.as_str()).await?; + + // check if the update request was accepted + match update_response { + UpdateRequestState::Accepted => Ok(()), + UpdateRequestState::Rejected(reason) => bail!("Failed to update the custom domain: {reason}"), + } + } + ) + .await + .expect("Failed to submit the update request"); // check that the custom domain is being served by the BN by checking the content of the canister - assert_eq!( - access_domain(bn_http_client.clone(), domain_name).await?, - "canister2", - "Site content of the custom domain is not correct" - ); + retry_with_msg_async!( + "check updated domain", + &logger, + READY_WAIT_TIMEOUT, + RETRY_BACKOFF, + || async { + let content = match access_domain(bn_http_client.clone(), domain_name).await { + Ok(x) => x, + Err(x) => bail!("Failed to fetch the content of the canister: {x}"), + }; + + if content != "canister2" { + bail!("Custom domain is not pointing to the right canister: expected 'canister2', got '{}'", content); + } + Ok(()) + } + ) + .await + .expect("Failed to update the domain to canister mapping"); info!( logger, @@ -157,28 +193,41 @@ pub fn test_end_to_end_registration(env: TestEnv) { // remove the DNS records of the custom domain remove_dns_records(env.clone(), domain_name).await?; - // wait for DNS changes to propagate - tokio::time::sleep(Duration::from_secs(1)).await; - // request to delete the custom domain - let remove_response = remove_registration(bn_http_client.clone(), registration_id.as_str()).await?; - - // check if the removal request was accepted - match remove_response { - RemoveRequestState::Accepted => {}, - RemoveRequestState::Rejected(reason) => panic!("Failed to remove the custom domain: {reason}"), - }; - - // need to wait a second to prevent being rate-limited - tokio::time::sleep(Duration::from_secs(1)).await; + retry_with_msg_async!( + "remove custom domain", + &logger, + READY_WAIT_TIMEOUT, + RETRY_BACKOFF, + || async { + let remove_response = remove_registration(bn_http_client.clone(), registration_id.as_str()).await?; + // check if the removal request was accepted + match remove_response { + RemoveRequestState::Accepted => Ok(()), + RemoveRequestState::Rejected(reason) => bail!("Couldn't process the removal request: {reason}"), + } + } + ) + .await + .expect("Failed to remove the custom domain"); // make sure the domain has been removed - let registration_status = get_registration_status(bn_http_client.clone(), registration_id.as_str()).await?; - match registration_status { - GetRequestState::Accepted(_) => panic!("Failed to delete the custom domain: it still exists"), - GetRequestState::Rejected(reason) if reason == "not found" => {}, - GetRequestState::Rejected(reason) => panic!("Failed to delete the custom domain: {reason}"), - }; + retry_with_msg_async!( + "check custom domain status", + &logger, + READY_WAIT_TIMEOUT, + RETRY_BACKOFF, + || async { + let registration_status = get_registration_status(bn_http_client.clone(), registration_id.as_str()).await?; + match registration_status { + GetRequestState::Accepted(_) => bail!("Failed to delete the custom domain: it still exists"), + GetRequestState::Rejected(reason) if reason == "not found" => Ok(()), + GetRequestState::Rejected(reason) => bail!("Failed to delete the custom domain: {reason}"), + } + } + ) + .await + .expect("Failed to check that the custom domain has been removed"); info!( logger, @@ -196,3 +245,10 @@ pub fn test_end_to_end_registration(env: TestEnv) { }) .expect("failed to run test"); } + +fn main() -> Result<()> { + SystemTestGroup::new() + .with_setup(setup) + .add_test(systest!(test_end_to_end_registration)) + .execute_from_args() +} diff --git a/rs/tests/src/custom_domains_integration/pebble_cache.py b/rs/tests/boundary_nodes/custom_domains/pebble_cache.py similarity index 100% rename from rs/tests/src/custom_domains_integration/pebble_cache.py rename to rs/tests/boundary_nodes/custom_domains/pebble_cache.py diff --git a/rs/tests/src/custom_domains_integration/setup.rs b/rs/tests/boundary_nodes/custom_domains/setup.rs similarity index 98% rename from rs/tests/src/custom_domains_integration/setup.rs rename to rs/tests/boundary_nodes/custom_domains/setup.rs index 8412d5d7e69..ddd2ff996ee 100644 --- a/rs/tests/src/custom_domains_integration/setup.rs +++ b/rs/tests/boundary_nodes/custom_domains/setup.rs @@ -1,4 +1,14 @@ +use anyhow::{anyhow, bail, Context, Error}; +use candid::{Encode, Principal}; use certificate_orchestrator_interface::InitArg; +use chacha20poly1305::{aead::OsRng as ChaChaOsRng, KeyInit, XChaCha20Poly1305}; +use ic_agent::{identity::Secp256k1Identity, Identity}; +use ic_interfaces_registry::RegistryValue; +use ic_protobuf::registry::routing_table::v1::RoutingTable as PbRoutingTable; +use ic_registry_keys::make_routing_table_record_key; +use ic_registry_nns_data_provider::registry::RegistryCanister; +use ic_registry_routing_table::RoutingTable; +use ic_registry_subnet_type::SubnetType; use ic_system_test_driver::{ driver::{ asset_canister::{DeployAssetCanister, UploadAssetRequest}, @@ -15,25 +25,13 @@ use ic_system_test_driver::{ }, util::{agent_observes_canister_module, block_on}, }; - -use serde_json::json; -use std::{env, io::Read, net::SocketAddrV6, time::Duration}; - -use anyhow::{anyhow, Context, Error}; -use candid::{Encode, Principal}; -use chacha20poly1305::{aead::OsRng as ChaChaOsRng, KeyInit, XChaCha20Poly1305}; -use ic_agent::{identity::Secp256k1Identity, Identity}; -use ic_interfaces_registry::RegistryValue; -use ic_protobuf::registry::routing_table::v1::RoutingTable as PbRoutingTable; -use ic_registry_keys::make_routing_table_record_key; -use ic_registry_nns_data_provider::registry::RegistryCanister; -use ic_registry_routing_table::RoutingTable; -use ic_registry_subnet_type::SubnetType; use k256::{elliptic_curve::SecretKey, Secp256k1}; use pem::Pem; use rand::{rngs::OsRng, SeedableRng}; use rand_chacha::ChaChaRng; use reqwest::{redirect::Policy, Client, ClientBuilder}; +use serde_json::json; +use std::{env, io::Read, net::SocketAddrV6, time::Duration}; use tokio::task::{self, JoinHandle}; pub(crate) const CLOUDFLARE_API_PYTHON_PATH: &str = "/config/cloudflare_api.py"; @@ -218,7 +216,8 @@ async fn setup_remote_docker_host( ) -> Result { UniversalVm::new(REMOTE_DOCKER_HOST_VM_ID.into()) .with_config_img(get_dependency_path( - "rs/tests/custom_domains_uvm_config_image.zst", + env::var("CUSTOM_DOMAIN_UVM_CONFIG_PATH") + .expect("CUSTOM_DOMAIN_UVM_CONFIG_PATH not set"), )) .start(&env) .context("failed to setup universal VM")?; @@ -1285,18 +1284,6 @@ pub async fn get_registration_status( } } -fn get_service_status(vm: &dyn SshSession, service: &str) -> String { - vm.block_on_bash_script(&format!("systemctl is-active {service} 2>&1")) - .unwrap() -} - -pub fn is_service_active(vm: &dyn SshSession, service: &str) -> bool { - let cmd_output = get_service_status(vm, service); - let result = get_service_status(vm, service) == "active"; - println!("SERVICE-RJB: {service}: {cmd_output} - {result}"); - result -} - pub fn get_service_errors(vm: &dyn SshSession, service: &str) -> String { vm.block_on_bash_script(&format!( r#"journalctl -u {service}.service --since "20 seconds ago" -p err | grep "No entries""# @@ -1326,6 +1313,6 @@ pub async fn access_domain(bn_client: Client, domain_name: &str) -> Result Result<()> { - SystemTestGroup::new() - .with_setup(setup) - .add_test(systest!(test_end_to_end_registration)) - .execute_from_args() -} diff --git a/rs/tests/common.bzl b/rs/tests/common.bzl index dad3f5fc106..8afa72521c8 100644 --- a/rs/tests/common.bzl +++ b/rs/tests/common.bzl @@ -327,11 +327,6 @@ CANISTER_HTTP_RUNTIME_DEPS = [ "//rs/tests/networking/canister_http:http_uvm_config_image", ] -CUSTOM_DOMAINS_RUNTIME_DEPS = [ - "//rs/tests:custom_domains_uvm_config_image", - "@asset_canister//file", -] - XNET_TEST_CANISTER_RUNTIME_DEPS = ["//rs/rust_canisters/xnet_test:xnet-test-canister"] STATESYNC_TEST_CANISTER_RUNTIME_DEPS = ["//rs/rust_canisters/statesync_test:statesync_test_canister"] diff --git a/rs/tests/src/custom_domains_integration/mod.rs b/rs/tests/src/custom_domains_integration/mod.rs deleted file mode 100644 index e923f25b592..00000000000 --- a/rs/tests/src/custom_domains_integration/mod.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod certificate_orchestrator; -pub mod setup; diff --git a/rs/tests/src/lib.rs b/rs/tests/src/lib.rs index 286331195b2..7445a15a120 100644 --- a/rs/tests/src/lib.rs +++ b/rs/tests/src/lib.rs @@ -1,7 +1,6 @@ pub mod api_test; pub mod btc_integration; pub mod ckbtc; -pub mod custom_domains_integration; pub mod icrc1_agent_test; pub mod ledger_tests; pub mod message_routing;