Something went wrong. Try again.
What happens if I push all of nixpkgs
Something went wrong. Try again.
2.5 kB · 98 lines
Nix
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899{ runCommandLocal, lib, git, clang-tools, makeHardcodeGsettingsPatch,}:
let mkTest = { name, expected, src, patches ? [ ], args, }:
let patch = makeHardcodeGsettingsPatch ( args // { inherit src patches; } ); in runCommandLocal "makeHardcodeGsettingsPatch-tests-${name}"
{ nativeBuildInputs = [ git clang-tools ]; }
'' cp -r --no-preserve=all "${src}" src cp -r --no-preserve=all "${expected}" src-expected
pushd src for patch in ${lib.escapeShellArgs (builtins.map (p: "${p}") patches)}; do patch < "$patch" done patch < "${patch}" popd
find src -name '*.c' -print0 | while read -d $'\0' sourceFile; do sourceFile=''${sourceFile#src/} clang-format -style='{BasedOnStyle: InheritParentConfig, ColumnLimit: 240}' -i "src/$sourceFile" "src-expected/$sourceFile" git diff --no-index "src/$sourceFile" "src-expected/$sourceFile" | cat done touch "$out" '';in{ basic = mkTest { name = "basic"; src = ./fixtures/example-project; args = { schemaIdToVariableMapping = { "org.gnome.evolution-data-server.addressbook" = "EDS"; "org.gnome.evolution.calendar" = "EVO"; "org.gnome.seahorse.nautilus.window" = "SEANAUT"; }; }; expected = ./fixtures/example-project-patched; };
patches = mkTest { name = "patches"; src = ./fixtures/example-project-wrapped-settings-constructor; patches = [ # Avoid using wrapper function, which the generator cannot handle. ./fixtures/example-project-wrapped-settings-constructor-resolve.patch ]; args = { schemaIdToVariableMapping = { "org.gnome.evolution-data-server.addressbook" = "EDS"; }; }; expected = ./fixtures/example-project-wrapped-settings-constructor-patched; };
existsFn = mkTest { name = "exists-fn"; src = ./fixtures/example-project; args = { schemaIdToVariableMapping = { "org.gnome.evolution-data-server.addressbook" = "EDS"; "org.gnome.evolution.calendar" = "EVO"; "org.gnome.seahorse.nautilus.window" = "SEANAUT"; }; schemaExistsFunction = "e_ews_common_utils_gsettings_schema_exists"; }; expected = ./fixtures/example-project-patched-with-exists-fn; };
}