]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Printf test suite fails on systems with musl libc because tests for "%m"
authorPetr Vaněk <arkamar@atlas.cz>
Mon, 6 Mar 2023 10:19:30 +0000 (11:19 +0100)
committerOndrej Zajicek <santiago@crfreenet.org>
Mon, 6 Mar 2023 10:33:27 +0000 (11:33 +0100)
and "%M" formats expect "Input/output error" message but musl returns
"I/O error". Proposed change compares the printf output with string
returned from strerror function for EIO constant.

See-also: https://bugs.gentoo.org/836713

Minor change from committer.

lib/printf_test.c

index 47ea905d00713ecf46d2147ec57229ab1805c728..88ecf05e2c9fe5789d2209d621dc69261c873707 100644 (file)
@@ -32,11 +32,14 @@ t_simple(void)
   BSPRINTF(1, "@", buf, "@", 64);
   BSPRINTF(1, "\xff", buf, "%c", 0xff);
 
-  errno = 5;
-  BSPRINTF(18, "Input/output error", buf, "%m");
+  const char *io_error_str = lp_strdup(tmp_linpool, strerror(EIO));
+  const int io_error_len = strlen(io_error_str);
+
+  errno = EIO;
+  BSPRINTF(io_error_len, io_error_str, buf, "%m");
   errno = 0;
 
-  BSPRINTF(18, "Input/output error", buf, "%M", 5);
+  BSPRINTF(io_error_len, io_error_str, buf, "%M", EIO);
 
   BSPRINTF(11, "TeSt%StRiNg", buf, "%s", "TeSt%StRiNg");