diff options
-rwxr-xr-x | src/abslibre-tools/librerelease | 2 | ||||
-rw-r--r-- | test/cases/librerelease.bats | 10 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/abslibre-tools/librerelease b/src/abslibre-tools/librerelease index 455d981..cb07229 100755 --- a/src/abslibre-tools/librerelease +++ b/src/abslibre-tools/librerelease @@ -78,7 +78,7 @@ unlock_staging() { list0_files() { find -L "${WORKDIR}/staging" -type f -not -name '*.lock' \ - -exec realpath -z --relative-to="${WORKDIR}/staging" {} + + -exec realpath -z --relative-to="${WORKDIR}/staging" {} + | sort -z } # This function is taken almost verbatim from makepkg diff --git a/test/cases/librerelease.bats b/test/cases/librerelease.bats index ce9692f..e936ea8 100644 --- a/test/cases/librerelease.bats +++ b/test/cases/librerelease.bats @@ -109,7 +109,7 @@ teardown() { sub/subfolder eot - diff "$tmpdir/list-correct" "$tmpdir/list" + diff -u "$tmpdir/list-correct" "$tmpdir/list" } @test "librerelease fails if GPGKEY not set" { @@ -165,7 +165,7 @@ eot [[ $status == 0 ]] grep "==> Removing files from local staging directory" "$tmpdir"/stderr - diff "$tmpdir"/expected-stdout "$tmpdir"/stdout + diff -u "$tmpdir"/expected-stdout "$tmpdir"/stdout (( ! $(command ls -A1 "$staging_dir" | wc -l) )) } @@ -186,7 +186,11 @@ eot [[ $status == 0 ]] grep "==> Removing files from remote staging directory" "$tmpdir"/stderr - diff "$tmpdir"/expected-stdout "$tmpdir"/stdout + # `rm -rfv` order depends on the underlying filesystem and so + # we need to sort this for it to be reproducible. + LC_ALL=C sort <"$tmpdir"/expected-stdout >"$tmpdir"/expected-stdout.sorted + LC_ALL=C sort <"$tmpdir"/stdout >"$tmpdir"/stdout.sorted + diff -u "$tmpdir"/expected-stdout.sorted "$tmpdir"/stdout.sorted (( ! $(command ls -A1 "$staging_dir" | wc -l) )) } |