Unverified Commit 21a2bb22 authored by Tom Hunze's avatar Tom Hunze
Browse files

check-meta-test.nix: add tests for compound licenses

parent b49255b8
Loading
Loading
Loading
Loading
+84 −61
Original line number Diff line number Diff line
@@ -22,14 +22,17 @@ let
    assertMsg
    generators
    licenses
    nameValuePair
    recurseIntoAttrs
    replaceString
    ;

  mkUnfreePkg = name: {
  mkPkg = name: license: {
    pname = name;
    version = "1.0";
    meta.license = licenses.unfree;
    meta.license = license;
  };

  assertValidity =
    {
      nixpkgsConfig,
@@ -52,16 +55,16 @@ let
      toPretty = generators.toPretty { };
    in
    assertMsg (actual.success == expected) ''
      Expected validity of package ${lib.getName pkg} to be ${toPretty expected},
      but got ${toPretty actual} with config:
      Expected validity of package '${lib.getName pkg}' with unfree license
      '${licenses.toSPDX pkg.meta.license}' to be ${toPretty expected}, but got
      ${toPretty actual}
      with config:
      ${toPretty nixpkgsConfig}
    '';

  runAssertions = assertions: lib.deepSeq assertions "";

in
recurseIntoAttrs {

  mkTests = mkUnfreePkg: {
    allowOnlyFreePackagesByDefault = assertValidity {
      nixpkgsConfig = { };
      pkg = mkUnfreePkg "forbidden";
@@ -125,4 +128,24 @@ recurseIntoAttrs {
          expected = false;
        })
      ];
}
  };

  unfreeLicenses = [
    licenses.unfree
    (licenses.AND [
      licenses.free
      licenses.unfree
    ])
  ];
in

recurseIntoAttrs (
  builtins.listToAttrs (
    map (
      license:
      nameValuePair (replaceString " " "-" (licenses.toSPDX license)) (
        recurseIntoAttrs (mkTests (name: mkPkg name license))
      )
    ) unfreeLicenses
  )
)