|
From: | Bruno Haible |
Subject: | vasnprintf, u*-vasnprintf: Support string arguments longer than 2 GiB |
Date: | Wed, 19 Jun 2024 22:20:08 +0200 |
The next step towards the *zprintf family of functions. Part of step 1 of <https://lists.gnu.org/archive/html/bug-gnulib/2024-04/msg00352.html>. I added three unit tests for %s with large arguments. (You need to pass option --with-longrunning-tests to gnulib-tool, in order to include them.) Without a change to lib/vasnprintf.c, all three failed: FAIL: test-u8-asnprintf-big =========================== ../../gltests/unistdio/test-u8-asnprintf-big.c:131: assertion 'errno == ENOMEM' failed FAIL test-u8-asnprintf-big (exit status: 134) FAIL: test-ulc-asnprintf-big ============================ ../../gltests/unistdio/test-ulc-asnprintf-big.c:156: assertion 'errno == ENOMEM' failed FAIL test-ulc-asnprintf-big (exit status: 134) FAIL: test-vasnprintf-big ========================= ../../gltests/test-vasnprintf-big.c:131: assertion 'errno == ENOMEM' failed FAIL test-vasnprintf-big (exit status: 134) So, here's the vasnprintf update that makes all these tests work. 2024-06-19 Bruno Haible <bruno@clisp.org> ulc-asnprintf tests: Add test of %U, %s directives with large arguments. * tests/unistdio/test-ulc-asnprintf-big.c: New file, based on tests/test-vasnprintf-big.c. * modules/unistdio/ulc-asnprintf-extra-tests: New file. * modules/unistdio/ulc-asnprintf-tests (Depends-on): Depend on it. u8-asnprintf tests: Add test of %U, %s directives with large arguments. * tests/unistdio/test-u8-asnprintf-big.c: New file, based on tests/test-vasnprintf-big.c. * modules/unistdio/u8-asnprintf-extra-tests: New file. * modules/unistdio/u8-asnprintf-tests (Depends-on): Depend on it. vasnprintf tests: Add test of %s directive with large arguments. * tests/test-vasnprintf-big.c: New file. * modules/vasnprintf-extra-tests: New file. * modules/vasnprintf-tests (Depends-on): Depend on it. vasnprintf, u*-vasnprintf: Support string arguments longer than 2 GiB. * lib/vasnprintf.c: Include <stdint.h>. (VASNPRINTF): In 64-bit builds, handle the %s directive ourselves. (local_strnlen): Adjust #if condition. * modules/unistdio/u8-vasnprintf (Depends-on): Add stdint. * modules/unistdio/u8-u8-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u16-u16-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/u32-u32-vasnprintf (Depends-on): Likewise. * modules/unistdio/ulc-vasnprintf (Depends-on): Likewise.
0001-vasnprintf-u-vasnprintf-Support-string-arguments-lon.patch
Description: Text Data
0002-vasnprintf-tests-Add-test-of-s-directive-with-large-.patch
Description: Text Data
0003-u8-asnprintf-tests-Add-test-of-U-s-directives-with-l.patch
Description: Text Data
0004-ulc-asnprintf-tests-Add-test-of-U-s-directives-with-.patch
Description: Text Data
[Prev in Thread] | Current Thread | [Next in Thread] |