Peter Ross
6c06b70911
LibC: Set PRI[xX]8/PRI[xX]16 macros to x
and X
...
Described in:
<https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/
inttypes.h.html>
The macros were first added in a7a456002e
,
but it is not clear why the PRIx16/32 macros were defined as 'b' & 'w'.
PrintfImplementation was never able to parse these values.
2022-03-02 11:40:37 +01:00
Timur Sultanov
ffbd630ca6
AK: Add tests for integer values formatting in printf
2022-02-28 14:08:24 +01:00
Peter Ross
5b32b46ebc
LibC: Do not write value when scanf assignment value is suppressed
...
This change has the positive side-effect of causing scanf to *segfault*
when a NULL pointer argument is passed to scanf.
e.g. sscanf(str, "%d", NULL);
2022-02-20 00:13:08 +03:30
Peter Ross
31079a56d7
LibC: Do not include suppressed assignments in scanf return value
2022-02-20 00:13:08 +03:30
Max Wipfli
f3cf1b33d7
Tests: Add test for LibC mkdir()
2022-02-13 21:58:26 +02:00
Timothy Flynn
010ec36d20
LibC: Ensure most time tests run under UTC
...
This ensures these tests pass even if the user has changed the system
time zone away from UTC.
2022-01-25 18:39:36 +00:00
Timothy Flynn
b1ea585149
LibC: Implement tzset with time zone awareness in accordance with POSIX
2022-01-25 18:39:36 +00:00
Daniel Bertalan
6e00dd64a1
Tests: Test whether stdio streams are flushed correctly on exit
2022-01-16 14:59:21 -08:00
Michel Hermier
1af072e0f3
LibC: Make *alloc
return NULL
in case of failure (POSIX)
2022-01-16 11:18:04 +01:00
mjz19910
10ec98dd38
Everywhere: Fix spelling mistakes
2022-01-07 15:44:42 +01:00
Jesse Buhagiar
2de7f2021d
LibC: Support X
modifier for scanf
...
This was currently crashing Half-Life because it was a considered an
"Unknown" specifier. We can use the same case statement as the regular
hex format conversion (lower case 'x'), as the backend
to convert the number already supports upper/lower case input, hence
we get it for free :^)
2022-01-02 08:10:08 +02:00
Michel Hermier
682f89d5bc
LibC: Allow multiple includes of <assert.h>
...
ISO C requires in section 7.2:
The assert macro is redefined according to the current state of NDEBUG
each time that <assert.h> is included.
Also add tests for `assert` multiple inclusion accordingly.
2021-12-23 17:53:46 -08:00
Michel Hermier
4c6e826c05
LibTest: Add EXPECT_CRASH_WITH_SIGNAL
2021-12-19 14:22:06 -08:00
Michel Hermier
c22c1900c0
Tests: Add test for raise
2021-12-19 14:22:06 -08:00
Michel Hermier
0ec35d6d81
Tests: Add test for assert
2021-12-19 14:22:06 -08:00
Michel Hermier
181f759dc9
Tests: Add test for abort
2021-12-19 14:22:06 -08:00
Jelle Raaijmakers
a44978b9b0
LibC: Fix %n
conversion specifier in scanf() format
...
Also add a test to prevent this from happening again. There were two
bugs:
* The number of bytes just after processing the last value was written,
instead of the number of bytes after skipping remaining whitespace.
Confirmed by testing against GNU's `scanf()` since the man page
leaves something to be desired.
* The number of bytes was written to the wrong variable argument; i.e.
the first argument was overwritten.
2021-10-24 22:43:27 -07:00
Jelle Raaijmakers
00f36fc5ae
Tests: Print full 32-byte range of values in TestScanf
...
We are trying to show 8 u32 values, each of which needs at most 8
hexadecimal characters to be shown entirely.
2021-10-24 22:43:27 -07:00
Jelle Raaijmakers
e71e9de61f
Tests: Reword 'output' to 'return value' in TestScanf
2021-10-24 22:43:27 -07:00
Jelle Raaijmakers
e3f17401cb
Tests: Use correct argument count for value conformance in TestScanf
2021-10-24 22:43:27 -07:00
Tim Schumacher
65bcee3c62
Tests: Only test truthiness for iswctype
2021-10-24 22:40:11 -07:00
Tim Schumacher
9e3e4a692d
Tests: Use proper comparison macros for wctype
2021-10-24 22:40:11 -07:00
Tim Schumacher
79bcfa967b
LibC: Fix up mblen
2021-10-22 13:28:56 -07:00
Tim Schumacher
8df6955838
LibC: Fix up mbtowc
...
One more proper implementation and one less FIXME.
2021-10-22 13:28:56 -07:00
Tim Schumacher
89afd4d063
LibC: Implement mbsnrtowcs
2021-10-21 23:57:32 -07:00
Tim Schumacher
552ae77f0d
LibC: Implement wcsnrtombs
2021-10-21 23:57:32 -07:00
Tim Schumacher
e618602433
LibC: Implement mbrlen
2021-10-21 23:47:20 -07:00
Daniel Bertalan
13e6d9d71a
LibC: Implement wcslcpy
2021-10-17 17:09:58 +01:00
Tim Schumacher
420bdccf0b
LibC: Implement mbsrtowcs
2021-10-15 21:50:19 -07:00
Tim Schumacher
b0babd062e
LibC: Implement wcsrtombs
2021-10-15 21:50:19 -07:00
Daniel Bertalan
c8367df746
LibC: Implement wcrtomb
...
This function converts a single wide character into its multibyte
representation (UTF-8 in our case). It is called from libc++'s
`std::basic_ostream<wchar_t>::flush`, which gets called at program exit
from a global destructor in order to flush `std::wcout`.
2021-10-15 21:50:19 -07:00
Tim Schumacher
4b423a5ec7
LibC: Implement twalk
2021-10-15 21:50:19 -07:00
Tim Schumacher
7448626bae
LibC: Implement tfind and tsearch
2021-10-15 21:50:19 -07:00
Tim Schumacher
7af7fc8c16
Everywhere: Fix more Copyright header inconsistencies
2021-10-04 11:10:09 +01:00
Tim Schumacher
4302e7ac26
Tests: Add tests for mbrtowc
2021-10-03 11:13:50 +00:00
Tim Schumacher
e7f99edefa
Tests: Add a test for mbsinit
2021-10-03 11:13:50 +00:00
Tim Schumacher
05b283f552
LibC: Implement wmemmove
2021-10-03 05:28:51 +00:00
Tim Schumacher
fa1208edfd
LibC: Implement wmemset
2021-10-03 05:28:51 +00:00
Tim Schumacher
485c0ef691
LibC: Implement wmemcpy
2021-10-03 05:28:51 +00:00
Tim Schumacher
0ca1df4dc6
LibC: Implement wmemchr
2021-10-03 05:28:51 +00:00
Tim Schumacher
5ac2e84264
LibC: Implement wcsstr
2021-10-03 05:28:51 +00:00
Tim Schumacher
1b078f87b7
LibC: Implement wcspbrk
2021-10-03 05:28:51 +00:00
Tim Schumacher
b8c756a53a
LibC: Primitively implement wcscoll
...
At the moment, sorting like LC_COLLATE=C would do is better than
nothing.
2021-09-18 02:57:56 +00:00
Tim Schumacher
42031f026a
LibC: Implement towctrans
2021-09-17 22:59:51 +00:00
Tim Schumacher
8c7b566629
LibC: Implement iswctype
2021-09-17 22:59:51 +00:00
Tim Schumacher
ff0ab8b9a9
LibC: Implement wctrans
2021-09-17 22:59:51 +00:00
Tim Schumacher
7b17230d7a
LibC: Implement wctype
2021-09-17 22:59:51 +00:00
Ali Mohammad Pur
97e97bccab
Everywhere: Make ByteBuffer::{create_*,copy}() OOM-safe
2021-09-06 01:53:26 +02:00
Brian Gianforcaro
782e7834c3
Tests: Reduce the execution time of the LibC TestQSort test
...
Executing 100 times vs 10 times doesn't increase test coverage
substantial, this API is stable and more iterations is just a
waste of time.
Without KVM this test is a clear outlier in runtime during CI:
```
START LibC/TestQsort (106/172)
PASS LibC/TestQsort (41.233692s)
```
2021-09-05 22:17:28 +02:00
Andrew Kaster
b3e3e4d45d
Tests: Convert remaining LibC tests to LibTest
...
Convert them to using outln instead of printf at the same time.
2021-09-01 13:44:24 +02:00