• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Alan-Jowett / ebpf-verifier / 21417915433

27 Jan 2026 10:55PM UTC coverage: 86.792% (+0.1%) from 86.664%
21417915433

push

github

web-flow
Add comprehensive documentation for Prevail eBPF verifier (#979)

Create docs/ directory with detailed documentation covering:
- README.md: Overview and quick links
- architecture.md: High-level system architecture
- abstract-interpretation.md: Core verification approach
- abstract-domains.md: Crab domain hierarchy
- instruction-semantics.md: eBPF instruction modeling
- cfg.md: Control flow graph and WTO
- memory-model.md: Stack, packet, context handling
- type-system.md: Type domains and verification
- building.md: Build instructions for all platforms
- testing.md: Test infrastructure guide
- glossary.md: Terminology definitions

---------

Signed-off-by: Alan Jowett <alan.jowett@microsoft.com>

9127 of 10516 relevant lines covered (86.79%)

3833967.43 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.7
/src/test/test_conformance.cpp
1
// Copyright (c) Prevail Verifier contributors.
2
// SPDX-License-Identifier: MIT
3
#include <catch2/catch_all.hpp>
4

5
#include <filesystem>
6
#include <string>
7

8
#include <bpf_conformance/bpf_conformance.h>
9

10
#ifndef CONFORMANCE_CHECK_PATH
11
#ifdef _WIN32
12
#define CONFORMANCE_CHECK_PATH "conformance_check.exe"
13
#else
14
#define CONFORMANCE_CHECK_PATH "./conformance_check"
15
#endif
16
#endif
17

18
static void test_conformance(const std::string& filename, const bpf_conformance_test_result_t& expected_result,
626✔
19
                             const std::string& expected_reason) {
20
    static const std::filesystem::path conformance_test_path = "external/bpf_conformance/tests/";
626✔
21
    const std::vector test_files = {conformance_test_path / filename};
1,565✔
22
    auto result =
313✔
23
        bpf_conformance(test_files, CONFORMANCE_CHECK_PATH, {}, {}, {}, bpf_conformance_test_CPU_version_t::v4,
626✔
24
                        bpf_conformance_groups_t::default_groups | bpf_conformance_groups_t::callx,
25
                        bpf_conformance_list_instructions_t::LIST_INSTRUCTIONS_NONE, false);
626✔
26
    for (const auto& file : test_files) {
1,252✔
27
        auto& [file_result, reason] = result[file];
626✔
28
        REQUIRE(file_result == expected_result);
626✔
29
        if (file_result != bpf_conformance_test_result_t::TEST_RESULT_PASS && !expected_reason.empty()) {
626✔
30
            reason.erase(reason.find_last_not_of(" \n\r\t") + 1); // Remove trailing whitespace.
18✔
31
            if (expected_result == bpf_conformance_test_result_t::TEST_RESULT_ERROR) {
18✔
32
                REQUIRE(reason == "Plugin returned error code 1 and output " + expected_reason);
27✔
33
            } else {
34
                REQUIRE(reason == expected_reason);
×
35
            }
36
        }
37
    }
38
}
1,878✔
39

40
#define TEST_CONFORMANCE(filename)                                                       \
41
    TEST_CASE("conformance_check " filename, "[conformance]") {                          \
42
        test_conformance(filename, bpf_conformance_test_result_t::TEST_RESULT_PASS, {}); \
43
    }
44

45
// Any tests that fail verification are safe, but might prevent
46
// legitimate programs from being usable.
47
#define TEST_CONFORMANCE_VERIFICATION_FAILED(filename)                                                       \
48
    TEST_CASE("conformance_check " filename, "[conformance]") {                                              \
49
        test_conformance(filename, bpf_conformance_test_result_t::TEST_RESULT_ERROR, "Verification failed"); \
50
    }
51

52
// Any tests that return top are safe, but are not as precise as they
53
// could be and so may prevent legitimate programs from being usable.
54
#define TEST_CONFORMANCE_TOP(filename)                                                                               \
55
    TEST_CASE("conformance_check " filename, "[conformance]") {                                                      \
56
        test_conformance(filename, bpf_conformance_test_result_t::TEST_RESULT_ERROR, "Couldn't determine r0 value"); \
57
    }
58

59
// Any tests that return a range are safe, but are not as precise as they
60
// could be and so may prevent legitimate programs from being usable.
61
#define TEST_CONFORMANCE_RANGE(filename, range)                                                                   \
62
    TEST_CASE("conformance_check " filename, "[conformance]") {                                                   \
63
        test_conformance(filename, bpf_conformance_test_result_t::TEST_RESULT_ERROR, "r0 value is range " range); \
64
    }
65

66
// Tests that are known to fail today and need investigation (potential bugs).
67
// Unlike TEST_CONFORMANCE_VERIFICATION_FAILED, these are not expected-safe failures.
68
#define TEST_CONFORMANCE_FAIL(filename, expected_reason)                                              \
69
    TEST_CASE("conformance_check " filename, "[conformance]") {                                       \
70
        test_conformance(filename, bpf_conformance_test_result_t::TEST_RESULT_FAIL, expected_reason); \
71
    }
72

73
TEST_CONFORMANCE("add.data")
5✔
74
TEST_CONFORMANCE("add64.data")
5✔
75
TEST_CONFORMANCE("alu-arith.data")
5✔
76
TEST_CONFORMANCE("alu-bit.data")
5✔
77
TEST_CONFORMANCE("alu64-arith.data")
5✔
78
TEST_CONFORMANCE("alu64-bit.data")
5✔
79
TEST_CONFORMANCE("arsh32-imm.data")
5✔
80
TEST_CONFORMANCE("arsh32-imm-high.data")
5✔
81
TEST_CONFORMANCE("arsh32-imm-neg.data")
5✔
82
TEST_CONFORMANCE("arsh32-reg.data")
5✔
83
TEST_CONFORMANCE("arsh32-reg-high.data")
5✔
84
TEST_CONFORMANCE("arsh32-reg-neg.data")
5✔
85
TEST_CONFORMANCE("arsh64-imm.data")
5✔
86
TEST_CONFORMANCE("arsh64-imm-high.data")
5✔
87
TEST_CONFORMANCE("arsh64-imm-neg.data")
5✔
88
TEST_CONFORMANCE("arsh64-reg.data")
5✔
89
TEST_CONFORMANCE("arsh64-reg-high.data")
5✔
90
TEST_CONFORMANCE("arsh64-reg-neg.data")
5✔
91
TEST_CONFORMANCE("be16-high.data")
5✔
92
TEST_CONFORMANCE("be16.data")
5✔
93
TEST_CONFORMANCE("be32-high.data")
5✔
94
TEST_CONFORMANCE("be32.data")
5✔
95
TEST_CONFORMANCE("be64.data")
5✔
96
TEST_CONFORMANCE("bswap16.data")
5✔
97
TEST_CONFORMANCE("bswap32.data")
5✔
98
TEST_CONFORMANCE("bswap64.data")
5✔
99
TEST_CONFORMANCE("call_local.data")
5✔
100
TEST_CONFORMANCE("call_unwind_fail.data")
5✔
101
TEST_CONFORMANCE("callx.data")
5✔
102
TEST_CONFORMANCE("div32-by-zero-reg.data")
5✔
103
TEST_CONFORMANCE("div32-by-zero-reg-2.data")
5✔
104
TEST_CONFORMANCE("div32-high-divisor.data")
5✔
105
TEST_CONFORMANCE("div32-imm.data")
5✔
106
TEST_CONFORMANCE("div32-reg.data")
5✔
107
TEST_CONFORMANCE("div64-by-zero-reg.data")
5✔
108
TEST_CONFORMANCE("div64-imm.data")
5✔
109
TEST_CONFORMANCE("div64-negative-imm.data")
5✔
110
TEST_CONFORMANCE("div64-negative-reg.data")
5✔
111
TEST_CONFORMANCE("div64-reg.data")
5✔
112
TEST_CONFORMANCE("exit-not-last.data")
5✔
113
TEST_CONFORMANCE("exit.data")
5✔
114
TEST_CONFORMANCE("j-signed-imm.data")
5✔
115
TEST_CONFORMANCE("ja32.data")
5✔
116
TEST_CONFORMANCE("jeq-imm.data")
5✔
117
TEST_CONFORMANCE("jeq-reg.data")
5✔
118
TEST_CONFORMANCE("jeq32-imm.data")
5✔
119
TEST_CONFORMANCE("jeq32-reg.data")
5✔
120
TEST_CONFORMANCE("jge-imm.data")
5✔
121
TEST_CONFORMANCE("jge-reg.data")
5✔
122
TEST_CONFORMANCE("jge32-imm.data")
5✔
123
TEST_CONFORMANCE("jge32-reg.data")
5✔
124
TEST_CONFORMANCE("jgt-imm.data")
5✔
125
TEST_CONFORMANCE("jgt-reg.data")
5✔
126
TEST_CONFORMANCE("jgt32-imm.data")
5✔
127
TEST_CONFORMANCE("jgt32-reg.data")
5✔
128
TEST_CONFORMANCE("jit-bounce.data")
5✔
129
TEST_CONFORMANCE("jle-imm.data")
5✔
130
TEST_CONFORMANCE("jle-reg.data")
5✔
131
TEST_CONFORMANCE("jle32-imm.data")
5✔
132
TEST_CONFORMANCE("jle32-reg.data")
5✔
133
TEST_CONFORMANCE("jlt-imm.data")
5✔
134
TEST_CONFORMANCE("jlt-reg.data")
5✔
135
TEST_CONFORMANCE("jlt32-imm.data")
5✔
136
TEST_CONFORMANCE("jlt32-reg.data")
5✔
137
TEST_CONFORMANCE("jne-reg.data")
5✔
138
TEST_CONFORMANCE("jne32-imm.data")
5✔
139
TEST_CONFORMANCE("jne32-reg.data")
5✔
140
TEST_CONFORMANCE("jset-imm.data")
5✔
141
TEST_CONFORMANCE("jset-reg.data")
5✔
142
TEST_CONFORMANCE("jset32-imm.data")
5✔
143
TEST_CONFORMANCE("jset32-reg.data")
5✔
144
TEST_CONFORMANCE("jsge-imm.data")
5✔
145
TEST_CONFORMANCE("jsge-reg.data")
5✔
146
TEST_CONFORMANCE("jsge32-imm.data")
5✔
147
TEST_CONFORMANCE("jsge32-reg.data")
5✔
148
TEST_CONFORMANCE("jsgt-imm.data")
5✔
149
TEST_CONFORMANCE("jsgt-reg.data")
5✔
150
TEST_CONFORMANCE("jsgt32-imm.data")
5✔
151
TEST_CONFORMANCE("jsgt32-reg.data")
5✔
152
TEST_CONFORMANCE("jsle-imm.data")
5✔
153
TEST_CONFORMANCE("jsle-reg.data")
5✔
154
TEST_CONFORMANCE("jsle32-imm.data")
5✔
155
TEST_CONFORMANCE("jsle32-reg.data")
5✔
156
TEST_CONFORMANCE("jslt-imm.data")
5✔
157
TEST_CONFORMANCE("jslt-reg.data")
5✔
158
TEST_CONFORMANCE("jslt32-imm.data")
5✔
159
TEST_CONFORMANCE("jslt32-reg.data")
5✔
160
TEST_CONFORMANCE("lddw.data")
5✔
161
TEST_CONFORMANCE("lddw2.data")
5✔
162
TEST_CONFORMANCE("ldxb-all.data")
5✔
163
TEST_CONFORMANCE("ldxb.data")
5✔
164
TEST_CONFORMANCE("ldxdw.data")
5✔
165
TEST_CONFORMANCE("ldxh-all.data")
5✔
166
TEST_CONFORMANCE("ldxh-all2.data")
5✔
167
TEST_CONFORMANCE("ldxh-same-reg.data")
5✔
168
TEST_CONFORMANCE("ldxh.data")
5✔
169
TEST_CONFORMANCE("ldxw-all.data")
5✔
170
TEST_CONFORMANCE("ldxw.data")
5✔
171
TEST_CONFORMANCE("le16.data")
5✔
172
TEST_CONFORMANCE("le16-high.data")
5✔
173
TEST_CONFORMANCE("le32.data")
5✔
174
TEST_CONFORMANCE("le32-high.data")
5✔
175
TEST_CONFORMANCE("le64.data")
5✔
176
TEST_CONFORMANCE("lock_add.data")
5✔
177
TEST_CONFORMANCE("lock_add32.data")
5✔
178
TEST_CONFORMANCE("lock_and.data")
5✔
179
TEST_CONFORMANCE("lock_and32.data")
5✔
180
TEST_CONFORMANCE_TOP("lock_cmpxchg.data")
7✔
181
TEST_CONFORMANCE_TOP("lock_cmpxchg32.data")
7✔
182
TEST_CONFORMANCE("lock_fetch_add.data")
5✔
183
TEST_CONFORMANCE("lock_fetch_add32.data")
5✔
184
TEST_CONFORMANCE("lock_fetch_and.data")
4✔
185
TEST_CONFORMANCE("lock_fetch_and32.data")
5✔
186
TEST_CONFORMANCE("lock_fetch_or.data")
5✔
187
TEST_CONFORMANCE("lock_fetch_or32.data")
5✔
188
TEST_CONFORMANCE("lock_fetch_xor.data")
5✔
189
TEST_CONFORMANCE("lock_fetch_xor32.data")
5✔
190
TEST_CONFORMANCE("lock_or.data")
5✔
191
TEST_CONFORMANCE("lock_or32.data")
5✔
192
TEST_CONFORMANCE("lock_xchg.data")
5✔
193
TEST_CONFORMANCE("lock_xchg32.data")
5✔
194
TEST_CONFORMANCE("lock_xor.data")
5✔
195
TEST_CONFORMANCE("lock_xor32.data")
5✔
196
TEST_CONFORMANCE("lsh32-imm.data")
5✔
197
TEST_CONFORMANCE("lsh32-imm-high.data")
5✔
198
TEST_CONFORMANCE("lsh32-imm-neg.data")
5✔
199
TEST_CONFORMANCE("lsh32-reg.data")
5✔
200
TEST_CONFORMANCE("lsh32-reg-high.data")
5✔
201
TEST_CONFORMANCE("lsh32-reg-neg.data")
5✔
202
TEST_CONFORMANCE("lsh64-imm.data")
5✔
203
TEST_CONFORMANCE("lsh64-imm-high.data")
5✔
204
TEST_CONFORMANCE("lsh64-imm-neg.data")
5✔
205
TEST_CONFORMANCE("lsh64-reg.data")
5✔
206
TEST_CONFORMANCE("lsh64-reg-high.data")
5✔
207
TEST_CONFORMANCE("lsh64-reg-neg.data")
5✔
208
TEST_CONFORMANCE_VERIFICATION_FAILED("mem-len.data")
7✔
209
TEST_CONFORMANCE("mod-by-zero-reg.data")
5✔
210
TEST_CONFORMANCE("mod.data")
5✔
211
TEST_CONFORMANCE("mod32.data")
5✔
212
TEST_CONFORMANCE("mod64-by-zero-reg.data")
5✔
213
TEST_CONFORMANCE("mod64.data")
5✔
214
TEST_CONFORMANCE("mov.data")
5✔
215
TEST_CONFORMANCE("mov64.data")
5✔
216
TEST_CONFORMANCE("mov64-sign-extend.data")
5✔
217
TEST_CONFORMANCE("movsx1632-reg.data")
5✔
218
TEST_CONFORMANCE("movsx1664-reg.data")
5✔
219
TEST_CONFORMANCE("movsx3264-reg.data")
5✔
220
TEST_CONFORMANCE("movsx832-reg.data")
5✔
221
TEST_CONFORMANCE("movsx864-reg.data")
5✔
222
TEST_CONFORMANCE("mul32-imm.data")
5✔
223
TEST_CONFORMANCE("mul32-intmin-by-negone-imm.data")
5✔
224
TEST_CONFORMANCE("mul32-intmin-by-negone-reg.data")
5✔
225
TEST_CONFORMANCE("mul32-reg-overflow.data")
5✔
226
TEST_CONFORMANCE("mul32-reg.data")
5✔
227
TEST_CONFORMANCE("mul64-imm.data")
5✔
228
TEST_CONFORMANCE("mul64-intmin-by-negone-imm.data")
5✔
229
TEST_CONFORMANCE("mul64-intmin-by-negone-reg.data")
5✔
230
TEST_CONFORMANCE("mul64-reg.data")
5✔
231
TEST_CONFORMANCE("neg.data")
5✔
232
TEST_CONFORMANCE("neg32-intmin-imm.data")
5✔
233
TEST_CONFORMANCE("neg32-intmin-reg.data")
5✔
234
TEST_CONFORMANCE("neg64.data")
5✔
235
TEST_CONFORMANCE("neg64-intmin-imm.data")
5✔
236
TEST_CONFORMANCE("neg64-intmin-reg.data")
5✔
237
TEST_CONFORMANCE_RANGE("prime.data", "[0, 1]")
7✔
238
TEST_CONFORMANCE("rsh32-imm.data")
5✔
239
TEST_CONFORMANCE("rsh32-imm-high.data")
5✔
240
TEST_CONFORMANCE("rsh32-imm-neg.data")
5✔
241
TEST_CONFORMANCE("rsh32-reg.data")
5✔
242
TEST_CONFORMANCE("rsh32-reg-high.data")
5✔
243
TEST_CONFORMANCE("rsh32-reg-neg.data")
5✔
244
TEST_CONFORMANCE("rsh64-imm.data")
5✔
245
TEST_CONFORMANCE("rsh64-imm-high.data")
5✔
246
TEST_CONFORMANCE("rsh64-imm-neg.data")
5✔
247
TEST_CONFORMANCE("rsh64-reg.data")
5✔
248
TEST_CONFORMANCE("rsh64-reg-high.data")
5✔
249
TEST_CONFORMANCE("rsh64-reg-neg.data")
5✔
250
TEST_CONFORMANCE("sdiv32-by-zero-imm.data")
5✔
251
TEST_CONFORMANCE("sdiv32-by-zero-reg.data")
5✔
252
TEST_CONFORMANCE("sdiv32-imm.data")
5✔
253
TEST_CONFORMANCE("sdiv32-intmin-by-negone-imm.data")
5✔
254
TEST_CONFORMANCE("sdiv32-intmin-by-negone-reg.data")
5✔
255
TEST_CONFORMANCE("sdiv32-reg.data")
5✔
256
TEST_CONFORMANCE("sdiv64-by-zero-imm.data")
5✔
257
TEST_CONFORMANCE("sdiv64-by-zero-reg.data")
5✔
258
TEST_CONFORMANCE("sdiv64-imm.data")
5✔
259
TEST_CONFORMANCE("sdiv64-intmin-by-negone-imm.data")
5✔
260
TEST_CONFORMANCE("sdiv64-intmin-by-negone-reg.data")
5✔
261
TEST_CONFORMANCE("sdiv64-reg.data")
5✔
262
TEST_CONFORMANCE("smod32-intmin-by-negone-imm.data")
5✔
263
TEST_CONFORMANCE("smod32-intmin-by-negone-reg.data")
5✔
264
TEST_CONFORMANCE("smod32-neg-by-neg-imm.data")
5✔
265
TEST_CONFORMANCE("smod32-neg-by-neg-reg.data")
5✔
266
TEST_CONFORMANCE("smod32-neg-by-pos-imm.data")
5✔
267
TEST_CONFORMANCE("smod32-neg-by-pos-reg.data")
5✔
268
TEST_CONFORMANCE("smod32-neg-by-zero-imm.data")
5✔
269
TEST_CONFORMANCE("smod32-neg-by-zero-reg.data")
5✔
270
TEST_CONFORMANCE("smod32-pos-by-neg-imm.data")
5✔
271
TEST_CONFORMANCE("smod32-pos-by-neg-reg.data")
5✔
272
TEST_CONFORMANCE("smod64-intmin-by-negone-imm.data")
5✔
273
TEST_CONFORMANCE("smod64-intmin-by-negone-reg.data")
5✔
274
TEST_CONFORMANCE("smod64-neg-by-neg-imm.data")
5✔
275
TEST_CONFORMANCE("smod64-neg-by-neg-reg.data")
5✔
276
TEST_CONFORMANCE("smod64-neg-by-pos-imm.data")
5✔
277
TEST_CONFORMANCE("smod64-neg-by-pos-reg.data")
5✔
278
TEST_CONFORMANCE("smod64-neg-by-zero-imm.data")
5✔
279
TEST_CONFORMANCE("smod64-neg-by-zero-reg.data")
5✔
280
TEST_CONFORMANCE("smod64-pos-by-neg-imm.data")
5✔
281
TEST_CONFORMANCE("smod64-pos-by-neg-reg.data")
5✔
282
TEST_CONFORMANCE("stack.data")
5✔
283
TEST_CONFORMANCE("stb.data")
5✔
284
TEST_CONFORMANCE("stdw.data")
5✔
285
TEST_CONFORMANCE("sth.data")
5✔
286
TEST_CONFORMANCE("stw.data")
5✔
287
TEST_CONFORMANCE("stxb-all.data")
5✔
288
TEST_CONFORMANCE("stxb-all2.data")
5✔
289
TEST_CONFORMANCE("stxb-chain.data")
5✔
290
TEST_CONFORMANCE("stxb.data")
5✔
291
TEST_CONFORMANCE("stxdw.data")
5✔
292
TEST_CONFORMANCE("stxh.data")
5✔
293
TEST_CONFORMANCE("stxw.data")
5✔
294
TEST_CONFORMANCE("swap16.data")
5✔
295
TEST_CONFORMANCE("swap32.data")
5✔
296
TEST_CONFORMANCE("swap64.data")
5✔
297
TEST_CONFORMANCE("subnet.data")
5✔
298

299
// RFC 9669 generated tests (kept as individual test cases, matching the pattern above).
300
TEST_CONFORMANCE("rfc9669_add32.data")
5✔
301
TEST_CONFORMANCE("rfc9669_add64.data")
5✔
302
TEST_CONFORMANCE("rfc9669_and32.data")
5✔
303
TEST_CONFORMANCE("rfc9669_and64.data")
5✔
304
TEST_CONFORMANCE("rfc9669_arsh32.data")
5✔
305
TEST_CONFORMANCE("rfc9669_arsh64.data")
5✔
306
TEST_CONFORMANCE("rfc9669_be16.data")
5✔
307
TEST_CONFORMANCE("rfc9669_be32.data")
5✔
308
TEST_CONFORMANCE("rfc9669_be64.data")
5✔
309
TEST_CONFORMANCE("rfc9669_bswap16.data")
5✔
310
TEST_CONFORMANCE("rfc9669_bswap32.data")
5✔
311
TEST_CONFORMANCE("rfc9669_bswap64.data")
5✔
312
TEST_CONFORMANCE("rfc9669_call_local.data")
5✔
313
TEST_CONFORMANCE("rfc9669_div32.data")
5✔
314
TEST_CONFORMANCE("rfc9669_div64.data")
5✔
315
TEST_CONFORMANCE("rfc9669_exit.data")
5✔
316
TEST_CONFORMANCE("rfc9669_ja.data")
5✔
317
TEST_CONFORMANCE("rfc9669_ja32.data")
5✔
318
TEST_CONFORMANCE("rfc9669_jeq.data")
5✔
319
TEST_CONFORMANCE("rfc9669_jge.data")
5✔
320
TEST_CONFORMANCE("rfc9669_jgt.data")
5✔
321
TEST_CONFORMANCE("rfc9669_jle.data")
5✔
322
TEST_CONFORMANCE("rfc9669_jlt.data")
5✔
323
TEST_CONFORMANCE("rfc9669_jne.data")
5✔
324
TEST_CONFORMANCE("rfc9669_jset.data")
5✔
325
TEST_CONFORMANCE("rfc9669_jsge.data")
5✔
326
TEST_CONFORMANCE("rfc9669_jsgt.data")
5✔
327
TEST_CONFORMANCE("rfc9669_jsle.data")
5✔
328
TEST_CONFORMANCE("rfc9669_jslt.data")
5✔
329
TEST_CONFORMANCE("rfc9669_lddw.data")
5✔
330
TEST_CONFORMANCE("rfc9669_ldxb.data")
5✔
331
TEST_CONFORMANCE("rfc9669_ldxdw.data")
5✔
332
TEST_CONFORMANCE("rfc9669_ldxh.data")
5✔
333
// LDXS* (LDXSB/LDXSH/LDXSW) / MEMSX sign-extending loads are currently not implemented by Prevail.
334
// Keep these as expected verification failures until the verifier gains support.
335
TEST_CONFORMANCE_VERIFICATION_FAILED("rfc9669_ldxsb.data")
7✔
336
TEST_CONFORMANCE_VERIFICATION_FAILED("rfc9669_ldxsh.data")
7✔
337
TEST_CONFORMANCE_VERIFICATION_FAILED("rfc9669_ldxsw.data")
7✔
338
TEST_CONFORMANCE("rfc9669_ldxw.data")
5✔
339
TEST_CONFORMANCE("rfc9669_le16.data")
5✔
340
TEST_CONFORMANCE("rfc9669_le32.data")
5✔
341
TEST_CONFORMANCE("rfc9669_le64.data")
5✔
342
TEST_CONFORMANCE("rfc9669_lock_add32.data")
5✔
343
TEST_CONFORMANCE("rfc9669_lock_add64.data")
5✔
344
TEST_CONFORMANCE("rfc9669_lock_and32.data")
5✔
345
TEST_CONFORMANCE("rfc9669_lock_and64.data")
5✔
346
TEST_CONFORMANCE_RANGE("rfc9669_lock_cmpxchg32.data", "[0, 1]")
7✔
347
TEST_CONFORMANCE_RANGE("rfc9669_lock_cmpxchg64.data", "[0, 1]")
7✔
348
TEST_CONFORMANCE("rfc9669_lock_fetch_add32.data")
5✔
349
TEST_CONFORMANCE("rfc9669_lock_fetch_add64.data")
5✔
350
TEST_CONFORMANCE("rfc9669_lock_or32.data")
5✔
351
TEST_CONFORMANCE("rfc9669_lock_or64.data")
5✔
352
TEST_CONFORMANCE("rfc9669_lock_xchg32.data")
5✔
353
TEST_CONFORMANCE("rfc9669_lock_xchg64.data")
5✔
354
TEST_CONFORMANCE("rfc9669_lock_xor32.data")
5✔
355
TEST_CONFORMANCE("rfc9669_lock_xor64.data")
5✔
356
TEST_CONFORMANCE("rfc9669_lsh32.data")
5✔
357
TEST_CONFORMANCE("rfc9669_lsh64.data")
5✔
358
TEST_CONFORMANCE("rfc9669_mod32.data")
5✔
359
TEST_CONFORMANCE("rfc9669_mod64.data")
5✔
360
TEST_CONFORMANCE("rfc9669_mov32.data")
5✔
361
TEST_CONFORMANCE("rfc9669_mov64.data")
5✔
362
TEST_CONFORMANCE("rfc9669_movsx.data")
5✔
363
TEST_CONFORMANCE("rfc9669_mul32.data")
5✔
364
TEST_CONFORMANCE("rfc9669_mul64.data")
5✔
365
TEST_CONFORMANCE("rfc9669_neg32.data")
5✔
366
TEST_CONFORMANCE("rfc9669_neg64.data")
5✔
367
TEST_CONFORMANCE("rfc9669_or32.data")
5✔
368
TEST_CONFORMANCE("rfc9669_or64.data")
5✔
369
TEST_CONFORMANCE("rfc9669_rsh32.data")
5✔
370
TEST_CONFORMANCE("rfc9669_rsh64.data")
5✔
371
TEST_CONFORMANCE("rfc9669_sdiv32.data")
5✔
372
TEST_CONFORMANCE("rfc9669_sdiv64.data")
5✔
373
TEST_CONFORMANCE("rfc9669_smod32.data")
5✔
374
TEST_CONFORMANCE("rfc9669_smod64.data")
5✔
375
TEST_CONFORMANCE("rfc9669_stb.data")
5✔
376
TEST_CONFORMANCE("rfc9669_stdw.data")
5✔
377
TEST_CONFORMANCE("rfc9669_sth.data")
5✔
378
TEST_CONFORMANCE("rfc9669_stw.data")
5✔
379
TEST_CONFORMANCE("rfc9669_stxb.data")
5✔
380
TEST_CONFORMANCE("rfc9669_stxdw.data")
5✔
381
TEST_CONFORMANCE("rfc9669_stxh.data")
5✔
382
TEST_CONFORMANCE("rfc9669_stxw.data")
5✔
383
TEST_CONFORMANCE("rfc9669_sub32.data")
5✔
384
TEST_CONFORMANCE("rfc9669_sub64.data")
5✔
385
TEST_CONFORMANCE("rfc9669_swap16.data")
5✔
386
TEST_CONFORMANCE("rfc9669_swap32.data")
5✔
387
TEST_CONFORMANCE("rfc9669_swap64.data")
5✔
388
TEST_CONFORMANCE("rfc9669_xor32.data")
5✔
389
TEST_CONFORMANCE("rfc9669_xor64.data")
5✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc