From f50949a327495be99107ed32c1dbf4e65cf73fee Mon Sep 17 00:00:00 2001 From: Tom Hunze Date: Mon, 30 Mar 2026 22:54:48 +0200 Subject: [PATCH] gst-thumbnailers: add package test --- pkgs/by-name/gs/gst-thumbnailers/package.nix | 5 +++ pkgs/by-name/gs/gst-thumbnailers/tests.nix | 46 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 pkgs/by-name/gs/gst-thumbnailers/tests.nix diff --git a/pkgs/by-name/gs/gst-thumbnailers/package.nix b/pkgs/by-name/gs/gst-thumbnailers/package.nix index 2ae9a3cd9b18..618a06b4b513 100644 --- a/pkgs/by-name/gs/gst-thumbnailers/package.nix +++ b/pkgs/by-name/gs/gst-thumbnailers/package.nix @@ -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"; diff --git a/pkgs/by-name/gs/gst-thumbnailers/tests.nix b/pkgs/by-name/gs/gst-thumbnailers/tests.nix new file mode 100644 index 000000000000..f66fd6bf764d --- /dev/null +++ b/pkgs/by-name/gs/gst-thumbnailers/tests.nix @@ -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 + ''; +})