1 use test_programs::p3::wasi as wasip3;
2 
3 fn main() {
4     match std::env::args().nth(1).as_deref() {
5         Some("p2-append") => {
6             let fields = wasip2::http::types::Fields::new();
7             for i in 0.. {
8                 if fields.append(&format!("a{i}"), b"a").is_err() {
9                     break;
10                 }
11             }
12         }
13         Some("p2-append-empty") => {
14             let fields = wasip2::http::types::Fields::new();
15             for i in 0.. {
16                 if fields.append(&format!("a{i}"), b"").is_err() {
17                     break;
18                 }
19             }
20         }
21         Some("p2-append-same") => {
22             let fields = wasip2::http::types::Fields::new();
23             loop {
24                 if fields.append("a", b"b").is_err() {
25                     break;
26                 }
27             }
28         }
29         Some("p2-append-same-empty") => {
30             let fields = wasip2::http::types::Fields::new();
31             loop {
32                 if fields.append("a", b"").is_err() {
33                     break;
34                 }
35             }
36         }
37         Some("p3-append") => {
38             let fields = wasip3::http::types::Fields::new();
39             for i in 0.. {
40                 if fields.append(&format!("a{i}"), b"a").is_err() {
41                     println!("error received");
42                     return;
43                 }
44             }
45         }
46         Some("p3-append-empty") => {
47             let fields = wasip3::http::types::Fields::new();
48             for i in 0.. {
49                 if fields.append(&format!("a{i}"), b"").is_err() {
50                     println!("error received");
51                     return;
52                 }
53             }
54         }
55         Some("p3-append-same") => {
56             let fields = wasip3::http::types::Fields::new();
57             loop {
58                 if fields.append("a", b"b").is_err() {
59                     println!("error received");
60                     return;
61                 }
62             }
63         }
64         Some("p3-append-same-empty") => {
65             let fields = wasip3::http::types::Fields::new();
66             loop {
67                 if fields.append("a", b"").is_err() {
68                     println!("error received");
69                     return;
70                 }
71             }
72         }
73         other => panic!("unknown test {other:?}"),
74     }
75 
76     // p2 cases trap before reaching here
77     unreachable!();
78 }
79