diff mbox series

support/testing: add nano test

Message ID 20260831214351.3577118-2-fbstachura@gmail.com
State New
Headers show
Series support/testing: add nano test | expand

Commit Message

Franciszek Stachura Aug. 31, 2026, 9:43 p.m. UTC
Add a basic runtime test for nano. The test attempts to write a file
using the editor.

Signed-off-by: Franciszek Stachura <fbstachura@gmail.com>
---
 DEVELOPERS                                 |  1 +
 support/testing/tests/package/test_nano.py | 41 ++++++++++++++++++++++
 2 files changed, 42 insertions(+)
 create mode 100644 support/testing/tests/package/test_nano.py
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 53104cc60b..0b5060f1fc 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1170,6 +1170,7 @@  F:	package/ser2net/
 
 N:	Franciszek Stachura <fbstachura@gmail.com>
 F:	support/testing/tests/package/test_memcached.py
+F:	support/testing/tests/package/test_nano.py
 
 N:	Francois Dugast <francois.dugast.foss@gmail.com>
 F:	board/sipeed/licheepi_nano/
diff --git a/support/testing/tests/package/test_nano.py b/support/testing/tests/package/test_nano.py
new file mode 100644
index 0000000000..c1cc56d031
--- /dev/null
+++ b/support/testing/tests/package/test_nano.py
@@ -0,0 +1,41 @@ 
+import os
+
+import infra.basetest
+
+
+class TestNano(infra.basetest.BRTest):
+    config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + """
+    BR2_TARGET_ROOTFS_CPIO=y
+    BR2_PACKAGE_NANO=y
+    """
+
+    def test_run(self):
+        cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio")
+        self.emulator.boot(arch="armv5",
+                           kernel="builtin",
+                           options=["-initrd", cpio_file])
+        self.emulator.login()
+
+        cmd = "nano -V | grep 'GNU nano'"
+        self.assertRunOk(cmd)
+
+        self.emulator.qemu.sendline("nano")
+
+        # send file contents
+        self.emulator.qemu.send("test")
+        # ^X for exit
+        self.emulator.qemu.send(chr(0x18))
+        # y for 'Save modified buffer?'
+        self.emulator.qemu.send("y")
+        # target filename
+        self.emulator.qemu.send("file")
+        # ^M for enter
+        self.emulator.qemu.send(chr(0xd))
+
+        self.emulator.qemu.sendline("clear; reset")
+
+        # wait for prompt
+        self.emulator.qemu.expect("# ")
+
+        cmd = "cat file | grep '^test$'"
+        self.assertRunOk(cmd)