master
1pub fn addCases(cases: *tests.LibcContext) void {
2 cases.addLibcTestCase("api/main.c", true, .{});
3
4 cases.addLibcTestCase("functional/argv.c", true, .{});
5 cases.addLibcTestCase("functional/basename.c", true, .{});
6 cases.addLibcTestCase("functional/clocale_mbfuncs.c", true, .{});
7 cases.addLibcTestCase("functional/clock_gettime.c", true, .{});
8 cases.addLibcTestCase("functional/crypt.c", true, .{});
9 cases.addLibcTestCase("functional/dirname.c", true, .{});
10 cases.addLibcTestCase("functional/env.c", true, .{});
11 cases.addLibcTestCase("functional/fcntl.c", false, .{});
12 cases.addLibcTestCase("functional/fdopen.c", false, .{});
13 cases.addLibcTestCase("functional/fnmatch.c", true, .{});
14 cases.addLibcTestCase("functional/fscanf.c", false, .{});
15 cases.addLibcTestCase("functional/fwscanf.c", false, .{});
16 cases.addLibcTestCase("functional/iconv_open.c", true, .{});
17 cases.addLibcTestCase("functional/inet_pton.c", false, .{});
18 // "functional/ipc_msg.c": Probably a bug in qemu
19 // "functional/ipc_sem.c": Probably a bug in qemu
20 // "functional/ipc_shm.c": Probably a bug in qemu
21 cases.addLibcTestCase("functional/mbc.c", true, .{});
22 cases.addLibcTestCase("functional/memstream.c", true, .{});
23 // "functional/mntent.c": https://www.openwall.com/lists/musl/2024/10/22/1
24 cases.addLibcTestCase("functional/popen.c", false, .{});
25 cases.addLibcTestCase("functional/pthread_cancel-points.c", false, .{});
26 cases.addLibcTestCase("functional/pthread_cancel.c", false, .{});
27 cases.addLibcTestCase("functional/pthread_cond.c", false, .{});
28 cases.addLibcTestCase("functional/pthread_mutex.c", false, .{});
29 // "functional/pthread_mutex_pi.c": Probably a bug in qemu (big/little endian FUTEX_LOCK_PI)
30 // "functional/pthread_robust.c": https://gitlab.com/qemu-project/qemu/-/issues/2424
31 cases.addLibcTestCase("functional/pthread_tsd.c", false, .{});
32 cases.addLibcTestCase("functional/qsort.c", true, .{});
33 cases.addLibcTestCase("functional/random.c", true, .{});
34 cases.addLibcTestCase("functional/search_hsearch.c", false, .{}); // The test suite of wasi-libc runs this test case
35 cases.addLibcTestCase("functional/search_insque.c", true, .{});
36 cases.addLibcTestCase("functional/search_lsearch.c", true, .{});
37 cases.addLibcTestCase("functional/search_tsearch.c", true, .{});
38 cases.addLibcTestCase("functional/sem_init.c", false, .{});
39 cases.addLibcTestCase("functional/sem_open.c", false, .{});
40 cases.addLibcTestCase("functional/setjmp.c", false, .{});
41 cases.addLibcTestCase("functional/snprintf.c", true, .{});
42 cases.addLibcTestCase("functional/socket.c", false, .{});
43 cases.addLibcTestCase("functional/spawn.c", false, .{});
44 cases.addLibcTestCase("functional/sscanf.c", true, .{});
45 cases.addLibcTestCase("functional/sscanf_long.c", false, .{});
46 cases.addLibcTestCase("functional/stat.c", false, .{});
47 cases.addLibcTestCase("functional/strftime.c", true, .{});
48 cases.addLibcTestCase("functional/string.c", true, .{});
49 cases.addLibcTestCase("functional/string_memcpy.c", true, .{});
50 cases.addLibcTestCase("functional/string_memmem.c", true, .{});
51 cases.addLibcTestCase("functional/string_memset.c", true, .{});
52 cases.addLibcTestCase("functional/string_strchr.c", true, .{});
53 cases.addLibcTestCase("functional/string_strcspn.c", true, .{});
54 cases.addLibcTestCase("functional/string_strstr.c", true, .{});
55 cases.addLibcTestCase("functional/strtod.c", true, .{});
56 cases.addLibcTestCase("functional/strtod_long.c", true, .{});
57 cases.addLibcTestCase("functional/strtod_simple.c", true, .{});
58 cases.addLibcTestCase("functional/strtof.c", true, .{});
59 cases.addLibcTestCase("functional/strtol.c", true, .{});
60 cases.addLibcTestCase("functional/strtold.c", true, .{});
61 cases.addLibcTestCase("functional/swprintf.c", true, .{});
62 cases.addLibcTestCase("functional/tgmath.c", true, .{});
63 cases.addLibcTestCase("functional/time.c", false, .{});
64 cases.addLibcTestCase("functional/tls_align.c", true, .{ .additional_src_file = "functional/tls_align_dso.c" });
65 cases.addLibcTestCase("functional/tls_init.c", false, .{});
66 cases.addLibcTestCase("functional/tls_local_exec.c", false, .{});
67 cases.addLibcTestCase("functional/udiv.c", true, .{});
68 cases.addLibcTestCase("functional/ungetc.c", false, .{});
69 // cases.addLibcTestCase("functional/utime.c", false, .{}); - fails under heavy load; futimens not reflected in subsequent fstat
70 cases.addLibcTestCase("functional/vfork.c", false, .{});
71 cases.addLibcTestCase("functional/wcsstr.c", true, .{});
72 cases.addLibcTestCase("functional/wcstol.c", true, .{});
73
74 // cases.addLibcTestCase("regression/daemon-failure.c", false, .{}); - unexpected ENOMEM with high FD limit
75 cases.addLibcTestCase("regression/dn_expand-empty.c", false, .{});
76 cases.addLibcTestCase("regression/dn_expand-ptr-0.c", false, .{});
77 cases.addLibcTestCase("regression/execle-env.c", false, .{});
78 cases.addLibcTestCase("regression/fflush-exit.c", false, .{});
79 cases.addLibcTestCase("regression/fgets-eof.c", true, .{});
80 cases.addLibcTestCase("regression/fgetwc-buffering.c", false, .{});
81 cases.addLibcTestCase("regression/flockfile-list.c", false, .{});
82 cases.addLibcTestCase("regression/fpclassify-invalid-ld80.c", true, .{});
83 cases.addLibcTestCase("regression/ftello-unflushed-append.c", false, .{});
84 cases.addLibcTestCase("regression/getpwnam_r-crash.c", false, .{});
85 cases.addLibcTestCase("regression/getpwnam_r-errno.c", false, .{});
86 cases.addLibcTestCase("regression/iconv-roundtrips.c", true, .{});
87 cases.addLibcTestCase("regression/inet_ntop-v4mapped.c", true, .{});
88 cases.addLibcTestCase("regression/inet_pton-empty-last-field.c", true, .{});
89 cases.addLibcTestCase("regression/iswspace-null.c", true, .{});
90 cases.addLibcTestCase("regression/lrand48-signextend.c", true, .{});
91 cases.addLibcTestCase("regression/lseek-large.c", false, .{});
92 cases.addLibcTestCase("regression/malloc-0.c", true, .{});
93 // "regression/malloc-brk-fail.c": QEMU OOM
94 // cases.addLibcTestCase("regression/malloc-oom.c", false, .{}); // wasi-libc: requires t_memfill; QEMU OOM
95 cases.addLibcTestCase("regression/mbsrtowcs-overflow.c", true, .{});
96 cases.addLibcTestCase("regression/memmem-oob-read.c", true, .{});
97 cases.addLibcTestCase("regression/memmem-oob.c", true, .{});
98 cases.addLibcTestCase("regression/mkdtemp-failure.c", false, .{});
99 cases.addLibcTestCase("regression/mkstemp-failure.c", false, .{});
100 cases.addLibcTestCase("regression/printf-1e9-oob.c", true, .{});
101 cases.addLibcTestCase("regression/printf-fmt-g-round.c", true, .{});
102 cases.addLibcTestCase("regression/printf-fmt-g-zeros.c", true, .{});
103 cases.addLibcTestCase("regression/printf-fmt-n.c", true, .{});
104 // "regression/pthread-robust-detach.c": https://gitlab.com/qemu-project/qemu/-/issues/2424
105 cases.addLibcTestCase("regression/pthread_atfork-errno-clobber.c", false, .{});
106 cases.addLibcTestCase("regression/pthread_cancel-sem_wait.c", false, .{});
107 cases.addLibcTestCase("regression/pthread_cond-smasher.c", false, .{});
108 cases.addLibcTestCase("regression/pthread_cond_wait-cancel_ignored.c", false, .{});
109 cases.addLibcTestCase("regression/pthread_condattr_setclock.c", false, .{});
110 // "regression/pthread_create-oom.c": QEMU OOM
111 cases.addLibcTestCase("regression/pthread_exit-cancel.c", false, .{});
112 cases.addLibcTestCase("regression/pthread_exit-dtor.c", false, .{});
113 cases.addLibcTestCase("regression/pthread_once-deadlock.c", false, .{});
114 cases.addLibcTestCase("regression/pthread_rwlock-ebusy.c", false, .{});
115 cases.addLibcTestCase("regression/putenv-doublefree.c", true, .{});
116 cases.addLibcTestCase("regression/raise-race.c", false, .{});
117 cases.addLibcTestCase("regression/regex-backref-0.c", true, .{});
118 cases.addLibcTestCase("regression/regex-bracket-icase.c", true, .{});
119 cases.addLibcTestCase("regression/regex-ere-backref.c", true, .{});
120 cases.addLibcTestCase("regression/regex-escaped-high-byte.c", true, .{});
121 cases.addLibcTestCase("regression/regex-negated-range.c", true, .{});
122 cases.addLibcTestCase("regression/regexec-nosub.c", true, .{});
123 cases.addLibcTestCase("regression/rewind-clear-error.c", false, .{});
124 cases.addLibcTestCase("regression/rlimit-open-files.c", false, .{});
125 cases.addLibcTestCase("regression/scanf-bytes-consumed.c", true, .{});
126 cases.addLibcTestCase("regression/scanf-match-literal-eof.c", true, .{});
127 cases.addLibcTestCase("regression/scanf-nullbyte-char.c", true, .{});
128 cases.addLibcTestCase("regression/sem_close-unmap.c", false, .{});
129 // "regression/setenv-oom.c": QEMU OOM
130 cases.addLibcTestCase("regression/setvbuf-unget.c", true, .{});
131 cases.addLibcTestCase("regression/sigaltstack.c", false, .{});
132 cases.addLibcTestCase("regression/sigprocmask-internal.c", false, .{});
133 cases.addLibcTestCase("regression/sigreturn.c", true, .{});
134 cases.addLibcTestCase("regression/sscanf-eof.c", true, .{});
135 cases.addLibcTestCase("regression/strverscmp.c", true, .{});
136 cases.addLibcTestCase("regression/syscall-sign-extend.c", false, .{});
137 cases.addLibcTestCase("regression/uselocale-0.c", true, .{});
138 cases.addLibcTestCase("regression/wcsncpy-read-overflow.c", true, .{});
139 cases.addLibcTestCase("regression/wcsstr-false-negative.c", true, .{});
140}
141
142const std = @import("std");
143const tests = @import("tests.zig");