about summary refs log tree commit diff
path: root/nixos/doc/manual/development/writing-nixos-tests.xml
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-05-21 19:06:09 +0200
committeraszlig <aszlig@redmoonstudios.org>2015-05-21 19:55:21 +0200
commit235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0 (patch)
tree9cb5c9109bfabc5403a37231dda60a7c64f737ea /nixos/doc/manual/development/writing-nixos-tests.xml
parent5ac9e87b1bf7192d2077f90940906a9e5518ccf3 (diff)
downloadnixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar.gz
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar.bz2
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar.lz
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar.xz
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.tar.zst
nixlib-235c2228ca9f608f898bc455c9b5bb1e3c4cb3f0.zip
nixos/test-driver: Add new getScreenText function.
Basically, this creates a screenshot and throws tesseract at it to
recognize the characters from the screenshot. In order to produce a
result that is well enough, we're using lanczos scaling and scale the
image up to 400% of its original size.

This provides the base functionality for a new Machine method which will
be called waitForText. I originally had that idea long ago when writing
the VM tests for VirtualBox and Chromium, but thought it would be
disproportionate to the case.

The downside however is that VM tests now depend on tesseract, but given
the average runtime of our tests it really shouldn't have a too big
impact and it's only a runtime dependency after all.

Another issue is that the OCR process takes quite some time to finish,
but IMHO it's better (as in more deterministic) than to rely on sleep().

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'nixos/doc/manual/development/writing-nixos-tests.xml')
-rw-r--r--nixos/doc/manual/development/writing-nixos-tests.xml7
1 files changed, 7 insertions, 0 deletions
diff --git a/nixos/doc/manual/development/writing-nixos-tests.xml b/nixos/doc/manual/development/writing-nixos-tests.xml
index bbb655eed2a6..6224be0ca1a5 100644
--- a/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -155,6 +155,13 @@ startAll;
   </varlistentry>
 
   <varlistentry>
+    <term><methodname>getScreenText</methodname></term>
+    <listitem><para>Return a textual representation of what is currently
+    visible on the machine's screen using optical character
+    recognition.</para></listitem>
+  </varlistentry>
+
+  <varlistentry>
     <term><methodname>sendMonitorCommand</methodname></term>
     <listitem><para>Send a command to the QEMU monitor. This is rarely
     used, but allows doing stuff such as attaching virtual USB disks