diff --git a/tests/generated.nix b/tests/generated.nix index 626a89f7..f04ba941 100644 --- a/tests/generated.nix +++ b/tests/generated.nix @@ -21,6 +21,8 @@ let declared, # A list of names generated by generate-files generated, + # A list of names that are explicitly unsupported upstream + unsupported ? [ ], # The filename where names are declared (used in error messages) declarationFile, }: @@ -29,11 +31,14 @@ let loc: lib.optional (!lib.hasAttrByPath loc pkgs) (lib.concatStringsSep "." loc) ) (builtins.map lib.toList packages); undeclared = lib.filter (name: !(lib.elem name declared)) generated; - uselesslyDeclared = lib.filter (name: !(lib.elem name generated)) declared; + uselesslyDeclared = lib.partition (name: lib.elem name unsupported) ( + lib.filter (name: !(lib.elem name generated)) declared + ); in describeErrors "${name}: The following are not found in `pkgs`, but are declared in ${declarationFile}:" missingFromPkgs ++ describeErrors "${name}: The following are not declared in ${declarationFile}:" undeclared - ++ describeErrors "${name}: The following are not listed upstream, but are declared in ${declarationFile}:" uselesslyDeclared; + ++ describeErrors "${name}: The following are now unsupported upstream, but are declared in ${declarationFile}:" uselesslyDeclared.right + ++ describeErrors "${name}: The following are not listed upstream, but are declared in ${declarationFile}:" uselesslyDeclared.wrong; # The error message provided to the derivation. # The test fails if this is non-empty. @@ -50,11 +55,8 @@ let declared = unpackaged ++ lib.attrsets.attrNames (packages // customCmd); - generated = lib.pipe ../generated/lspconfig-servers.json [ - lib.importJSON - (builtins.map (lib.getAttr "name")) - lib.lists.unique - ]; + generated = builtins.attrNames (lib.importJSON ../generated/lspconfig-servers.json); + unsupported = lib.importJSON ../generated/unsupported-lspconfig-servers.json; } ) ++ checkDeclarations (