aboutsummaryrefslogtreecommitdiff
path: root/src/garage/tests/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/garage/tests/common')
-rw-r--r--src/garage/tests/common/mod.rs14
-rw-r--r--src/garage/tests/common/util.rs13
2 files changed, 24 insertions, 3 deletions
diff --git a/src/garage/tests/common/mod.rs b/src/garage/tests/common/mod.rs
index b5f7f0b2..c40fde0f 100644
--- a/src/garage/tests/common/mod.rs
+++ b/src/garage/tests/common/mod.rs
@@ -7,6 +7,7 @@ pub mod macros;
pub mod client;
pub mod ext;
pub mod garage;
+pub mod util;
const REGION: Region = Region::from_static("garage-integ-test");
@@ -23,20 +24,27 @@ impl Context {
Context { garage, client }
}
- pub fn create_bucket(&self, name: &str) {
+ /// Create an unique bucket with a random suffix.
+ ///
+ /// Return the created bucket full name.
+ pub fn create_bucket(&self, name: &str) -> String {
+ let bucket_name = format!("{}-{}", name, util::random_id(6));
+
self.garage
.command()
- .args(["bucket", "create", name])
+ .args(["bucket", "create", &bucket_name])
.quiet()
.expect_success_status("Could not create bucket");
self.garage
.command()
.args(["bucket", "allow"])
.args(["--owner", "--read", "--write"])
- .arg(name)
+ .arg(&bucket_name)
.args(["--key", &self.garage.key.name])
.quiet()
.expect_success_status("Could not allow key for bucket");
+
+ bucket_name
}
}
diff --git a/src/garage/tests/common/util.rs b/src/garage/tests/common/util.rs
new file mode 100644
index 00000000..49c72879
--- /dev/null
+++ b/src/garage/tests/common/util.rs
@@ -0,0 +1,13 @@
+pub fn random_id(len: usize) -> String {
+ use rand::distributions::Slice;
+ use rand::Rng;
+
+ static ALPHABET: &[u8] = b"abcdefghijklmnopqrstuvwxyz0123456789.";
+
+ let rng = rand::thread_rng();
+ rng.sample_iter(Slice::new(ALPHABET).unwrap())
+ .map(|b| char::from(*b))
+ .filter(|c| c.is_ascii_lowercase() || c.is_ascii_digit())
+ .take(len)
+ .collect()
+}