Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDaniel Calviño Sánchez <danxuliu@gmail.com>2018-09-18 10:27:59 +0300
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2018-09-18 11:23:35 +0300
commitbc84aa0269aa5e32b1287f66c6a2db18f2b3d8fa (patch)
tree2b0500eb80f217251e701e760eba7fd160048c36 /tests
parent45c35fc7fd6add12fb383f6c6a3111d593497500 (diff)
Include empty directories in the default state of acceptance tests
Before each scenario of the acceptance tests is run the Nextcloud server is reset to a default state. To do this the full directory of the Nextcloud server is commited to a local Git repository and then reset to that commit when needed. Unfortunately, Git does not support including empty directories in a commit. Due to this, when the default state was restored, it could happen that the file cache listed an empty directory that did not exist because it was not properly restored (for example, "data/appdata_*/css/icons"), and that in turn could lead to an error when the directory was used. Currently the only way to force Git to include an empty directory is to add a dummy file to the directory (so it will no longer be empty, but that should not be a problem in the affected directories, even if the dummy file is not included in the file cache); although Git FAQ suggests using a ".gitignore" file a ".keep" file was used instead, as it conveys better its purpose. Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Diffstat (limited to 'tests')
-rwxr-xr-xtests/acceptance/run-local.sh2
1 files changed, 2 insertions, 0 deletions
diff --git a/tests/acceptance/run-local.sh b/tests/acceptance/run-local.sh
index e924bd94f3f..7ae6705000c 100755
--- a/tests/acceptance/run-local.sh
+++ b/tests/acceptance/run-local.sh
@@ -206,6 +206,8 @@ su --shell /bin/bash --login www-data --command "cd $NEXTCLOUD_DIR && $ACCEPTANC
echo "Saving the default state so acceptance tests can reset to it"
find . -name ".gitignore" -exec rm --force {} \;
+# Create dummy files in empty directories to force Git to save the directories.
+find . -not -path "*.git*" -type d -empty -exec touch {}/.keep \;
git add --all && echo 'Default state' | git -c user.name='John Doe' -c user.email='john@doe.org' commit --quiet --file=-
cd tests/acceptance