nx_mcp_sse_gate_t316.nx source
↩ module page · 88 lines · 19712 B
1// nx_mcp_sse_gate_t316.nx -- Tests message stream decoding, HTTP parsing, chunking, and overflow handling in the Nishi sovereign ecosystem.
2import "nx_mcp_sse.nx"
3func mss_test(q:*u8,b:*u8,stream:i64,want:i64,expected:*u8)->i64{
4 let capacity:i64=mr_len(b)+mr_len(expected)+1
5 let out:*u8=sys_mmap(capacity)
6 let rc:i64=mss_decode(q,mr_len(q),b,mr_len(b),stream,out,capacity)
7 if want<0{if rc==want{return 0};return 1}
8 if rc<0{return 1}
9 if mr_equal(out,rc,expected)!=1{return 1}
10 return 0
11}
12func mss_http_test(src:*u8,want:i64)->i64{
13 let n:i64=mr_len(src);let parsed:*i64=nx_http_resp_alloc()
14 if nx_http_response_parse(src,n,parsed)!=NX_HTTP_RESP_OK{return 1}
15 if mss_media_type(src,n,parsed)==want{return 0}
16 return 1
17}
18func mss_chunk_test(src:*u8,expected:*u8,want:i64)->i64{
19 let n:i64=mr_len(src);let out:*u8=sys_mmap(n+1)
20 let rc:i64=nx_http_dechunk(src,n,out,n)
21 if want<0{if rc<0{return 0};return 1}
22 if rc<0{return 1}
23 if mr_equal(out,rc,expected)!=1{return 1}
24 return 0
25}
26func mss_overflow_test()->i64{
27 let q:*u8="{\"id\":1}"
28 let b:*u8="{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":{}}"
29 let out:*u8=sys_mmap(1)
30 if mss_decode(q,mr_len(q),b,mr_len(b),0,out,1)==MSS_OVERFLOW{return 0}
31 return 1
32}
33func main(argc:i64,argv:*i64)->i64{
34 var failures:i64=0
35 // live finite SSE
36 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","event: message\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",1,0,"{\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL live finite SSE\n",21);failures=failures+1}
37 // JSON
38 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}",0,0,"{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL JSON\n",10);failures=failures+1}
39 // CRLF
40 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","event: message\r\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\r\n\r\nevent: message\r\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\r\n\r\n",1,0,"{\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL CRLF\n",10);failures=failures+1}
41 // CR
42 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","event: message\rdata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\r\revent: message\rdata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\r\r",1,0,"{\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL CR\n",8);failures=failures+1}
43 // multiline
44 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\ndata: \"jsonrpc\": \"2.0\",\ndata: \"id\": \"sse-native-qualification\",\ndata: \"result\": {\ndata: \"content\": [\ndata: {\ndata: \"type\": \"text\",\ndata: \"text\": \"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"\ndata: }\ndata: ],\ndata: \"isError\": false,\ndata: \"_meta\": {\ndata: \"exit_code\": 0,\ndata: \"bytes\": 95,\ndata: \"job\": 1789840897,\ndata: \"reservation_elapsed_ms\": 52,\ndata: \"publication_verified\": true\ndata: }\ndata: }\ndata: }\n\n",1,0,"{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL multiline\n",15);failures=failures+1}
45 // BOM comments fields
46 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}",":heartbeat\nretry: 100\nid: cursor\nunknown: field\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",1,0,"{\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL BOM comments fields\n",25);failures=failures+1}
47 // error
48 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"error\":{\"code\":-32601,\"message\":\"missing\"}}\n\n",1,0,"{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"error\":{\"code\":-32601,\"message\":\"missing\"}}\n")!=0{sys_write(1,"FAIL error\n",11);failures=failures+1}
49 // truncated last blank
50 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n",1,-3,"")!=0{sys_write(1,"FAIL truncated last blank\n",26);failures=failures+1}
51 // truncated line
52 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}",1,-3,"")!=0{sys_write(1,"FAIL truncated line\n",20);failures=failures+1}
53 // notifications only
54 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\n",1,-3,"")!=0{sys_write(1,"FAIL notifications only\n",24);failures=failures+1}
55 // duplicate response
56 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",1,-2,"")!=0{sys_write(1,"FAIL duplicate response\n",24);failures=failures+1}
57 // wrong id
58 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {\"jsonrpc\":\"2.0\",\"id\":\"wrong\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",1,-2,"")!=0{sys_write(1,"FAIL wrong id\n",14);failures=failures+1}
59 // invalid JSON
60 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data: {bad}\n\n",1,-1,"")!=0{sys_write(1,"FAIL invalid JSON\n",18);failures=failures+1}
61 // unknown events
62 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","event: unrelated\ndata: not-json\n\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",1,0,"{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n")!=0{sys_write(1,"FAIL unknown events\n",20);failures=failures+1}
63 // bare data field
64 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","data\n\n",1,-1,"")!=0{sys_write(1,"FAIL bare data field\n",21);failures=failures+1}
65 // missing result
66 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\"}",0,-1,"")!=0{sys_write(1,"FAIL missing result\n",20);failures=failures+1}
67 // result and error
68 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{},\"error\":{\"code\":-32601,\"message\":\"missing\"}}",0,-1,"")!=0{sys_write(1,"FAIL result and error\n",22);failures=failures+1}
69 // string integer identity
70 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":1}","{\"jsonrpc\":\"2.0\",\"id\":\"1\",\"result\":{}}",0,-2,"")!=0{sys_write(1,"FAIL string integer identity\n",29);failures=failures+1}
71 // escaped equivalent identity
72 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"a\"}","{\"jsonrpc\":\"2.0\",\"id\":\"\\u0061\",\"result\":{}}",0,0,"{\"jsonrpc\":\"2.0\",\"id\":\"\\u0061\",\"result\":{}}\n")!=0{sys_write(1,"FAIL escaped equivalent identity\n",33);failures=failures+1}
73 // trailing JSON garbage
74 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}} false",0,-1,"")!=0{sys_write(1,"FAIL trailing JSON garbage\n",27);failures=failures+1}
75 // duplicate ID
76 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":\"x\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}",0,-1,"")!=0{sys_write(1,"FAIL duplicate ID\n",18);failures=failures+1}
77 // server request
78 if mss_test("{\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"method\":\"tools/call\",\"params\":{\"name\":\"nx_fs\",\"arguments\":{\"argv\":[\"size\",\"buildroot/knowledge/gates/shared-adoption-t315.json\"]}}}","{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"ping\"}",0,-1,"")!=0{sys_write(1,"FAIL server request\n",20);failures=failures+1}
79 if mss_http_test("HTTP/1.1 200 OK\r\nContent-Type: Text/Event-Stream; charset=utf-8\r\nContent-Length: 0\r\n\r\n",1)!=0{sys_write(1,"FAIL SSE media parameters\n",26);failures=failures+1}
80 if mss_http_test("HTTP/1.1 200 OK\r\nContent-Type: application/json; charset=utf-8\r\nContent-Length: 0\r\n\r\n",0)!=0{sys_write(1,"FAIL JSON media parameters\n",27);failures=failures+1}
81 if mss_http_test("HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n",-1)!=0{sys_write(1,"FAIL missing media\n",19);failures=failures+1}
82 if mss_http_test("HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nContent-Length: 0\r\n\r\n",-1)!=0{sys_write(1,"FAIL unsupported media\n",23);failures=failures+1}
83 if mss_chunk_test("1a9\r\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n\r\n0\r\n\r\n","event: message\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n",0)!=0{sys_write(1,"FAIL chunked SSE\n",17);failures=failures+1}
84 if mss_chunk_test("1a9\r\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"method\":\"notifications/tools/list_changed\"}\n\nevent: message\ndata: {\"jsonrpc\":\"2.0\",\"id\":\"sse-native-qualification\",\"result\":{\"content\":[{\"type\":\"text\",\"text\":\"NX-FS-SIZE buildroot/knowledge/gates/shared-adoption-t315.json bytes=2843 exact=1 read_bytes=0\\n\"}],\"isError\":false,\"_meta\":{\"exit_code\":0,\"bytes\":95,\"job\":1789840897,\"reservation_elapsed_ms\":52,\"publication_verified\":true}}}\n\n\r\n0\r\n","",-1)!=0{sys_write(1,"FAIL truncated chunk trailer\n",29);failures=failures+1}
85 if mss_overflow_test()!=0{sys_write(1,"FAIL overflow\n",14);failures=failures+1}
86 if failures==0{sys_write(1,"MCP SSE gate PASS 29 cases\n",27)}
87 return failures
88}