Looks like the kyua zfs tests likely are not used on aarch64 or other contexts with unsigned char

From: Mark Millard <marklmi_at_yahoo.com>
Date: Sun, 10 Sep 2023 07:31:05 UTC
kyua tests that use the:


program like so (for example):

mkfile 500M /testpool.1861/bigfile.0

(which should be valid) end up with mkfile
instead reporting:

Standard error:
Usage: mkfile [-nv] <size>[e|p|t|g|m|k|b] <filename> ...

which prevent the kyua test involved from working.

Turns out this is from expecting char to be always
signed (so a -1 vs. 255 distinction, here in an
aarch64 context):

. . .
(gdb) list
179		/* Options. */
180		while ((ch = getopt(argc, argv, "nv")) != -1) {
181			switch (ch) {
182			case 'n':
183				nofill = 1;
184				break;
185			case 'v':
(gdb) print ch
$16 = 255 '\377'
(gdb) print/x -1
$17 = 0xffffffff
(gdb) print/x ch
$18 = 0xff
. . .

With the mix of unsigned and signed it ends up
being a 0xffu != 0xffffffffu test, which is
always true.

So the switch is reached as if a "-" prefix was
present (that is not). Then the "option" is classified
as invalid and the usage message is produced.

Apparently no one had noticed. That, in turn, suggests a
lack of inspected testing on aarch64, powerpc64,
powerpc64le, armv7, powerpc, and powerpcspe. That, in
turn, suggests that kyua test inspection for the likes
of aarch64 is not historically a part of the release
process for openzfs or for operating systems that include

Mark Millard
marklmi at yahoo.com