Source-Changes-HG archive

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

[src/trunk]: src/tests/lib/libcurses/tests tests/libcurses: fix undefined beh...



details:   https://anonhg.NetBSD.org/src/rev/79f4b36f9711
branches:  trunk
changeset: 951941:79f4b36f9711
user:      rillig <rillig%NetBSD.org@localhost>
date:      Sun Feb 07 23:30:33 2021 +0000

description:
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.

diffstat:

 tests/lib/libcurses/tests/addch |  17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diffs (35 lines):

diff -r f736db749be1 -r 79f4b36f9711 tests/lib/libcurses/tests/addch
--- a/tests/lib/libcurses/tests/addch   Sun Feb 07 23:00:57 2021 +0000
+++ b/tests/lib/libcurses/tests/addch   Sun Feb 07 23:30:33 2021 +0000
@@ -3,23 +3,22 @@
 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



Home | Main Index | Thread Index | Old Index