storj/lib/uplinkc/testdata/helpers2.h

72 lines
2.2 KiB
C
Raw Normal View History

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
// test_bucket_config returns test bucket configuration.
BucketConfig test_bucket_config() {
BucketConfig config = {};
config.path_cipher = 0;
config.encryption_parameters.cipher_suite = 1; // TODO: make a named const
config.encryption_parameters.block_size = 4096;
config.redundancy_scheme.algorithm = 1; // TODO: make a named const
config.redundancy_scheme.share_size = 1024;
config.redundancy_scheme.required_shares = 2;
config.redundancy_scheme.repair_shares = 4;
config.redundancy_scheme.optimal_shares = 5;
config.redundancy_scheme.total_shares = 6;
return config;
}
// with_test_project opens default test project and calls handleProject callback.
void with_test_project(void (*handleProject)(Project)) {
char *_err = "";
char **err = &_err;
char *satellite_addr = getenv("SATELLITE_0_ADDR");
char *apikeyStr = getenv("GATEWAY_0_API_KEY");
printf("using SATELLITE_0_ADDR: %s\n", satellite_addr);
printf("using GATEWAY_0_API_KEY: %s\n", apikeyStr);
{
UplinkConfig cfg = {};
cfg.Volatile.TLS.SkipPeerCAWhitelist = 1; // TODO: add CA Whitelist
// New uplink
Uplink uplink = new_uplink(cfg, err);
require_noerror(*err);
requiref(uplink._handle != 0, "got empty uplink\n");
{
// parse api key
APIKey apikey = parse_api_key(apikeyStr, err);
require_noerror(*err);
requiref(apikey._handle != 0, "got empty apikey\n");
{
// open a project
Project project = open_project(uplink, satellite_addr, apikey, err);
require_noerror(*err);
requiref(project._handle != 0, "got empty project\n");
handleProject(project);
// close project
close_project(project, err);
require_noerror(*err);
}
// free api key
free_api_key(apikey);
}
// Close uplinks
close_uplink(uplink, err);
require_noerror(*err);
}
requiref(internal_UniverseIsEmpty(), "universe is not empty\n");
}