From e6ee241053915d5322a4f9027a38512c7e755466 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 12 Dec 2020 09:44:35 +0200 Subject: test: add scenario for restoring mtime --- obnam.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/obnam.md b/obnam.md index ecc93dc..7e2bc92 100644 --- a/obnam.md +++ b/obnam.md @@ -488,7 +488,12 @@ then HTTP status code is 404 ~~~ -# Smoke test for Obnam as a whole +# Acceptance criteria for Obnam as a whole + +The scenarios in this chapter apply to Obnam as a whole: the client +and server working together. + +## Smoke test for backup and restore This scenario verifies that a small amount of data in simple files in one directory can be backed up and restored, and the restored files @@ -515,6 +520,37 @@ root: live ~~~ +## Back up regular file + +The scenarios in this section back up a single regular file each, and +verify that is metadata is restored correctly. There is a separate +scenario for each bit of metadata so that it's clear what fails, if +anything. + +All these scenarios use the following configuration file. + +~~~{#metadata.yaml .file .yaml .numberLines} +root: live +~~~ + +### Modification time + +This scenario verifies that the modification time is restored correctly. + +~~~scenario +given an installed obnam +and a running chunk server +and a client config based on metadata.yaml +and a file live/data.dat containing some random data +and a manifest of the directory live in live.yaml +when I run obnam backup metadata.yaml +then backup generation is GEN +when I invoke obnam restore metadata.yaml rest +given a manifest of the directory live restored in rest in rest.yaml +then files live.yaml and rest.yaml match +~~~ + + -- cgit v1.2.1 From d44a1fc45b8f5953f06c13ef3a2936a31fe2a740 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 12 Dec 2020 09:49:01 +0200 Subject: test: add scenario for restoring mode bits --- obnam.md | 19 +++++++++++++++++++ subplot/data.py | 4 ++++ subplot/data.yaml | 3 +++ 3 files changed, 26 insertions(+) diff --git a/obnam.md b/obnam.md index 7e2bc92..9b98dae 100644 --- a/obnam.md +++ b/obnam.md @@ -550,6 +550,25 @@ given a manifest of the directory live restored in rest in rest.yaml then files live.yaml and rest.yaml match ~~~ +### Mode bits + +This scenario verifies that the mode ("permission") bits are restored +correctly. + +~~~scenario +given an installed obnam +and a running chunk server +and a client config based on metadata.yaml +and a file live/data.dat containing some random data +and file live/data.dat has mode 464 +and a manifest of the directory live in live.yaml +when I run obnam backup metadata.yaml +then backup generation is GEN +when I invoke obnam restore metadata.yaml rest +given a manifest of the directory live restored in rest in rest.yaml +then files live.yaml and rest.yaml match +~~~ + diff --git a/subplot/data.py b/subplot/data.py index 9eadd3f..09df6c5 100644 --- a/subplot/data.py +++ b/subplot/data.py @@ -13,6 +13,10 @@ def create_file_with_random_data(ctx, filename=None): f.write(data) +def chmod_file(ctx, filename=None, mode=None): + os.chmod(filename, int(mode, 8)) + + def create_manifest_of_live(ctx, dirname=None, manifest=None): _create_manifest_of_directory(ctx, dirname=dirname, manifest=manifest) diff --git a/subplot/data.yaml b/subplot/data.yaml index 4f9871a..3b4d938 100644 --- a/subplot/data.yaml +++ b/subplot/data.yaml @@ -6,6 +6,9 @@ - given: "a file {filename} containing some random data" function: create_file_with_random_data +- given: file {filename} has mode {mode} + function: chmod_file + - given: a manifest of the directory {dirname} in {manifest} function: create_manifest_of_live -- cgit v1.2.1