gst-thumbnailers: add package test

This commit is contained in:
Tom Hunze
2026-04-18 18:00:24 +02:00
parent 5e55c60548
commit f50949a327
2 changed files with 51 additions and 0 deletions
@@ -13,6 +13,7 @@
fontconfig,
libglycin,
glycin-loaders,
callPackage,
}:
stdenv.mkDerivation (finalAttrs: {
@@ -52,6 +53,10 @@ stdenv.mkDerivation (finalAttrs: {
glycin-loaders
];
passthru = {
tests.thumbnailers = callPackage ./tests.nix { };
};
meta = {
description = "Generate thumbnailer for video and audio files";
homepage = "https://gitlab.gnome.org/GNOME/gst-thumbnailers";
@@ -0,0 +1,46 @@
{
stdenv,
gst-thumbnailers,
shared-mime-info,
writableTmpDirAsHomeHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "gst-thumbnailers-test";
inherit (gst-thumbnailers) version src;
sourceRoot = "${finalAttrs.src.name}/tests";
nativeBuildInputs = [
# fontconfig tries to write to `~/.cache/fontconfig`
writableTmpDirAsHomeHook
];
# Fix incorrectly detected MIME types
preBuild = ''
export XDG_DATA_DIRS=${shared-mime-info}/share:$XDG_DATA_DIRS
'';
buildPhase = ''
runHook preBuild
mkdir -p $out
for file in *.{flac,mp3,mkv,webm}; do
case "$file" in
*.flac|*.mp3) thumbnailer=gst-audio-thumbnailer ;;
*.mkv|*.webm) thumbnailer=gst-video-thumbnailer ;;
esac
for size in 128 256 512 1024; do
input="file://$(realpath "$file")"
output="$out/$(basename "$file")-$size.png"
${gst-thumbnailers}/bin/$thumbnailer -i "$input" -o "$output" -s $size
file -E "$output"
done
done
runHook postBuild
'';
})