This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=ef9d366feadb0b6ea5d0a77a10bdedf1262a8cd9

commit ef9d366feadb0b6ea5d0a77a10bdedf1262a8cd9
Author: Guillem Jover <[email protected]>
AuthorDate: Sat Jul 6 14:08:42 2024 +0200

    test: Add new DPKG_CHECK_DIFF macro to abstract file comparisons
    
    On some systems, such as ones based on SunOS/illumos, the diff tool does
    not honor the -q option and outputs «No differences encountered» when
    there are no file differences.
    
    Instead of requiring GNU diff, abstract the check into a new macro that
    uses the internal autotest machinery to compare the files for us via the
    expout mechanism.
---
 src/at/divert.at | 26 +++++++++++++-------------
 src/at/local.at  |  6 ++++++
 2 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/src/at/divert.at b/src/at/divert.at
index 667ccafb1..031728af7 100644
--- a/src/at/divert.at
+++ b/src/at/divert.at
@@ -171,7 +171,7 @@ AT_CHECK([DPKG_DIVERT --rename --add /testdir/foo], [], 
[stdout])
 AT_CHECK([$GREP -q "Adding.*local.*diversion.* /testdir/foo.* 
/testdir/foo.distrib" stdout])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -189,7 +189,7 @@ AT_CHECK([DPKG_DIVERT --no-rename --add /testdir/foo], [], 
[stdout])
 AT_CHECK([$GREP -q "Adding.*local.*diversion.* /testdir/foo.* 
/testdir/foo.distrib" stdout])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -206,7 +206,7 @@ AT_DATA([ref-diversions], [/testdir/foo
 AT_CHECK([DPKG_DIVERT --quiet --rename --add /testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -236,7 +236,7 @@ AT_DATA([ref-diversions], [/testdir/foo
 AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -253,7 +253,7 @@ AT_DATA([ref-diversions], [/testdir/foo
 AT_CHECK([DPKG_DIVERT --quiet --local --rename /testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -267,7 +267,7 @@ bash
 ])
 
 AT_CHECK([DPKG_DIVERT --quiet --rename --package bash /testdir/foo])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -285,7 +285,7 @@ AT_DATA([ref-diversions], [/testdir/foo
 AT_CHECK([DPKG_DIVERT --quiet --rename /testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -312,7 +312,7 @@ AT_DATA([ref-diversions], [/testdir/zoo/foo
 ])
 
 AT_CHECK([DPKG_DIVERT --quiet --rename --add /testdir/zoo/foo])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -440,7 +440,7 @@ coreutils
 AT_CHECK([DPKG_DIVERT --quiet --rename --package coreutils --add /testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -487,7 +487,7 @@ AT_CHECK([DPKG_DIVERT --rename --divert 
/testdir/foo.distrib --remove /testdir/f
          [], [stdout])
 AT_CHECK([$EGREP -q 'Removing .*/testdir/foo' stdout])
 
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -510,7 +510,7 @@ AT_CHECK([DPKG_DIVERT --quiet --no-rename --add 
/testdir/baz])
 AT_CHECK([DPKG_DIVERT --no-rename --remove /testdir/bar], [], [stdout])
 AT_CHECK([$EGREP -q 'Removing .* /testdir/bar' stdout])
 
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -532,7 +532,7 @@ AT_CHECK([DPKG_DIVERT --quiet --no-rename --package bash 
/testdir/baz])
 
 AT_CHECK([DPKG_DIVERT --no-rename --quiet --package bash --remove 
/testdir/baz])
 
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CLEANUP
 
@@ -552,7 +552,7 @@ AT_CHECK([DPKG_DIVERT --test --rename --remove 
/testdir/foo], [], [stdout])
 AT_CHECK([$GREP -q 'Removing .*/testdir/foo' stdout])
 DPKG_CHECK_FSYS_PATH_MISSING([/testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo.distrib])
-AT_CHECK([diff -u ref-diversions DPKG_DIR_ADMIN/diversions])
+DPKG_CHECK_DIFF([DPKG_DIR_ADMIN/diversions], [ref-diversions])
 
 AT_CHECK([DPKG_DIVERT --quiet --rename --remove /testdir/foo])
 DPKG_CHECK_FSYS_PATH_EXISTS([/testdir/foo])
diff --git a/src/at/local.at b/src/at/local.at
index a49311cb5..26ba70c5b 100644
--- a/src/at/local.at
+++ b/src/at/local.at
@@ -52,6 +52,12 @@ m4_define([DPKG_FILE_SIZE], [
   $PERL -E 'say -s shift' "$1" dnl
 ])
 
+# DPKG_CHECK_DIFF($file_out, $file_exp)
+m4_define([DPKG_CHECK_DIFF], [
+  cp "$2" expout
+  AT_CHECK([cat "$1"], [], [expout])
+])
+
 # DPKG_GEN_FSYS()
 m4_define([DPKG_GEN_DB], [
   mkdir -p DPKG_DIR_INST

-- 
Dpkg.Org's dpkg

Reply via email to