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

Reply via email to