openat: don’t close (-1)
[gnulib.git] / tests / test-snzprintf-gnu.h
blob072250dc37f9c382f9d4529b02078accfdd6b0e3
1 /* Test of POSIX and GNU compatible [v]snzprintf(), c_[v]snzprintf() functions.
2 Copyright (C) 2007-2024 Free Software Foundation, Inc.
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
17 /* Written by Bruno Haible <bruno@clisp.org>, 2024. */
19 /* This test exercises only a few POSIX compliance problems that are still
20 visible on platforms relevant in 2024. For a much more complete test suite,
21 see test-snprintf-posix.h. */
23 static void
24 test_function (ptrdiff_t (*my_snzprintf) (char *, size_t, const char *, ...))
26 char result[5000];
28 /* Test the support of the 'B' conversion specifier for binary output of
29 integers. */
31 { /* This test would fail on all platforms other than glibc ≥ 2.35. */
32 ptrdiff_t retval =
33 my_snzprintf (result, sizeof (result), "%#B %d", 12345, 33, 44, 55);
34 ASSERT (strcmp (result, "0B11000000111001 33") == 0);
35 ASSERT (retval == strlen (result));