From: Scott Worley <scottworley@scottworley.com>
Date: Thu, 7 Sep 2023 20:41:07 +0000 (-0700)
Subject: Allow nixpkgs' new intentionally-invalid symlink
X-Git-Tag: v3.0.12~1
X-Git-Url: http://git.scottworley.com/pinch/commitdiff_plain/5d0f42f73f77c1e64f11244dc7ddc5b75f08f038

Allow nixpkgs' new intentionally-invalid symlink
---

diff --git a/Changelog b/Changelog
index 0f13a44..fdcf9b7 100644
--- a/Changelog
+++ b/Changelog
@@ -1,6 +1,7 @@
 ## [Unreleased]
 ### Changed
 - Show which files are unexpectedly incomparable
+- Allow nixpkgs' new intentionally-invalid symlink
 
 
 ## [3.0.11] - 2023-05-24
diff --git a/pinch.py b/pinch.py
index 6beb4e2..33fd9bf 100644
--- a/pinch.py
+++ b/pinch.py
@@ -417,17 +417,28 @@ def compare_tarball_and_git(
         'nixpkgs',
         'programs.sqlite',
         'svn-revision']
-    benign_errors = []
+    permitted_errors = [
+        'pkgs/test/nixpkgs-check-by-name/tests/symlink-invalid/pkgs/by-name/fo/foo/foo.nix',
+    ]
+    benign_expected_errors = []
+    benign_permitted_errors = []
     for ee in expected_errors:
         if ee in errors:
             errors.remove(ee)
-            benign_errors.append(ee)
+            benign_expected_errors.append(ee)
+    for pe in permitted_errors:
+        if pe in errors:
+            errors.remove(pe)
+            benign_permitted_errors.append(ee)
     v.check(
         f'{len(errors)} unexpected incomparable files: {errors}',
         len(errors) == 0)
     v.check(
-        f'({len(benign_errors)} of {len(expected_errors)} expected incomparable files)',
-        len(benign_errors) == len(expected_errors))
+        f'({len(benign_expected_errors)} of {len(expected_errors)} expected incomparable files)',
+        len(benign_expected_errors) == len(expected_errors))
+    v.check(
+        f'({len(benign_permitted_errors)} of {len(permitted_errors)} permitted incomparable files)',
+        len(benign_permitted_errors) <= len(permitted_errors))
 
 
 def extract_tarball(