Loading maintainers/maintainer-list.nix +12 −0 Original line number Diff line number Diff line Loading @@ -9902,6 +9902,12 @@ githubId = 155722885; name = "Joachim Ernst"; }; hemera = { email = "neikos@neikos.email"; github = "TheNeikos"; githubId = 1631166; name = "Marcel Müller"; }; henkery = { email = "jim@reupload.nl"; github = "henkery"; Loading Loading @@ -17298,6 +17304,12 @@ githubId = 144328493; keys = [ { fingerprint = "D89F 440C 6CD7 4753 090F EC7A 4682 C5CB 4D9D EA3C"; } ]; }; naora = { name = "Joris Gundermann"; email = "jorisgundermann@gmail.com"; github = "Naora"; githubId = 2221163; }; naphta = { github = "naphta"; githubId = 6709831; Loading nixos/tests/all-tests.nix +1 −1 Original line number Diff line number Diff line Loading @@ -768,7 +768,7 @@ in lomiri = discoverTests (import ./lomiri.nix); lomiri-calculator-app = runTest ./lomiri-calculator-app.nix; lomiri-calendar-app = runTest ./lomiri-calendar-app.nix; lomiri-camera-app = runTest ./lomiri-camera-app.nix; lomiri-camera-app = discoverTests (import ./lomiri-camera-app.nix); lomiri-clock-app = runTest ./lomiri-clock-app.nix; lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix; lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix; Loading nixos/tests/lomiri-camera-app.nix +244 −142 Original line number Diff line number Diff line let makeTest = import ./make-test-python.nix; feedLabel = "Image"; feedQrContent = "Test"; feedImageFile = "feed.png"; makeFeedImage = pkgs: pkgs.runCommand feedImageFile { nativeBuildInputs = with pkgs; [ (imagemagick.override { ghostscriptSupport = true; }) # add label for OCR qrtool # generate QR code ]; } '' qrtool encode '${feedQrContent}' -s 20 -m 10 > qr.png # Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR magick qr.png \ -flop \ -pointsize 30 -fill black -annotate +100+100 '${feedLabel}' \ -flop \ $out ''; in { basic = makeTest ( { lib, ... }: { name = "lomiri-camera-app-standalone"; name = "lomiri-camera-app-basic"; meta.maintainers = lib.teams.lomiri.members; nodes.machine = Loading @@ -11,20 +38,10 @@ services.xserver.enable = true; environment = { systemPackages = with pkgs; [ feh # view photo result ffmpeg # fake webcam stream gnome-text-editor # somewhere to paste QR result (imagemagick.override { ghostscriptSupport = true; }) # add label for OCR qrtool # generate QR code xdotool # clicking on QR button ] ++ (with pkgs.lomiri; [ systemPackages = with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); ]; variables = { UITK_ICON_THEME = "suru"; }; Loading @@ -38,9 +55,6 @@ ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; Loading @@ -55,6 +69,8 @@ with subtest("lomiri camera launches"): machine.succeed("lomiri-camera-app >&2 &") # emitted twice machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.sleep(10) machine.send_key("alt-f10") Loading @@ -62,22 +78,92 @@ machine.wait_for_text("Cannot access") machine.screenshot("lomiri-camera_open") machine.succeed("pkill -f lomiri-camera-app") machine.succeed("pgrep -afx lomiri-camera-app >&2") machine.succeed("pkill -efx lomiri-camera-app >&2") machine.wait_until_fails("pgrep -afx lomiri-camera-app >&2") # Sometimes, GStreamer errors out on camera init with: CameraBin error: "Failed to allocate required memory." # Adding more VM memory didn't affect this. Maybe flaky in general? # Current assumption: Camera access gets requested in a weird/still-in-use state, so sleep abit machine.sleep(10) with subtest("lomiri camera localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &") # emitted twice machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("Zugriff auf") machine.screenshot("lomiri-camera_localised") ''; } ); v4l2-photo = makeTest ( { lib, ... }: { name = "lomiri-camera-app-v4l2-photo"; meta.maintainers = lib.teams.lomiri.members; nodes.machine = { config, pkgs, ... }: { imports = [ ./common/x11.nix ]; services.xserver.enable = true; environment = { etc."${feedImageFile}".source = makeFeedImage pkgs; systemPackages = with pkgs; [ feh # view photo result ffmpeg # fake webcam stream imagemagick # unflip webcam photo xdotool # clicking on camera button ] ++ (with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); variables = { UITK_ICON_THEME = "suru"; }; }; i18n.supportedLocales = [ "all" ]; fonts = { packages = with pkgs; [ # Intended font & helps with OCR ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; testScript = '' machine.wait_for_x() # Setup fake v4l2 camera machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1") machine.succeed("qrtool encode '${qrContent}' -s 20 -m 10 > qr.png") # Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR machine.succeed("magick qr.png -flop -pointsize 30 -fill black -annotate +100+100 '${qrLabel}' -flop output.png") machine.succeed("ffmpeg -re -loop 1 -i output.png -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") machine.succeed("ffmpeg -re -loop 1 -i /etc/${feedImageFile} -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") with subtest("lomiri camera uses camera"): machine.succeed("lomiri-camera-app >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") # emitted twice machine.wait_for_console_text("No flash control support") machine.wait_for_console_text("No flash control support") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${qrLabel}") machine.wait_for_text("${feedLabel}") machine.screenshot("lomiri-camera_feed") machine.succeed("xdotool mousemove 510 670 click 1") # take photo Loading @@ -88,68 +174,84 @@ machine.succeed("magick /root/Pictures/camera.ubports/IMG_00000001.jpg -flop photo_flip.png") machine.succeed("feh photo_flip.png >&2 &") machine.sleep(10) machine.wait_for_text("${qrLabel}") machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${feedLabel}") machine.screenshot("lomiri-camera_photo") ''; } ); v4l2-qr = makeTest ( { lib, ... }: { name = "lomiri-camera-app-v4l2-qr"; meta.maintainers = lib.teams.lomiri.members; machine.succeed("pkill -f feh") machine.send_key("ctrl-alt-left") machine.succeed("pkill -f lomiri-camera-app") nodes.machine = { config, pkgs, ... }: { imports = [ ./common/x11.nix ]; services.xserver.enable = true; environment = { etc."${feedImageFile}".source = makeFeedImage pkgs; systemPackages = with pkgs; [ ffmpeg # fake webcam stream xclip # inspect QR contents copied into clipboard xdotool # clicking on QR button ] ++ (with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); variables = { UITK_ICON_THEME = "suru"; }; }; i18n.supportedLocales = [ "all" ]; fonts = { packages = with pkgs; [ # Intended font & helps with OCR ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; testScript = '' machine.wait_for_x() # Setup fake v4l2 camera machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1") machine.succeed("ffmpeg -re -loop 1 -i /etc/${feedImageFile} -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") with subtest("lomiri barcode scanner uses camera"): machine.succeed("lomiri-camera-app --mode=barcode-reader >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") # emitted twice machine.wait_for_console_text("No flash control support") machine.wait_for_console_text("No flash control support") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${qrLabel}") machine.wait_for_text("${feedLabel}") machine.succeed("xdotool mousemove 510 670 click 1") # open up QR decode result # OCR is struggling to recognise the text. Click the clipboard button and paste the result somewhere else # OCR is struggling to recognise the text. Click the clipboard button, check what got copied machine.sleep(5) machine.screenshot("lomiri-barcode_decode") machine.succeed("xdotool mousemove 540 590 click 1") machine.sleep(5) # Need to make a new window without closing camera app, otherwise clipboard content gets lost? machine.send_key("ctrl-alt-right") machine.succeed("gnome-text-editor >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("New") # Font size up to help with OCR machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-v") machine.wait_for_text("${qrContent}") machine.succeed("pkill -f gnome-text-editor") machine.send_key("ctrl-alt-left") machine.succeed("pkill -f lomiri-camera-app") with subtest("lomiri camera localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("Kamera") machine.screenshot("lomiri-camera_localised") machine.wait_until_succeeds("env DISPLAY=:0 xclip -selection clipboard -o | grep -q '${feedQrContent}'") ''; } ); } nixos/tests/morph-browser.nix +11 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,10 @@ machine.wait_for_x() with subtest("morph browser launches"): machine.execute("morph-browser >&2 &") machine.succeed("morph-browser >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text(r"Web Browser|New|sites|Bookmarks") machine.screenshot("morph_open") Loading @@ -47,8 +50,14 @@ machine.succeed("pkill -f morph-browser") # Get rid of saved tabs, to show localised start page machine.succeed("rm -r /root/.local/share/morph-browser") with subtest("morph browser localisation works"): machine.execute("env LANG=de_DE.UTF-8 morph-browser >&2 &") machine.succeed("env LANG=de_DE.UTF-8 morph-browser >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen") machine.screenshot("morph_localised") ''; Loading nixos/tests/teleports.nix +2 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ with subtest("teleports launches"): machine.succeed("teleports >&2 &") machine.wait_for_console_text("authorizationStateWaitPhoneNumber") machine.send_key("alt-f10") # Not fullscreening, because main app colour makes OCR stuck machine.sleep(2) machine.wait_for_text(r"(TELEports|Phone Number)") machine.screenshot("teleports_open") Loading @@ -46,7 +46,7 @@ with subtest("teleports localisation works"): machine.succeed("env LANG=de_DE.UTF-8 teleports >&2 &") machine.wait_for_console_text("authorizationStateWaitPhoneNumber") machine.send_key("alt-f10") # Not fullscreening, because main app colour makes OCR stuck machine.sleep(2) machine.wait_for_text("Telefonnummer") machine.screenshot("teleports_localised") Loading Loading
maintainers/maintainer-list.nix +12 −0 Original line number Diff line number Diff line Loading @@ -9902,6 +9902,12 @@ githubId = 155722885; name = "Joachim Ernst"; }; hemera = { email = "neikos@neikos.email"; github = "TheNeikos"; githubId = 1631166; name = "Marcel Müller"; }; henkery = { email = "jim@reupload.nl"; github = "henkery"; Loading Loading @@ -17298,6 +17304,12 @@ githubId = 144328493; keys = [ { fingerprint = "D89F 440C 6CD7 4753 090F EC7A 4682 C5CB 4D9D EA3C"; } ]; }; naora = { name = "Joris Gundermann"; email = "jorisgundermann@gmail.com"; github = "Naora"; githubId = 2221163; }; naphta = { github = "naphta"; githubId = 6709831; Loading
nixos/tests/all-tests.nix +1 −1 Original line number Diff line number Diff line Loading @@ -768,7 +768,7 @@ in lomiri = discoverTests (import ./lomiri.nix); lomiri-calculator-app = runTest ./lomiri-calculator-app.nix; lomiri-calendar-app = runTest ./lomiri-calendar-app.nix; lomiri-camera-app = runTest ./lomiri-camera-app.nix; lomiri-camera-app = discoverTests (import ./lomiri-camera-app.nix); lomiri-clock-app = runTest ./lomiri-clock-app.nix; lomiri-docviewer-app = runTest ./lomiri-docviewer-app.nix; lomiri-filemanager-app = runTest ./lomiri-filemanager-app.nix; Loading
nixos/tests/lomiri-camera-app.nix +244 −142 Original line number Diff line number Diff line let makeTest = import ./make-test-python.nix; feedLabel = "Image"; feedQrContent = "Test"; feedImageFile = "feed.png"; makeFeedImage = pkgs: pkgs.runCommand feedImageFile { nativeBuildInputs = with pkgs; [ (imagemagick.override { ghostscriptSupport = true; }) # add label for OCR qrtool # generate QR code ]; } '' qrtool encode '${feedQrContent}' -s 20 -m 10 > qr.png # Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR magick qr.png \ -flop \ -pointsize 30 -fill black -annotate +100+100 '${feedLabel}' \ -flop \ $out ''; in { basic = makeTest ( { lib, ... }: { name = "lomiri-camera-app-standalone"; name = "lomiri-camera-app-basic"; meta.maintainers = lib.teams.lomiri.members; nodes.machine = Loading @@ -11,20 +38,10 @@ services.xserver.enable = true; environment = { systemPackages = with pkgs; [ feh # view photo result ffmpeg # fake webcam stream gnome-text-editor # somewhere to paste QR result (imagemagick.override { ghostscriptSupport = true; }) # add label for OCR qrtool # generate QR code xdotool # clicking on QR button ] ++ (with pkgs.lomiri; [ systemPackages = with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); ]; variables = { UITK_ICON_THEME = "suru"; }; Loading @@ -38,9 +55,6 @@ ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; Loading @@ -55,6 +69,8 @@ with subtest("lomiri camera launches"): machine.succeed("lomiri-camera-app >&2 &") # emitted twice machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.sleep(10) machine.send_key("alt-f10") Loading @@ -62,22 +78,92 @@ machine.wait_for_text("Cannot access") machine.screenshot("lomiri-camera_open") machine.succeed("pkill -f lomiri-camera-app") machine.succeed("pgrep -afx lomiri-camera-app >&2") machine.succeed("pkill -efx lomiri-camera-app >&2") machine.wait_until_fails("pgrep -afx lomiri-camera-app >&2") # Sometimes, GStreamer errors out on camera init with: CameraBin error: "Failed to allocate required memory." # Adding more VM memory didn't affect this. Maybe flaky in general? # Current assumption: Camera access gets requested in a weird/still-in-use state, so sleep abit machine.sleep(10) with subtest("lomiri camera localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &") # emitted twice machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.wait_for_console_text("updateViewfinderResolution: viewfinder resolutions is not known yet") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("Zugriff auf") machine.screenshot("lomiri-camera_localised") ''; } ); v4l2-photo = makeTest ( { lib, ... }: { name = "lomiri-camera-app-v4l2-photo"; meta.maintainers = lib.teams.lomiri.members; nodes.machine = { config, pkgs, ... }: { imports = [ ./common/x11.nix ]; services.xserver.enable = true; environment = { etc."${feedImageFile}".source = makeFeedImage pkgs; systemPackages = with pkgs; [ feh # view photo result ffmpeg # fake webcam stream imagemagick # unflip webcam photo xdotool # clicking on camera button ] ++ (with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); variables = { UITK_ICON_THEME = "suru"; }; }; i18n.supportedLocales = [ "all" ]; fonts = { packages = with pkgs; [ # Intended font & helps with OCR ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; testScript = '' machine.wait_for_x() # Setup fake v4l2 camera machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1") machine.succeed("qrtool encode '${qrContent}' -s 20 -m 10 > qr.png") # Horizontal flip, add text, flip back. Camera displays image mirrored, so need reversed text for OCR machine.succeed("magick qr.png -flop -pointsize 30 -fill black -annotate +100+100 '${qrLabel}' -flop output.png") machine.succeed("ffmpeg -re -loop 1 -i output.png -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") machine.succeed("ffmpeg -re -loop 1 -i /etc/${feedImageFile} -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") with subtest("lomiri camera uses camera"): machine.succeed("lomiri-camera-app >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") # emitted twice machine.wait_for_console_text("No flash control support") machine.wait_for_console_text("No flash control support") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${qrLabel}") machine.wait_for_text("${feedLabel}") machine.screenshot("lomiri-camera_feed") machine.succeed("xdotool mousemove 510 670 click 1") # take photo Loading @@ -88,68 +174,84 @@ machine.succeed("magick /root/Pictures/camera.ubports/IMG_00000001.jpg -flop photo_flip.png") machine.succeed("feh photo_flip.png >&2 &") machine.sleep(10) machine.wait_for_text("${qrLabel}") machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${feedLabel}") machine.screenshot("lomiri-camera_photo") ''; } ); v4l2-qr = makeTest ( { lib, ... }: { name = "lomiri-camera-app-v4l2-qr"; meta.maintainers = lib.teams.lomiri.members; machine.succeed("pkill -f feh") machine.send_key("ctrl-alt-left") machine.succeed("pkill -f lomiri-camera-app") nodes.machine = { config, pkgs, ... }: { imports = [ ./common/x11.nix ]; services.xserver.enable = true; environment = { etc."${feedImageFile}".source = makeFeedImage pkgs; systemPackages = with pkgs; [ ffmpeg # fake webcam stream xclip # inspect QR contents copied into clipboard xdotool # clicking on QR button ] ++ (with pkgs.lomiri; [ suru-icon-theme lomiri-camera-app ]); variables = { UITK_ICON_THEME = "suru"; }; }; i18n.supportedLocales = [ "all" ]; fonts = { packages = with pkgs; [ # Intended font & helps with OCR ubuntu-classic ]; }; # Fake camera boot.extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ]; }; enableOCR = true; testScript = '' machine.wait_for_x() # Setup fake v4l2 camera machine.succeed("modprobe v4l2loopback video_nr=10 card_label=Video-Loopback exclusive_caps=1") machine.succeed("ffmpeg -re -loop 1 -i /etc/${feedImageFile} -vf format=yuv420p -f v4l2 /dev/video10 -loglevel fatal >&2 &") with subtest("lomiri barcode scanner uses camera"): machine.succeed("lomiri-camera-app --mode=barcode-reader >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") # emitted twice machine.wait_for_console_text("No flash control support") machine.wait_for_console_text("No flash control support") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("${qrLabel}") machine.wait_for_text("${feedLabel}") machine.succeed("xdotool mousemove 510 670 click 1") # open up QR decode result # OCR is struggling to recognise the text. Click the clipboard button and paste the result somewhere else # OCR is struggling to recognise the text. Click the clipboard button, check what got copied machine.sleep(5) machine.screenshot("lomiri-barcode_decode") machine.succeed("xdotool mousemove 540 590 click 1") machine.sleep(5) # Need to make a new window without closing camera app, otherwise clipboard content gets lost? machine.send_key("ctrl-alt-right") machine.succeed("gnome-text-editor >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("New") # Font size up to help with OCR machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-kp_add") machine.send_key("ctrl-v") machine.wait_for_text("${qrContent}") machine.succeed("pkill -f gnome-text-editor") machine.send_key("ctrl-alt-left") machine.succeed("pkill -f lomiri-camera-app") with subtest("lomiri camera localisation works"): machine.succeed("env LANG=de_DE.UTF-8 lomiri-camera-app >&2 &") machine.wait_for_console_text("updateViewfinderResolution: For target resolution") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text("Kamera") machine.screenshot("lomiri-camera_localised") machine.wait_until_succeeds("env DISPLAY=:0 xclip -selection clipboard -o | grep -q '${feedQrContent}'") ''; } ); }
nixos/tests/morph-browser.nix +11 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,10 @@ machine.wait_for_x() with subtest("morph browser launches"): machine.execute("morph-browser >&2 &") machine.succeed("morph-browser >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text(r"Web Browser|New|sites|Bookmarks") machine.screenshot("morph_open") Loading @@ -47,8 +50,14 @@ machine.succeed("pkill -f morph-browser") # Get rid of saved tabs, to show localised start page machine.succeed("rm -r /root/.local/share/morph-browser") with subtest("morph browser localisation works"): machine.execute("env LANG=de_DE.UTF-8 morph-browser >&2 &") machine.succeed("env LANG=de_DE.UTF-8 morph-browser >&2 &") machine.sleep(10) machine.send_key("alt-f10") machine.sleep(5) machine.wait_for_text(r"Web-Browser|Neuer|Seiten|Lesezeichen") machine.screenshot("morph_localised") ''; Loading
nixos/tests/teleports.nix +2 −2 Original line number Diff line number Diff line Loading @@ -36,7 +36,7 @@ with subtest("teleports launches"): machine.succeed("teleports >&2 &") machine.wait_for_console_text("authorizationStateWaitPhoneNumber") machine.send_key("alt-f10") # Not fullscreening, because main app colour makes OCR stuck machine.sleep(2) machine.wait_for_text(r"(TELEports|Phone Number)") machine.screenshot("teleports_open") Loading @@ -46,7 +46,7 @@ with subtest("teleports localisation works"): machine.succeed("env LANG=de_DE.UTF-8 teleports >&2 &") machine.wait_for_console_text("authorizationStateWaitPhoneNumber") machine.send_key("alt-f10") # Not fullscreening, because main app colour makes OCR stuck machine.sleep(2) machine.wait_for_text("Telefonnummer") machine.screenshot("teleports_localised") Loading