guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug#64356] [PATCH 0/4] Fix GDM and VNC tests


From: Maxim Cournoyer
Subject: [bug#64356] [PATCH 0/4] Fix GDM and VNC tests
Date: Wed, 19 Jul 2023 10:50:17 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Hi,

Bruno Victal <mirai@makinata.eu> writes:

[...]

> -(define* (marionette-screen-text marionette #:key (ocr "ocrad"))
> +(define* (marionette-screen-text marionette #:key (ocr "ocrad")
> +                                 ocr-arguments)
>    "Take a screenshot of MARIONETTE, perform optical character
>  recognition (OCR), and return the text read from the screen as a string, 
> along
>  the screen dump image used.  Do this by invoking OCR, which should be the 
> file
> @@ -324,14 +330,19 @@ (define* (marionette-screen-text marionette #:key (ocr 
> "ocrad"))
>    ;; Process it via the OCR.
>    (cond
>     ((string-contains ocr "ocrad")
> -    (values (invoke-ocrad-ocr image #:ocrad ocr) image))
> +    (values (invoke-ocrad-ocr image
> +                              #:ocrad ocr
> +                              #:ocr-arguments ocr-arguments) image))
>     ((string-contains ocr "tesseract")
> -    (values (invoke-tesseract-ocr image #:tesseract ocr) image))
> +    (values (invoke-tesseract-ocr image
> +                                  #:tesseract ocr
> +                                  #:ocr-arguments ocr-arguments) image))
>     (else (error "unsupported ocr command"))))
>  
>  (define* (wait-for-screen-text marionette predicate
>                                 #:key
>                                 (ocr "ocrad")
> +                               ocr-arguments

Care must be taken here to avoid overwriting the default arguments of
the 'invoke-ocrad-ocr' and 'invoke-tesseract-ocr' procedures.  I've
handled this by extracting a %default-ocrad-arguments and or'ing the
argument here with it in this procedure, like:

--8<---------------cut here---------------start------------->8---
@@ -324,14 +334,22 @@ (define* (marionette-screen-text marionette #:key (ocr 
"ocrad"))
   ;; Process it via the OCR.
   (cond
    ((string-contains ocr "ocrad")
-    (values (invoke-ocrad-ocr image #:ocrad ocr) image))
+    (values (invoke-ocrad-ocr image
+                              #:ocrad ocr
+                              #:ocr-arguments
+                              (or ocr-arguments %default-ocrad-arguments))
+            image))
    ((string-contains ocr "tesseract")
-    (values (invoke-tesseract-ocr image #:tesseract ocr) image))
+    (values (invoke-tesseract-ocr image
+                                  #:tesseract ocr
+                                  #:ocr-arguments (or ocr-arguments '()))
+            image))
    (else (error "unsupported ocr command"))))
 
 (define* (wait-for-screen-text marionette predicate
                                #:key
                                (ocr "ocrad")
--8<---------------cut here---------------end--------------->8---

Otherwise, LGTM.

-- 
Thanks,
Maxim





reply via email to

[Prev in Thread] Current Thread [Next in Thread]