diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 5512a63e346a..6564a958d5b4 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -113,6 +113,7 @@ in fontconfig-default-fonts = handleTest ./fontconfig-default-fonts.nix {}; freeswitch = handleTest ./freeswitch.nix {}; fsck = handleTest ./fsck.nix {}; + ft2-clone = handleTest ./ft2-clone.nix {}; gerrit = handleTest ./gerrit.nix {}; gotify-server = handleTest ./gotify-server.nix {}; grocy = handleTest ./grocy.nix {}; diff --git a/nixos/tests/ft2-clone.nix b/nixos/tests/ft2-clone.nix new file mode 100644 index 000000000000..c877054234ec --- /dev/null +++ b/nixos/tests/ft2-clone.nix @@ -0,0 +1,35 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "ft2-clone"; + meta = with pkgs.lib.maintainers; { + maintainers = [ fgaz ]; + }; + + machine = { config, pkgs, ... }: { + imports = [ + ./common/x11.nix + ]; + + services.xserver.enable = true; + sound.enable = true; + environment.systemPackages = [ pkgs.ft2-clone ]; + }; + + enableOCR = true; + + testScript = + '' + machine.wait_for_x() + # Add a dummy sound card, or the program won't start + machine.execute("modprobe snd-dummy") + + machine.execute("ft2-clone &") + + machine.wait_for_window(r"Fasttracker") + machine.sleep(5) + # One of the few words that actually get recognized + if "Songlen" not in machine.get_screen_text(): + raise Exception("Program did not start successfully") + machine.screenshot("screen") + ''; +}) + diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix index aa4f12268916..bcdc1fe719cd 100644 --- a/pkgs/applications/audio/ft2-clone/default.nix +++ b/pkgs/applications/audio/ft2-clone/default.nix @@ -1,8 +1,10 @@ { stdenv , fetchFromGitHub , cmake +, nixosTests , alsaLib , SDL2 +, libiconv }: stdenv.mkDerivation rec { @@ -17,7 +19,13 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ]; - buildInputs = [ SDL2 ] ++ stdenv.lib.optional stdenv.isLinux alsaLib; + buildInputs = [ SDL2 ] + ++ stdenv.lib.optional stdenv.isLinux alsaLib + ++ stdenv.lib.optional stdenv.isDarwin libiconv; + + passthru.tests = { + ft2-clone-starts = nixosTests.ft2-clone; + }; meta = with stdenv.lib; { description = "A highly accurate clone of the classic Fasttracker II software for MS-DOS";