Module Name: src
Committed By: rillig
Date: Sun Feb 7 23:30:33 UTC 2021
Modified Files:
src/tests/lib/libcurses/tests: addch
Log Message:
tests/libcurses: fix undefined behavior in test addch
The libcurses framework is not strictly typed and thus provides plenty
of ways to shoot yourself in the foot. It's a waste of time debugging
things that a proper programming language can easily prevent.
The function addch expects an argument of type 'chtype'. Passing a
"double-quoted" string does not match this, as 'chtype' is completely
different from a plain 'char'. Instead, functions taking a 'chtype'
must be passed a `backtick-quoted` string.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/tests/lib/libcurses/tests/addch
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/lib/libcurses/tests/addch
diff -u src/tests/lib/libcurses/tests/addch:1.4 src/tests/lib/libcurses/tests/addch:1.5
--- src/tests/lib/libcurses/tests/addch:1.4 Sun Feb 7 13:06:02 2021
+++ src/tests/lib/libcurses/tests/addch Sun Feb 7 23:30:33 2021
@@ -3,23 +3,22 @@ call OK addch `\001t`
call OK refresh
call OK mvaddch 5 3 `\003e`
call OK refresh
-call OK addch "\n"
+call OK addch `\000\n`
# Somewhere between NetBSD 8.0 and 9.0, a bug was added to addch that
# doubled the spaces for a tab. Instead of 8 spaces, there are now 16.
-call OK addch "\t"
+call OK addch `\000\t`
call2 6 16 getyx STDSCR # FIXME: must be 8, not 16
-call OK addch "8"
-call OK addch "\n"
+call OK addch `\0008`
+call OK addch `\000\n`
# Somewhere between NetBSD 8.0 and 9.0, a bug was added to addch that
# doubled the spaces for a tab. Instead of 1 space, there are now 2.
call OK addstr "0123456"
-call OK addch "\t"
-call2 7 9 getyx STDSCR # FIXME: with probability around 50%, the
- # 7 comes out as a 6.
-call OK addch "8"
-call OK addch "\n"
+call OK addch `\000\t`
+call2 7 9 getyx STDSCR
+call OK addch `\0008`
+call OK addch `\000\n`
call OK refresh
compare addch.chk