summaryrefslogtreecommitdiff
path: root/yarns
diff options
context:
space:
mode:
Diffstat (limited to 'yarns')
-rw-r--r--yarns/0030-basics.yarn8
-rw-r--r--yarns/0050-multiple-clients.yarn6
-rw-r--r--yarns/0060-encryption.yarn8
-rw-r--r--yarns/0100-fuse.yarn1
-rw-r--r--yarns/0200-repo-formats.yarn2
-rw-r--r--yarns/9000-implements.yarn12
6 files changed, 27 insertions, 10 deletions
diff --git a/yarns/0030-basics.yarn b/yarns/0030-basics.yarn
index 88227fba..7a28720d 100644
--- a/yarns/0030-basics.yarn
+++ b/yarns/0030-basics.yarn
@@ -80,6 +80,7 @@ other parts of Obnam's test suite as well, and this reduces code
duplication.
SCENARIO backup non-basic filesystem objects
+ ASSUMING extended attributes are allowed for users
GIVEN directory L with interesting filesystem objects
AND a manifest of L in M
WHEN user U backs up directory L to repository R
@@ -90,6 +91,7 @@ As a special case, Obnam needs to notice when only an extended
attribute value changes.
SCENARIO backup notices when extended attribute value changes
+ ASSUMING extended attributes are allowed for users
GIVEN a file F in L, with data
AND file L/F has extended attribute user.foo set to foo
WHEN user U backs up directory L to repository R
@@ -132,8 +134,8 @@ Often it's useful to backup more than one location at once. We'll
assume that if we can backup two, then it'll all work well.
SCENARIO backup two roots
- GIVEN directory L1 with interesting filesystem objects
- AND directory L2 with interesting filesystem objects
+ GIVEN 4kB of new data in directory L1
+ AND 16kB of new data in directory L2
AND a manifest of L1 in M1
AND a manifest of L2 in M2
WHEN user U backs up directories L1 and L2 to repository R
@@ -177,7 +179,7 @@ that the configuration is correct: the fake backup runs much faster
than a real one.
SCENARIO a pretend backup
- GIVEN directory L with interesting filesystem objects
+ GIVEN 10kB of new data in directory L
WHEN user U backs up directory L to repository R
GIVEN a manifest of R in M1
WHEN user U pretends to back up directory L to repository R
diff --git a/yarns/0050-multiple-clients.yarn b/yarns/0050-multiple-clients.yarn
index 9119f034..e87f8128 100644
--- a/yarns/0050-multiple-clients.yarn
+++ b/yarns/0050-multiple-clients.yarn
@@ -12,8 +12,8 @@ for locking, which we assume will test that, and so in this yarn test
suite we do not test concurrency at all.
SCENARIO two clients sharing a repository
- GIVEN directory L1 with interesting filesystem objects
- AND directory L2 with interesting filesystem objects
+ GIVEN 64kB of new data in directory L1
+ AND 96kB of new data in directory L2
AND a manifest of L1 in M1
AND a manifest of L2 in M2
WHEN user U1 backs up directory L1 to repository R
@@ -50,7 +50,7 @@ verifies that you can list the clients even if you don't know an
existing client's name.
SCENARIO list clients without being in the client list
- GIVEN directory L with interesting filesystem objects
+ GIVEN 1kB of new data in directory L
WHEN user U1 backs up directory L to repository R
THEN user U2 can see user U1 in repository R
diff --git a/yarns/0060-encryption.yarn b/yarns/0060-encryption.yarn
index b30234be..485a1233 100644
--- a/yarns/0060-encryption.yarn
+++ b/yarns/0060-encryption.yarn
@@ -40,7 +40,7 @@ that encryption is done at the I/O abstraction level.
SCENARIO basic encrypted backup and restore
GIVEN user U uses encryption key "Test Key One" from test-data/keyring-1
- AND directory L with interesting filesystem objects
+ AND 128kB of new data in directory L
AND a manifest of L in M
WHEN user U backs up directory L to repository R
AND user U restores their latest generation in repository R into X
@@ -64,7 +64,7 @@ First of all, we make a simple encrypted backup as the first client.
SCENARIO adding and removing encryption keys to clients
GIVEN user U1 uses encryption key "Test Key One" from test-data/keyring-1
- AND directory L1 with interesting filesystem objects
+ AND 16kB of new data in directory L1
WHEN user U1 backs up directory L1 to repository R
THEN user U1 uses key "Test Key One" in repository R
@@ -79,7 +79,7 @@ to the client list, and thus can't add itself.
Then we make a backup as the second client.
GIVEN user U2 uses encryption key "Test Key Two" from test-data/keyring-2
- AND directory L2 with interesting filesystem objects
+ AND 32kB of new data in directory L2
WHEN user U2 backs up directory L2 to repository R
THEN user U2 uses key "Test Key Two" in repository R
@@ -138,7 +138,7 @@ remain.
SCENARIO remove a client
GIVEN user U1 uses encryption key "Test Key One" from test-data/keyring-1
AND user U2 uses encryption key "Test Key Two" from test-data/keyring-2
- AND directory L with interesting filesystem objects
+ AND 48kB of new data in directory L
WHEN user U1 backs up directory L to repository R
THEN user U1 uses key "Test Key One" in repository R
WHEN user U1 imports public key "Test Key Two" from test-data/keyring-2
diff --git a/yarns/0100-fuse.yarn b/yarns/0100-fuse.yarn
index d3433f0e..7310846d 100644
--- a/yarns/0100-fuse.yarn
+++ b/yarns/0100-fuse.yarn
@@ -7,6 +7,7 @@ test suite concentrates on verifying that at least the basics work.
SCENARIO Browsing backups with FUSE plugin
ASSUMING user is in group fuse
+ AND extended attributes are allowed for users
GIVEN directory L with interesting filesystem objects
AND a manifest of L in M
WHEN user U backs up directory L to repository R
diff --git a/yarns/0200-repo-formats.yarn b/yarns/0200-repo-formats.yarn
index 6520fbfd..646fe58a 100644
--- a/yarns/0200-repo-formats.yarn
+++ b/yarns/0200-repo-formats.yarn
@@ -34,6 +34,7 @@ better.
First, the normal one reference repository.
SCENARIO use repository format 6
+ ASSUMING extended attributes are allowed for users
GIVEN unpacked test data from test-data/repo-format-6-encrypted-deflated.tar.xz in T
WHEN user havelock restores generation 1 in T/repo to R1
THEN restored data in R1 matches T/manifest-1
@@ -43,6 +44,7 @@ First, the normal one reference repository.
Then, the in-tree repository.
SCENARIO use repository format 6 with in-tree data
+ ASSUMING extended attributes are allowed for users
GIVEN unpacked test data from test-data/repo-format-6-in-tree-data.tar.xz in T
WHEN user havelock restores generation 1 in T/repo to R1
THEN restored data in R1 matches T/manifest-1
diff --git a/yarns/9000-implements.yarn b/yarns/9000-implements.yarn
index ab0fe1c8..b62d17f4 100644
--- a/yarns/9000-implements.yarn
+++ b/yarns/9000-implements.yarn
@@ -504,3 +504,15 @@ in a specific group.
IMPLEMENTS ASSUMING user is in group (\S+)
groups | tr ' ' '\n' | grep -Fx "$MATCH_1"
+
+
+Check on whether user extended attributes work
+----------------------------------------------
+
+Extended attributes are, at least on some filesystems, a mount-time
+option which may be disabled. In fact, experience has shown that it
+often is disabled on build servers.
+
+ IMPLEMENTS ASSUMING extended attributes are allowed for users
+ touch "$DATADIR/xattr.test"
+ setfattr -n user.foo -v bar "$DATADIR/xattr.test"