summaryrefslogtreecommitdiffstats
path: root/tools/update-packaging/test/diffmar.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/update-packaging/test/diffmar.sh')
-rwxr-xr-xtools/update-packaging/test/diffmar.sh48
1 files changed, 48 insertions, 0 deletions
diff --git a/tools/update-packaging/test/diffmar.sh b/tools/update-packaging/test/diffmar.sh
new file mode 100755
index 0000000000..4b16ffb77a
--- /dev/null
+++ b/tools/update-packaging/test/diffmar.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+# Compares two mars
+
+marA="$1"
+marB="$2"
+testDir="$3"
+workdir="/tmp/diffmar/$testDir"
+fromdir="$workdir/0"
+todir="$workdir/1"
+
+# On Windows, creation time can be off by a second or more between the files in
+# the fromdir and todir due to them being extracted synchronously so use
+# time-style and exclude seconds from the creation time.
+lsargs="-algR"
+unamestr=`uname`
+if [ ! "$unamestr" = 'Darwin' ]; then
+ unamestr=`uname -o`
+ if [ "$unamestr" = 'Msys' -o "$unamestr" = "Cygwin" ]; then
+ lsargs="-algR --time-style=+%Y-%m-%d-%H:%M"
+ fi
+fi
+
+rm -rf "$workdir"
+mkdir -p "$fromdir"
+mkdir -p "$todir"
+
+cp "$1" "$fromdir"
+cp "$2" "$todir"
+
+cd "$fromdir"
+mar -x "$1"
+rm "$1"
+rm -f updatev2.manifest # Older files may contain this
+mv updatev3.manifest updatev3.manifest.xz
+xz -d updatev3.manifest.xz
+ls $lsargs > files.txt
+
+cd "$todir"
+mar -x "$2"
+rm "$2"
+mv updatev3.manifest updatev3.manifest.xz
+xz -d updatev3.manifest.xz
+ls $lsargs > files.txt
+
+echo "diffing $fromdir and $todir"
+echo "on linux shell sort and python sort return different results"
+echo "which can cause differences in the manifest files"
+diff -ru "$fromdir" "$todir"