test(tvix/[ca]store): enable bigtable only with "integration" feature
The emulator and bigtable client are quite big. Remove them from the default //tvix:shell. Put the tests behind a `integration` feature flag, and add a variant with that enabled to CI, and drop the bigtable tools from //tvix:shell. Change-Id: Ie042097a0d6fc26542faa96c139b77298ccb160a Reviewed-on: https://cl.tvl.fyi/c/depot/+/11582 Reviewed-by: edef <edef@edef.eu> Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
b8e82a42ed
commit
37671d3913
10 changed files with 44 additions and 15 deletions
|
|
@ -112,3 +112,7 @@ virtiofs = [
|
|||
]
|
||||
fuse = ["fs"]
|
||||
tonic-reflection = ["dep:tonic-reflection"]
|
||||
# Whether to run the integration tests.
|
||||
# Requires the following packages in $PATH:
|
||||
# cbtemulator, google-cloud-bigtable-tool
|
||||
integration = []
|
||||
|
|
|
|||
|
|
@ -1,12 +1,23 @@
|
|||
{ depot, pkgs, ... }:
|
||||
|
||||
depot.tvix.crates.workspaceMembers.tvix-castore.build.override {
|
||||
(depot.tvix.crates.workspaceMembers.tvix-castore.build.override {
|
||||
runTests = true;
|
||||
testPreRun = ''
|
||||
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt;
|
||||
export PATH="$PATH:${pkgs.lib.makeBinPath [pkgs.cbtemulator pkgs.google-cloud-bigtable-tool]}"
|
||||
'';
|
||||
|
||||
# enable some optional features.
|
||||
features = [ "default" "cloud" ];
|
||||
}
|
||||
}).overrideAttrs (_: {
|
||||
meta.ci.targets = [ "integration-tests" ];
|
||||
passthru.integration-tests = depot.tvix.crates.workspaceMembers.tvix-castore.build.override {
|
||||
runTests = true;
|
||||
testPreRun = ''
|
||||
export SSL_CERT_FILE=${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt;
|
||||
export PATH="$PATH:${pkgs.lib.makeBinPath [pkgs.cbtemulator pkgs.google-cloud-bigtable-tool]}"
|
||||
'';
|
||||
|
||||
# enable some optional features.
|
||||
features = [ "default" "cloud" "integration" ];
|
||||
};
|
||||
})
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ mod tests {
|
|||
#[case::grpc_invalid_host_and_path("grpc+http://localhost/some-path", false)]
|
||||
/// A valid example for Bigtable
|
||||
#[cfg_attr(
|
||||
feature = "cloud",
|
||||
all(feature = "cloud", feature = "integration"),
|
||||
case::bigtable_valid_url(
|
||||
"bigtable://instance-1?project_id=project-1&table_name=table-1&family_name=cf1",
|
||||
true
|
||||
|
|
@ -152,7 +152,7 @@ mod tests {
|
|||
)]
|
||||
/// A valid example for Bigtable, specifying a custom channel size and timeout
|
||||
#[cfg_attr(
|
||||
feature = "cloud",
|
||||
all(feature = "cloud", feature = "integration"),
|
||||
case::bigtable_valid_url(
|
||||
"bigtable://instance-1?project_id=project-1&table_name=table-1&family_name=cf1&channel_size=10&timeout=10",
|
||||
true
|
||||
|
|
@ -160,7 +160,7 @@ mod tests {
|
|||
)]
|
||||
/// A invalid Bigtable example (missing fields)
|
||||
#[cfg_attr(
|
||||
feature = "cloud",
|
||||
all(feature = "cloud", feature = "integration"),
|
||||
case::bigtable_invalid_url("bigtable://instance-1", false)
|
||||
)]
|
||||
#[tokio::test]
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ use self::utils::make_grpc_directory_service_client;
|
|||
#[case::grpc(make_grpc_directory_service_client().await)]
|
||||
#[case::memory(directoryservice::from_addr("memory://").await.unwrap())]
|
||||
#[case::sled(directoryservice::from_addr("sled://").await.unwrap())]
|
||||
#[cfg_attr(feature = "cloud", case::bigtable(directoryservice::from_addr("bigtable://instance-1?project_id=project-1&table_name=table-1&family_name=cf1").await.unwrap()))]
|
||||
#[cfg_attr(all(feature = "cloud", feature = "integration"), case::bigtable(directoryservice::from_addr("bigtable://instance-1?project_id=project-1&table_name=table-1&family_name=cf1").await.unwrap()))]
|
||||
pub fn directory_services(#[case] directory_service: impl DirectoryService) {}
|
||||
|
||||
/// Ensures asking for a directory that doesn't exist returns a Ok(None).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue