mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-21 22:43:01 +00:00
nixos/tests/darling-dmg: init
This commit is contained in:
parent
f3ff4d1c51
commit
e7808666ea
@ -240,6 +240,7 @@ in {
|
||||
custom-ca = handleTest ./custom-ca.nix {};
|
||||
croc = handleTest ./croc.nix {};
|
||||
darling = handleTest ./darling.nix {};
|
||||
darling-dmg = runTest ./darling-dmg.nix;
|
||||
dae = handleTest ./dae.nix {};
|
||||
davis = handleTest ./davis.nix {};
|
||||
db-rest = handleTest ./db-rest.nix {};
|
||||
|
34
nixos/tests/darling-dmg.nix
Normal file
34
nixos/tests/darling-dmg.nix
Normal file
@ -0,0 +1,34 @@
|
||||
{ lib, pkgs, ... }:
|
||||
# This needs to be a VM test because the FUSE kernel module can't be used inside of a derivation in the Nix sandbox.
|
||||
# This test also exercises the LZFSE support in darling-dmg.
|
||||
let
|
||||
# The last kitty release which is stored on an HFS+ filesystem inside the disk image
|
||||
test-dmg-file = pkgs.fetchurl {
|
||||
url = "https://github.com/kovidgoyal/kitty/releases/download/v0.17.4/kitty-0.17.4.dmg";
|
||||
hash = "sha256-m+c5s8fFrgUc0xQNI196WplYBZq9+lNgems5haZUdvA=";
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "darling-dmg";
|
||||
meta.maintainers = with lib.maintainers; [ Luflosi ];
|
||||
|
||||
nodes.machine = {};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.succeed("mkdir mount-point")
|
||||
machine.succeed("'${pkgs.darling-dmg}/bin/darling-dmg' '${test-dmg-file}' mount-point")
|
||||
|
||||
# Crude way to verify the contents
|
||||
# Taken from https://stackoverflow.com/questions/545387/linux-compute-a-single-hash-for-a-given-folder-contents
|
||||
# This could be improved. It does not check symlinks for example.
|
||||
hash = machine.succeed("""
|
||||
(find mount-point -type f -print0 | sort -z | xargs -0 sha256sum; \
|
||||
find mount-point \( -type f -o -type d \) -print0 | sort -z | \
|
||||
xargs -0 stat -c '%n %a') \
|
||||
| sha256sum
|
||||
""").strip()
|
||||
assert hash == "00e61c2ef171093fbf194e420c17bb84bcdb823238d70eb46e375bab2427cc21 -", f"The disk image contents differ from what was expected (was {hash})"
|
||||
'';
|
||||
}
|
@ -1,4 +1,6 @@
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse, libiconv }:
|
||||
{ lib, stdenv, fetchFromGitHub, cmake, fuse, zlib, bzip2, openssl, libxml2, icu, lzfse, libiconv
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "darling-dmg";
|
||||
@ -20,6 +22,10 @@ stdenv.mkDerivation rec {
|
||||
"-llzfse"
|
||||
];
|
||||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) darling-dmg;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.darlinghq.org/";
|
||||
description = "Darling lets you open macOS dmgs on Linux";
|
||||
|
Loading…
Reference in New Issue
Block a user