Matthias Zimmerman
c10d48b72c
AK/ByteBuffer+Everywhere: Handle errors in ByteBuffer::slice()
2022-06-13 15:38:51 +01:00
Peter Elliott
420f78ca8b
Tests: Add tests for posix_memalign(3) and aligned_alloc(3)
2022-05-20 22:18:54 +02:00
Tim Schumacher
66170ff632
Tests: Add a test for printf truncation
2022-04-14 03:12:56 +04:30
Idan Horowitz
086969277e
Everywhere: Run clang-format
2022-04-01 21:24:45 +01:00
Kenneth Myhra
4a57be824c
Userland+Tests: Convert File::read_link() from String to ErrorOr<String>
...
This converts the return value of File::read_link() from String to
ErrorOr<String>.
The rest of the change is to support the potential of an Error being
returned and subsequent release of the value when no Error is returned.
Unfortunately at this stage none of the places affected can utililize
our TRY() macro.
2022-03-24 11:57:51 +01:00
Daniel Bertalan
ea52ba9fdc
LibC: Set saved_str
to null in strtok_r if no tokens were found
...
If we do not do this, the next call to strtok_r will start tokenizing
(and possibly modifying!) the memory pointed to by `saved_ptr`.
2022-03-08 23:30:47 +01:00
Tim Schumacher
8ebc749191
Tests: Include limits.h for PATH_MAX in realpath tests
2022-03-08 22:00:28 +01:00
Tim Schumacher
f748586393
Tests: Include limits.h for MB_LEN_MAX in wchar tests
2022-03-08 22:00:28 +01:00
Peter Ross
34108547b6
AK: Print NaN and infinite numbers in PrintfImplementation
2022-03-02 11:40:37 +01:00
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