From 2215101cad9d809e345e2e939fa1e125563d25cf Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Wed, 13 Mar 2024 16:32:04 -0400 Subject: [PATCH 1/2] Add a Few Tests --- .../file-handling/directory-mirror.sh | 49 +++++++++++++++++++ .../directory-mirror.sh.stderr.exact | 0 .../directory-mirror.sh.stdout.exact | 0 3 files changed, 49 insertions(+) create mode 100755 tests/cli-tests/file-handling/directory-mirror.sh create mode 100644 tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact create mode 100644 tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact diff --git a/tests/cli-tests/file-handling/directory-mirror.sh b/tests/cli-tests/file-handling/directory-mirror.sh new file mode 100755 index 000000000..b2f70b591 --- /dev/null +++ b/tests/cli-tests/file-handling/directory-mirror.sh @@ -0,0 +1,49 @@ +#!/bin/sh +set -e + +# setup +mkdir -p src/.hidden src/dir +mkdir mid dst + +echo "file1" > src/file1 +echo "file2" > src/.file2 +echo "file3" > src/.hidden/.file3 +echo "file4" > src/dir/.file4 + +# relative paths +zstd -q -r --output-dir-mirror mid/ src/ +zstd -q -d -r --output-dir-mirror dst/ mid/src/ + +diff --brief --recursive --new-file src/ dst/mid/src/ + +# reset +rm -rf mid dst +mkdir mid dst + +# from inside the directory +(cd src; zstd -q -r --output-dir-mirror ../mid/ ./) +(cd mid; zstd -q -d -r --output-dir-mirror ../dst/ ./) + +diff --brief --recursive --new-file src/ dst/ + +# reset +rm -rf mid dst +mkdir mid dst + +# absolute paths +export BASE_PATH="$(pwd)" + +zstd -q -r --output-dir-mirror mid/ "${BASE_PATH}/src/" +zstd -q -d -r --output-dir-mirror dst/ "${BASE_PATH}/mid/${BASE_PATH}/src/" + +diff --brief --recursive --new-file src/ "dst/${BASE_PATH}/mid/${BASE_PATH}/src/" + +# reset +rm -rf mid dst +mkdir mid dst + +# dots +zstd -q -r --output-dir-mirror mid/ ./src/./ +zstd -q -d -r --output-dir-mirror dst/ ./mid/./src/./ + +diff --brief --recursive --new-file src/ dst/mid/src/ diff --git a/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact b/tests/cli-tests/file-handling/directory-mirror.sh.stderr.exact new file mode 100644 index 000000000..e69de29bb diff --git a/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact b/tests/cli-tests/file-handling/directory-mirror.sh.stdout.exact new file mode 100644 index 000000000..e69de29bb From 86b8e39a84d15ebcae3fa4b36240db27f2ae74ac Mon Sep 17 00:00:00 2001 From: "W. Felix Handte" Date: Wed, 13 Mar 2024 16:33:30 -0400 Subject: [PATCH 2/2] Remove Erroneous Exclusion of Hidden Files and Folders in `--output-dir-mirror` --- programs/util.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/programs/util.c b/programs/util.c index 862fc8008..d6f33d4a8 100644 --- a/programs/util.c +++ b/programs/util.c @@ -1119,9 +1119,6 @@ static char* mallocAndJoin2Dir(const char *dir1, const char *dir2) memcpy(outDirBuffer, dir1, dir1Size); outDirBuffer[dir1Size] = '\0'; - if (dir2[0] == '.') - return outDirBuffer; - buffer = outDirBuffer + dir1Size; if (dir1Size > 0 && *(buffer - 1) != PATH_SEP) { *buffer = PATH_SEP;