Project

General

Profile

Actions

Feature #13997

closed

Want memrchr in libc

Added by Robert Mustacchi 4 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Normal
Category:
lib - userland libraries
Start date:
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

glibc, musl, and the BSDs all have a function memrchr() which is basically a memchr in reverse in libc. As a bunch of software wants this, we should add a version here. Third-party software expects this. For example, this was seen recently with cgit.

Actions #1

Updated by Robert Mustacchi 4 months ago

To test this I wrote a small test suite and ran the libc test suite as both a privileged and unprivileged user:

rm@turin:/var/tmp$ /opt/libc-tests/bin/libctest 
sudo: a password is required
Warning: user 'root' cannot use passwordless sudo.
Not adding Test '/opt/libc-tests/tests/random/inz_mlock' to this run.
sudo: a password is required
Warning: user 'root' cannot use passwordless sudo.
Not adding Test '/opt/libc-tests/tests/random/arc4key.ksh' to this run.
sudo: a password is required
Warning: user 'root' cannot use passwordless sudo.
Not adding Test '/opt/libc-tests/tests/pthread_attr_get_np' to this run.
Test: /opt/libc-tests/tests/aligned_alloc.32 (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/aligned_alloc.64 (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_threads.32 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_threads.64 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_tss.32 (run as rm)                [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_tss.64 (run as rm)                [00:00] [PASS]
Test: /opt/libc-tests/tests/call_once.32 (run as rm)              [00:00] [PASS]
Test: /opt/libc-tests/tests/call_once.64 (run as rm)              [00:00] [PASS]
Test: /opt/libc-tests/tests/catopen (run as rm)                   [00:00] [PASS]
Test: /opt/libc-tests/tests/endian.32 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/endian.64 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/env-7076.32 (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/env-7076.64 (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/fnmatch.32 (run as rm)                [00:00] [PASS]
Test: /opt/libc-tests/tests/fnmatch.64 (run as rm)                [00:00] [PASS]
Test: /opt/libc-tests/tests/fpround_test (run as rm)              [00:00] [PASS]
Test: /opt/libc-tests/tests/i18n/bindtextdomain_test (run as rm)  [00:00] [PASS]
Test: /opt/libc-tests/tests/memchr.32 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/memchr.64 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/memset_s.32 (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/memset_s.64 (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/newlocale_test (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/nl_langinfo_test (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/posix_memalign.32 (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/posix_memalign.64 (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-6961.64 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-9511.32 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-9511.64 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/priv_gettext (run as rm)              [00:00] [PASS]
Test: /opt/libc-tests/tests/psignal (run as rm)                   [00:00] [PASS]
Test: /opt/libc-tests/tests/qsort/qsort_test (run as rm)          [00:02] [PASS]
Test: /opt/libc-tests/tests/quick_exit (run as rm)                [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_fork (run as rm)    [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_forkall (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_forksig (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_prefork (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_preforkall (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_preforksig (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/chacha (run as rm)             [00:00] [PASS]
Test: /opt/libc-tests/tests/random/getentropy (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/random/getrandom (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_child (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_inval (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_region (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_split (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_split_vpp (run as rm)      [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_vpp (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/regex/regex_test (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/select/select.sh (run as rm)          [00:06] [PASS]
Test: /opt/libc-tests/tests/set_constraint_handler_s.32 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/set_constraint_handler_s.64 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fileno.32 (run as rm)           [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fileno.64 (run as rm)           [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fmemopentest.32 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fmemopentest.64 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftell_ungetc.32 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftell_ungetc.64 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftello_12768.64 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftello_12768.lfs (run as rm)    [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream.32 (run as rm)        [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream.64 (run as rm)        [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream_reopen.32 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream_reopen.64 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/open_memstreamtest.32 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/open_memstreamtest.64 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/orientation_test.32 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/orientation_test.64 (run as rm) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/test_mbrtowc.32 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/test_mbrtowc.64 (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.32 (run as rm)   [00:01] [PASS]
Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.64 (run as rm)   [00:00] [PASS]
Test: /opt/libc-tests/tests/strerror (run as rm)                  [00:00] [PASS]
Test: /opt/libc-tests/tests/thread_name (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/timespec_get.32 (run as rm)           [00:00] [PASS]
Test: /opt/libc-tests/tests/timespec_get.64 (run as rm)           [00:00] [PASS]
Test: /opt/libc-tests/tests/uchar.32 (run as rm)                  [00:00] [PASS]
Test: /opt/libc-tests/tests/uchar.64 (run as rm)                  [00:00] [PASS]
Test: /opt/libc-tests/tests/utimes.32 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/utimes.64 (run as rm)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7344.32 (run as rm)       [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7344.64 (run as rm)       [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7350.32 (run as rm)       [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7350.64 (run as rm)       [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp.32 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp.64 (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsrtombs_test (run as rm)            [00:00] [PASS]
Test: /opt/libc-tests/tests/wctype_test (run as rm)               [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/setup (run as rm)             [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/assert_h (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/ctype_h (run as rm)           [00:21] [PASS]
Test: /opt/libc-tests/tests/symbols/dirent_h (run as rm)          [00:04] [PASS]
Test: /opt/libc-tests/tests/symbols/fcntl_h (run as rm)           [00:13] [PASS]
Test: /opt/libc-tests/tests/symbols/locale_h (run as rm)          [00:11] [PASS]
Test: /opt/libc-tests/tests/symbols/math_h (run as rm)            [00:03] [PASS]
Test: /opt/libc-tests/tests/symbols/netdb_h (run as rm)           [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/pthread_h (run as rm)         [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/signal_h (run as rm)          [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/stdalign_h (run as rm)        [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/stddef_h (run as rm)          [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/stdio_h (run as rm)           [00:13] [PASS]
Test: /opt/libc-tests/tests/symbols/stdlib_h (run as rm)          [00:12] [PASS]
Test: /opt/libc-tests/tests/symbols/stdnoreturn_h (run as rm)     [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/string_h (run as rm)          [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/strings_h (run as rm)         [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_stat_h (run as rm)        [00:06] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_time_h (run as rm)        [00:03] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_timeb_h (run as rm)       [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/time_h (run as rm)            [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/threads_h (run as rm)         [00:25] [PASS]
Test: /opt/libc-tests/tests/symbols/ucontext_h (run as rm)        [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/unistd_h (run as rm)          [00:17] [PASS]
Test: /opt/libc-tests/tests/symbols/wchar_h (run as rm)           [00:09] [PASS]
Test: /opt/libc-tests/tests/symbols/wctype_h (run as rm)          [00:22] [PASS]

Results Summary
PASS     114

Running Time:   00:03:17
Percent passed: 100.0%
Log directory:  /var/tmp/test_results/20210809T162722
rm@turin:/var/tmp$ pfexec /opt/libc-tests/bin/libctest 
Test: /opt/libc-tests/tests/aligned_alloc.32 (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/aligned_alloc.64 (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_threads.32 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_threads.64 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_tss.32 (run as root)              [00:00] [PASS]
Test: /opt/libc-tests/tests/c11_tss.64 (run as root)              [00:00] [PASS]
Test: /opt/libc-tests/tests/call_once.32 (run as root)            [00:00] [PASS]
Test: /opt/libc-tests/tests/call_once.64 (run as root)            [00:00] [PASS]
Test: /opt/libc-tests/tests/catopen (run as root)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/endian.32 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/endian.64 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/env-7076.32 (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/env-7076.64 (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/fnmatch.32 (run as root)              [00:00] [PASS]
Test: /opt/libc-tests/tests/fnmatch.64 (run as root)              [00:00] [PASS]
Test: /opt/libc-tests/tests/fpround_test (run as root)            [00:00] [PASS]
Test: /opt/libc-tests/tests/i18n/bindtextdomain_test (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/memchr.32 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/memchr.64 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/memset_s.32 (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/memset_s.64 (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/newlocale_test (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/nl_langinfo_test (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/posix_memalign.32 (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/posix_memalign.64 (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-6961.64 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-9511.32 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/printf-9511.64 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/priv_gettext (run as root)            [00:00] [PASS]
Test: /opt/libc-tests/tests/psignal (run as root)                 [00:00] [PASS]
Test: /opt/libc-tests/tests/pthread_attr_get_np (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/qsort/qsort_test (run as root)        [00:02] [PASS]
Test: /opt/libc-tests/tests/quick_exit (run as root)              [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4key.ksh (run as root)      [00:01] [PASS]
Test: /opt/libc-tests/tests/random/arc4random (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_fork (run as root)  [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_forkall (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_forksig (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_prefork (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_preforkall (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/arc4random_preforksig (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/random/chacha (run as root)           [00:00] [PASS]
Test: /opt/libc-tests/tests/random/getentropy (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/random/getrandom (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_child (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_inval (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_mlock (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_region (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_split (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_split_vpp (run as root)    [00:00] [PASS]
Test: /opt/libc-tests/tests/random/inz_vpp (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/regex/regex_test (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/select/select.sh (run as root)        [00:07] [PASS]
Test: /opt/libc-tests/tests/set_constraint_handler_s.32 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/set_constraint_handler_s.64 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fileno.32 (run as root)         [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fileno.64 (run as root)         [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fmemopentest.32 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/fmemopentest.64 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftell_ungetc.32 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftell_ungetc.64 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftello_12768.64 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/ftello_12768.lfs (run as root)  [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream.32 (run as root)      [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream.64 (run as root)      [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream_reopen.32 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/memstream_reopen.64 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/open_memstreamtest.32 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/open_memstreamtest.64 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/orientation_test.32 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/orientation_test.64 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/test_mbrtowc.32 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/stdio/test_mbrtowc.64 (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.32 (run as root) [00:01] [PASS]
Test: /opt/libc-tests/tests/strcoll-strxfrm-6907.64 (run as root) [00:00] [PASS]
Test: /opt/libc-tests/tests/strerror (run as root)                [00:00] [PASS]
Test: /opt/libc-tests/tests/thread_name (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/timespec_get.32 (run as root)         [00:00] [PASS]
Test: /opt/libc-tests/tests/timespec_get.64 (run as root)         [00:00] [PASS]
Test: /opt/libc-tests/tests/uchar.32 (run as root)                [00:00] [PASS]
Test: /opt/libc-tests/tests/uchar.64 (run as root)                [00:00] [PASS]
Test: /opt/libc-tests/tests/utimes.32 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/utimes.64 (run as root)               [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7344.32 (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7344.64 (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7350.32 (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp-7350.64 (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp.32 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsncasecmp.64 (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/wcsrtombs_test (run as root)          [00:00] [PASS]
Test: /opt/libc-tests/tests/wctype_test (run as root)             [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/setup (run as root)           [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/assert_h (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/ctype_h (run as root)         [00:24] [PASS]
Test: /opt/libc-tests/tests/symbols/dirent_h (run as root)        [00:05] [PASS]
Test: /opt/libc-tests/tests/symbols/fcntl_h (run as root)         [00:14] [PASS]
Test: /opt/libc-tests/tests/symbols/locale_h (run as root)        [00:10] [PASS]
Test: /opt/libc-tests/tests/symbols/math_h (run as root)          [00:03] [PASS]
Test: /opt/libc-tests/tests/symbols/netdb_h (run as root)         [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/pthread_h (run as root)       [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/signal_h (run as root)        [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/stdalign_h (run as root)      [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/stddef_h (run as root)        [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/stdio_h (run as root)         [00:13] [PASS]
Test: /opt/libc-tests/tests/symbols/stdlib_h (run as root)        [00:13] [PASS]
Test: /opt/libc-tests/tests/symbols/stdnoreturn_h (run as root)   [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/string_h (run as root)        [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/strings_h (run as root)       [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_stat_h (run as root)      [00:06] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_time_h (run as root)      [00:03] [PASS]
Test: /opt/libc-tests/tests/symbols/sys_timeb_h (run as root)     [00:00] [PASS]
Test: /opt/libc-tests/tests/symbols/time_h (run as root)          [00:01] [PASS]
Test: /opt/libc-tests/tests/symbols/threads_h (run as root)       [00:26] [PASS]
Test: /opt/libc-tests/tests/symbols/ucontext_h (run as root)      [00:02] [PASS]
Test: /opt/libc-tests/tests/symbols/unistd_h (run as root)        [00:19] [PASS]
Test: /opt/libc-tests/tests/symbols/wchar_h (run as root)         [00:10] [PASS]
Test: /opt/libc-tests/tests/symbols/wctype_h (run as root)        [00:25] [PASS]

Results Summary
PASS     117

Running Time:   00:03:33
Percent passed: 100.0%
Log directory:  /var/tmp/test_results/20210809T163644
Actions #2

Updated by Robert Mustacchi 4 months ago

I also ran the util-tests as just a good sanity check and they all passed.

Actions #3

Updated by Electric Monk 4 months ago

  • Status changed from New to Closed
  • % Done changed from 0 to 100

git commit d6bf170859287b7b5b26419e266a7e6fdee7ff4d

commit  d6bf170859287b7b5b26419e266a7e6fdee7ff4d
Author: Robert Mustacchi <rm@fingolfin.org>
Date:   2021-08-20T15:14:13.000Z

    13997 Want memrchr in libc
    Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
    Reviewed by: Andy Fiddaman <andy@omnios.org>
    Reviewed by: Toomas Soome <tsoome@me.com>
    Approved by: Dan McDonald <danmcd@joyent.com>

Actions #4

Updated by Robert Mustacchi 4 months ago

  • Gerrit CR set to 1644
Actions

Also available in: Atom PDF