summaryrefslogtreecommitdiff
path: root/yarns
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2014-03-21 19:01:27 +0000
committerLars Wirzenius <liw@liw.fi>2014-03-21 19:01:27 +0000
commita55dc6f111dcffa36fae1a03f9eda0bbdfb6f41b (patch)
treee0dab67618186bdc27970f632ff67a114479da94 /yarns
parent4a974f24c686220a89bf943eaeda4965bf39c347 (diff)
downloadobnam-a55dc6f111dcffa36fae1a03f9eda0bbdfb6f41b.tar.gz
Fix test suite failures on TMPDIR without user xattr
Remove use of extended attributes from some tests. Make the remaining tests be conditional on whether extended attributes actually work in the temporary directory (in the user.* namespace).
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"