59 lines
1.3 KiB
Nix
59 lines
1.3 KiB
Nix
|
{ runCommandLocal
|
||
|
, git
|
||
|
, clang-tools
|
||
|
, makeHardcodeGsettingsPatch
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
mkTest =
|
||
|
{
|
||
|
name,
|
||
|
expected,
|
||
|
src,
|
||
|
schemaIdToVariableMapping,
|
||
|
}:
|
||
|
|
||
|
let
|
||
|
patch = makeHardcodeGsettingsPatch {
|
||
|
inherit src schemaIdToVariableMapping;
|
||
|
};
|
||
|
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
|
||
|
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;
|
||
|
schemaIdToVariableMapping = {
|
||
|
"org.gnome.evolution-data-server.addressbook" = "EDS";
|
||
|
"org.gnome.evolution.calendar" = "EVO";
|
||
|
"org.gnome.seahorse.nautilus.window" = "SEANAUT";
|
||
|
};
|
||
|
expected = ./fixtures/example-project-patched;
|
||
|
};
|
||
|
}
|