github.com/wasilibs/wazerox@v0.0.0-20240124024944-4923be63ab5f/internal/integration_test/spectest/v1/testdata/binary.wast (about) 1 (module binary "\00asm\01\00\00\00") 2 (module binary "\00asm" "\01\00\00\00") 3 (module $M1 binary "\00asm\01\00\00\00") 4 (module $M2 binary "\00asm" "\01\00\00\00") 5 6 (assert_malformed (module binary "") "unexpected end") 7 (assert_malformed (module binary "\01") "unexpected end") 8 (assert_malformed (module binary "\00as") "unexpected end") 9 (assert_malformed (module binary "asm\00") "magic header not detected") 10 (assert_malformed (module binary "msa\00") "magic header not detected") 11 (assert_malformed (module binary "msa\00\01\00\00\00") "magic header not detected") 12 (assert_malformed (module binary "msa\00\00\00\00\01") "magic header not detected") 13 (assert_malformed (module binary "asm\01\00\00\00\00") "magic header not detected") 14 (assert_malformed (module binary "wasm\01\00\00\00") "magic header not detected") 15 (assert_malformed (module binary "\7fasm\01\00\00\00") "magic header not detected") 16 (assert_malformed (module binary "\80asm\01\00\00\00") "magic header not detected") 17 (assert_malformed (module binary "\82asm\01\00\00\00") "magic header not detected") 18 (assert_malformed (module binary "\ffasm\01\00\00\00") "magic header not detected") 19 20 ;; 8-byte endian-reversed. 21 (assert_malformed (module binary "\00\00\00\01msa\00") "magic header not detected") 22 23 ;; Middle-endian byte orderings. 24 (assert_malformed (module binary "a\00ms\00\01\00\00") "magic header not detected") 25 (assert_malformed (module binary "sm\00a\00\00\01\00") "magic header not detected") 26 27 ;; Upper-cased. 28 (assert_malformed (module binary "\00ASM\01\00\00\00") "magic header not detected") 29 30 ;; EBCDIC-encoded magic. 31 (assert_malformed (module binary "\00\81\a2\94\01\00\00\00") "magic header not detected") 32 33 ;; Leading UTF-8 BOM. 34 (assert_malformed (module binary "\ef\bb\bf\00asm\01\00\00\00") "magic header not detected") 35 36 ;; Malformed binary version. 37 (assert_malformed (module binary "\00asm") "unexpected end") 38 (assert_malformed (module binary "\00asm\01") "unexpected end") 39 (assert_malformed (module binary "\00asm\01\00\00") "unexpected end") 40 (assert_malformed (module binary "\00asm\00\00\00\00") "unknown binary version") 41 (assert_malformed (module binary "\00asm\0d\00\00\00") "unknown binary version") 42 (assert_malformed (module binary "\00asm\0e\00\00\00") "unknown binary version") 43 (assert_malformed (module binary "\00asm\00\01\00\00") "unknown binary version") 44 (assert_malformed (module binary "\00asm\00\00\01\00") "unknown binary version") 45 (assert_malformed (module binary "\00asm\00\00\00\01") "unknown binary version") 46 47 48 ;; call_indirect reserved byte equal to zero. 49 (assert_malformed 50 (module binary 51 "\00asm" "\01\00\00\00" 52 "\01\04\01\60\00\00" ;; Type section 53 "\03\02\01\00" ;; Function section 54 "\04\04\01\70\00\00" ;; Table section 55 "\0a\09\01" ;; Code section 56 57 ;; function 0 58 "\07\00" 59 "\41\00" ;; i32.const 0 60 "\11\00" ;; call_indirect (type 0) 61 "\01" ;; call_indirect reserved byte is not equal to zero! 62 "\0b" ;; end 63 ) 64 "zero flag expected" 65 ) 66 67 ;; call_indirect reserved byte should not be a "long" LEB128 zero. 68 (assert_malformed 69 (module binary 70 "\00asm" "\01\00\00\00" 71 "\01\04\01\60\00\00" ;; Type section 72 "\03\02\01\00" ;; Function section 73 "\04\04\01\70\00\00" ;; Table section 74 "\0a\0a\01" ;; Code section 75 76 ;; function 0 77 "\07\00" 78 "\41\00" ;; i32.const 0 79 "\11\00" ;; call_indirect (type 0) 80 "\80\00" ;; call_indirect reserved byte 81 "\0b" ;; end 82 ) 83 "zero flag expected" 84 ) 85 86 ;; Same as above for 3, 4, and 5-byte zero encodings. 87 (assert_malformed 88 (module binary 89 "\00asm" "\01\00\00\00" 90 "\01\04\01\60\00\00" ;; Type section 91 "\03\02\01\00" ;; Function section 92 "\04\04\01\70\00\00" ;; Table section 93 "\0a\0b\01" ;; Code section 94 95 ;; function 0 96 "\08\00" 97 "\41\00" ;; i32.const 0 98 "\11\00" ;; call_indirect (type 0) 99 "\80\80\00" ;; call_indirect reserved byte 100 "\0b" ;; end 101 ) 102 "zero flag expected" 103 ) 104 105 (assert_malformed 106 (module binary 107 "\00asm" "\01\00\00\00" 108 "\01\04\01\60\00\00" ;; Type section 109 "\03\02\01\00" ;; Function section 110 "\04\04\01\70\00\00" ;; Table section 111 "\0a\0c\01" ;; Code section 112 113 ;; function 0 114 "\09\00" 115 "\41\00" ;; i32.const 0 116 "\11\00" ;; call_indirect (type 0) 117 "\80\80\80\00" ;; call_indirect reserved byte 118 "\0b" ;; end 119 ) 120 "zero flag expected" 121 ) 122 123 (assert_malformed 124 (module binary 125 "\00asm" "\01\00\00\00" 126 "\01\04\01\60\00\00" ;; Type section 127 "\03\02\01\00" ;; Function section 128 "\04\04\01\70\00\00" ;; Table section 129 "\0a\0d\01" ;; Code section 130 131 ;; function 0 132 "\0a\00" 133 "\41\00" ;; i32.const 0 134 "\11\00" ;; call_indirect (type 0) 135 "\80\80\80\80\00" ;; call_indirect reserved byte 136 "\0b" ;; end 137 ) 138 "zero flag expected" 139 ) 140 141 ;; memory.grow reserved byte equal to zero. 142 (assert_malformed 143 (module binary 144 "\00asm" "\01\00\00\00" 145 "\01\04\01\60\00\00" ;; Type section 146 "\03\02\01\00" ;; Function section 147 "\05\03\01\00\00" ;; Memory section 148 "\0a\09\01" ;; Code section 149 150 ;; function 0 151 "\07\00" 152 "\41\00" ;; i32.const 0 153 "\40" ;; memory.grow 154 "\01" ;; memory.grow reserved byte is not equal to zero! 155 "\1a" ;; drop 156 "\0b" ;; end 157 ) 158 "zero flag expected" 159 ) 160 161 ;; memory.grow reserved byte should not be a "long" LEB128 zero. 162 (assert_malformed 163 (module binary 164 "\00asm" "\01\00\00\00" 165 "\01\04\01\60\00\00" ;; Type section 166 "\03\02\01\00" ;; Function section 167 "\05\03\01\00\00" ;; Memory section 168 "\0a\0a\01" ;; Code section 169 170 ;; function 0 171 "\08\00" 172 "\41\00" ;; i32.const 0 173 "\40" ;; memory.grow 174 "\80\00" ;; memory.grow reserved byte 175 "\1a" ;; drop 176 "\0b" ;; end 177 ) 178 "zero flag expected" 179 ) 180 181 ;; Same as above for 3, 4, and 5-byte zero encodings. 182 (assert_malformed 183 (module binary 184 "\00asm" "\01\00\00\00" 185 "\01\04\01\60\00\00" ;; Type section 186 "\03\02\01\00" ;; Function section 187 "\05\03\01\00\00" ;; Memory section 188 "\0a\0b\01" ;; Code section 189 190 ;; function 0 191 "\09\00" 192 "\41\00" ;; i32.const 0 193 "\40" ;; memory.grow 194 "\80\80\00" ;; memory.grow reserved byte 195 "\1a" ;; drop 196 "\0b" ;; end 197 ) 198 "zero flag expected" 199 ) 200 201 (assert_malformed 202 (module binary 203 "\00asm" "\01\00\00\00" 204 "\01\04\01\60\00\00" ;; Type section 205 "\03\02\01\00" ;; Function section 206 "\05\03\01\00\00" ;; Memory section 207 "\0a\0c\01" ;; Code section 208 209 ;; function 0 210 "\0a\00" 211 "\41\00" ;; i32.const 0 212 "\40" ;; memory.grow 213 "\80\80\80\00" ;; memory.grow reserved byte 214 "\1a" ;; drop 215 "\0b" ;; end 216 ) 217 "zero flag expected" 218 ) 219 220 (assert_malformed 221 (module binary 222 "\00asm" "\01\00\00\00" 223 "\01\04\01\60\00\00" ;; Type section 224 "\03\02\01\00" ;; Function section 225 "\05\03\01\00\00" ;; Memory section 226 "\0a\0d\01" ;; Code section 227 228 ;; function 0 229 "\0b\00" 230 "\41\00" ;; i32.const 0 231 "\40" ;; memory.grow 232 "\80\80\80\80\00" ;; memory.grow reserved byte 233 "\1a" ;; drop 234 "\0b" ;; end 235 ) 236 "zero flag expected" 237 ) 238 239 ;; memory.size reserved byte equal to zero. 240 (assert_malformed 241 (module binary 242 "\00asm" "\01\00\00\00" 243 "\01\04\01\60\00\00" ;; Type section 244 "\03\02\01\00" ;; Function section 245 "\05\03\01\00\00" ;; Memory section 246 "\0a\07\01" ;; Code section 247 248 ;; function 0 249 "\05\00" 250 "\3f" ;; memory.size 251 "\01" ;; memory.size reserved byte is not equal to zero! 252 "\1a" ;; drop 253 "\0b" ;; end 254 ) 255 "zero flag expected" 256 ) 257 258 ;; memory.size reserved byte should not be a "long" LEB128 zero. 259 (assert_malformed 260 (module binary 261 "\00asm" "\01\00\00\00" 262 "\01\04\01\60\00\00" ;; Type section 263 "\03\02\01\00" ;; Function section 264 "\05\03\01\00\00" ;; Memory section 265 "\0a\08\01" ;; Code section 266 267 ;; function 0 268 "\06\00" 269 "\3f" ;; memory.size 270 "\80\00" ;; memory.size reserved byte 271 "\1a" ;; drop 272 "\0b" ;; end 273 ) 274 "zero flag expected" 275 ) 276 277 ;; Same as above for 3, 4, and 5-byte zero encodings. 278 (assert_malformed 279 (module binary 280 "\00asm" "\01\00\00\00" 281 "\01\04\01\60\00\00" ;; Type section 282 "\03\02\01\00" ;; Function section 283 "\05\03\01\00\00" ;; Memory section 284 "\0a\09\01" ;; Code section 285 286 ;; function 0 287 "\07\00" 288 "\3f" ;; memory.size 289 "\80\80\00" ;; memory.size reserved byte 290 "\1a" ;; drop 291 "\0b" ;; end 292 ) 293 "zero flag expected" 294 ) 295 296 (assert_malformed 297 (module binary 298 "\00asm" "\01\00\00\00" 299 "\01\04\01\60\00\00" ;; Type section 300 "\03\02\01\00" ;; Function section 301 "\05\03\01\00\00" ;; Memory section 302 "\0a\0a\01" ;; Code section 303 304 ;; function 0 305 "\08\00" 306 "\3f" ;; memory.size 307 "\80\80\80\00" ;; memory.size reserved byte 308 "\1a" ;; drop 309 "\0b" ;; end 310 ) 311 "zero flag expected" 312 ) 313 314 (assert_malformed 315 (module binary 316 "\00asm" "\01\00\00\00" 317 "\01\04\01\60\00\00" ;; Type section 318 "\03\02\01\00" ;; Function section 319 "\05\03\01\00\00" ;; Memory section 320 "\0a\0b\01" ;; Code section 321 322 ;; function 0 323 "\09\00" 324 "\3f" ;; memory.size 325 "\80\80\80\80\00" ;; memory.size reserved byte 326 "\1a" ;; drop 327 "\0b" ;; end 328 ) 329 "zero flag expected" 330 ) 331 332 ;; No more than 2^32 locals. 333 (assert_malformed 334 (module binary 335 "\00asm" "\01\00\00\00" 336 "\01\04\01\60\00\00" ;; Type section 337 "\03\02\01\00" ;; Function section 338 "\0a\0c\01" ;; Code section 339 340 ;; function 0 341 "\0a\02" 342 "\ff\ff\ff\ff\0f\7f" ;; 0xFFFFFFFF i32 343 "\02\7e" ;; 0x00000002 i64 344 "\0b" ;; end 345 ) 346 "too many locals" 347 ) 348 349 ;; Local count can be 0. 350 (module binary 351 "\00asm" "\01\00\00\00" 352 "\01\04\01\60\00\00" ;; Type section 353 "\03\02\01\00" ;; Function section 354 "\0a\0a\01" ;; Code section 355 356 ;; function 0 357 "\08\03" 358 "\00\7f" ;; 0 i32 359 "\00\7e" ;; 0 i64 360 "\02\7d" ;; 2 f32 361 "\0b" ;; end 362 ) 363 364 ;; Function section has non-zero count, but code section is absent. 365 (assert_malformed 366 (module binary 367 "\00asm" "\01\00\00\00" 368 "\01\04\01\60\00\00" ;; Type section 369 "\03\03\02\00\00" ;; Function section with 2 functions 370 ) 371 "function and code section have inconsistent lengths" 372 ) 373 374 ;; Code section has non-zero count, but function section is absent. 375 (assert_malformed 376 (module binary 377 "\00asm" "\01\00\00\00" 378 "\0a\04\01\02\00\0b" ;; Code section with 1 empty function 379 ) 380 "function and code section have inconsistent lengths" 381 ) 382 383 ;; Function section count > code section count 384 (assert_malformed 385 (module binary 386 "\00asm" "\01\00\00\00" 387 "\01\04\01\60\00\00" ;; Type section 388 "\03\03\02\00\00" ;; Function section with 2 functions 389 "\0a\04\01\02\00\0b" ;; Code section with 1 empty function 390 ) 391 "function and code section have inconsistent lengths" 392 ) 393 394 ;; Function section count < code section count 395 (assert_malformed 396 (module binary 397 "\00asm" "\01\00\00\00" 398 "\01\04\01\60\00\00" ;; Type section 399 "\03\02\01\00" ;; Function section with 1 function 400 "\0a\07\02\02\00\0b\02\00\0b" ;; Code section with 2 empty functions 401 ) 402 "function and code section have inconsistent lengths" 403 ) 404 405 ;; Function section has zero count, and code section is absent. 406 (module binary 407 "\00asm" "\01\00\00\00" 408 "\03\01\00" ;; Function section with 0 functions 409 ) 410 411 ;; Code section has zero count, and function section is absent. 412 (module binary 413 "\00asm" "\01\00\00\00" 414 "\0a\01\00" ;; Code section with 0 functions 415 ) 416 417 ;; Type count can be zero 418 (module binary 419 "\00asm" "\01\00\00\00" 420 "\01\01\00" ;; type count can be zero 421 ) 422 423 ;; 2 type declared, 1 given 424 (assert_malformed 425 (module binary 426 "\00asm" "\01\00\00\00" 427 "\01\07\02" ;; type section with inconsistent count (2 declared, 1 given) 428 "\60\00\00" ;; 1st type 429 ;; "\60\00\00" ;; 2nd type (missed) 430 ) 431 "unexpected end of section or function" 432 ) 433 434 ;; 1 type declared, 2 given 435 (assert_malformed 436 (module binary 437 "\00asm" "\01\00\00\00" 438 "\01\07\01" ;; type section with inconsistent count (1 declared, 2 given) 439 "\60\00\00" ;; 1st type 440 "\60\00\00" ;; 2nd type (redundant) 441 ) 442 "section size mismatch" 443 ) 444 445 ;; Import count can be zero 446 (module binary 447 "\00asm" "\01\00\00\00" 448 "\01\05\01" ;; type section 449 "\60\01\7f\00" ;; type 0 450 "\02\01\00" ;; import count can be zero 451 ) 452 453 ;; 2 import declared, 1 given 454 (assert_malformed 455 (module binary 456 "\00asm" "\01\00\00\00" 457 "\01\05\01" ;; type section 458 "\60\01\7f\00" ;; type 0 459 "\02\16\02" ;; import section with inconsistent count (2 declared, 1 given) 460 ;; 1st import 461 "\08" ;; string length 462 "\73\70\65\63\74\65\73\74" ;; spectest 463 "\09" ;; string length 464 "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 465 "\00\00" ;; import kind, import signature index 466 ;; 2nd import 467 ;; (missed) 468 ) 469 "unexpected end of section or function" 470 ) 471 472 ;; 1 import declared, 2 given 473 (assert_malformed 474 (module binary 475 "\00asm" "\01\00\00\00" 476 "\01\09\02" ;; type section 477 "\60\01\7f\00" ;; type 0 478 "\60\01\7d\00" ;; type 1 479 "\02\2b\01" ;; import section with inconsistent count (1 declared, 2 given) 480 ;; 1st import 481 "\08" ;; string length 482 "\73\70\65\63\74\65\73\74" ;; spectest 483 "\09" ;; string length 484 "\70\72\69\6e\74\5f\69\33\32" ;; print_i32 485 "\00\00" ;; import kind, import signature index 486 ;; 2nd import 487 ;; (redundant) 488 "\08" ;; string length 489 "\73\70\65\63\74\65\73\74" ;; spectest 490 "\09" ;; string length 491 "\70\72\69\6e\74\5f\66\33\32" ;; print_f32 492 "\00\01" ;; import kind, import signature index 493 ) 494 "section size mismatch" 495 ) 496 497 ;; Table count can be zero 498 (module binary 499 "\00asm" "\01\00\00\00" 500 "\04\01\00" ;; table count can be zero 501 ) 502 503 ;; 1 table declared, 0 given 504 (assert_malformed 505 (module binary 506 "\00asm" "\01\00\00\00" 507 "\04\01\01" ;; table section with inconsistent count (1 declared, 0 given) 508 ;; "\70\01\00\00" ;; table entity 509 ) 510 "unexpected end of section or function" 511 ) 512 513 ;; Memory count can be zero 514 (module binary 515 "\00asm" "\01\00\00\00" 516 "\05\01\00" ;; memory count can be zero 517 ) 518 519 ;; 1 memory declared, 0 given 520 (assert_malformed 521 (module binary 522 "\00asm" "\01\00\00\00" 523 "\05\01\01" ;; memory section with inconsistent count (1 declared, 0 given) 524 ;; "\00\00" ;; memory 0 (missed) 525 ) 526 "unexpected end of section or function" 527 ) 528 529 ;; Global count can be zero 530 (module binary 531 "\00asm" "\01\00\00\00" 532 "\06\01\00" ;; global count can be zero 533 ) 534 535 ;; 2 global declared, 1 given 536 (assert_malformed 537 (module binary 538 "\00asm" "\01\00\00\00" 539 "\06\06\02" ;; global section with inconsistent count (2 declared, 1 given) 540 "\7f\00\41\00\0b" ;; global 0 541 ;; "\7f\00\41\00\0b" ;; global 1 (missed) 542 ) 543 "unexpected end of section or function" 544 ) 545 546 ;; 1 global declared, 2 given 547 (assert_malformed 548 (module binary 549 "\00asm" "\01\00\00\00" 550 "\06\0b\01" ;; global section with inconsistent count (1 declared, 2 given) 551 "\7f\00\41\00\0b" ;; global 0 552 "\7f\00\41\00\0b" ;; global 1 (redundant) 553 ) 554 "section size mismatch" 555 ) 556 557 ;; Export count can be 0 558 (module binary 559 "\00asm" "\01\00\00\00" 560 "\01\04\01" ;; type section 561 "\60\00\00" ;; type 0 562 "\03\03\02\00\00" ;; func section 563 "\07\01\00" ;; export count can be zero 564 "\0a\07\02" ;; code section 565 "\02\00\0b" ;; function body 0 566 "\02\00\0b" ;; function body 1 567 ) 568 569 ;; 2 export declared, 1 given 570 (assert_malformed 571 (module binary 572 "\00asm" "\01\00\00\00" 573 "\01\04\01" ;; type section 574 "\60\00\00" ;; type 0 575 "\03\03\02\00\00" ;; func section 576 "\07\06\02" ;; export section with inconsistent count (2 declared, 1 given) 577 "\02" ;; export 0 578 "\66\31" ;; export name 579 "\00\00" ;; export kind, export func index 580 ;; "\02" ;; export 1 (missed) 581 ;; "\66\32" ;; export name 582 ;; "\00\01" ;; export kind, export func index 583 "\0a\07\02" ;; code section 584 "\02\00\0b" ;; function body 0 585 "\02\00\0b" ;; function body 1 586 ) 587 "unexpected end of section or function" 588 ) 589 590 ;; 1 export declared, 2 given 591 (assert_malformed 592 (module binary 593 "\00asm" "\01\00\00\00" 594 "\01\04\01" ;; type section 595 "\60\00\00" ;; type 0 596 "\03\03\02\00\00" ;; func section 597 "\07\0b\01" ;; export section with inconsistent count (1 declared, 2 given) 598 "\02" ;; export 0 599 "\66\31" ;; export name 600 "\00\00" ;; export kind, export func index 601 "\02" ;; export 1 (redundant) 602 "\66\32" ;; export name 603 "\00\01" ;; export kind, export func index 604 "\0a\07\02" ;; code section 605 "\02\00\0b" ;; function body 0 606 "\02\00\0b" ;; function body 1 607 ) 608 "section size mismatch" 609 ) 610 611 ;; elem segment count can be zero 612 (module binary 613 "\00asm" "\01\00\00\00" 614 "\01\04\01" ;; type section 615 "\60\00\00" ;; type 0 616 "\03\02\01\00" ;; func section 617 "\04\04\01" ;; table section 618 "\70\00\01" ;; table 0 619 "\09\01\00" ;; elem segment count can be zero 620 "\0a\04\01" ;; code section 621 "\02\00\0b" ;; function body 622 ) 623 624 ;; 2 elem segment declared, 1 given 625 (assert_malformed 626 (module binary 627 "\00asm" "\01\00\00\00" 628 "\01\04\01" ;; type section 629 "\60\00\00" ;; type 0 630 "\03\02\01\00" ;; func section 631 "\04\04\01" ;; table section 632 "\70\00\01" ;; table 0 633 "\09\07\02" ;; elem with inconsistent segment count (2 declared, 1 given) 634 "\00\41\00\0b\01\00" ;; elem 0 635 ;; "\00\41\00\0b\01\00" ;; elem 1 (missed) 636 "\0a\04\01" ;; code section 637 "\02\00\0b" ;; function body 638 ) 639 "invalid value type" 640 ) 641 642 ;; 1 elem segment declared, 2 given 643 (assert_malformed 644 (module binary 645 "\00asm" "\01\00\00\00" 646 "\01\04\01" ;; type section 647 "\60\00\00" ;; type 0 648 "\03\02\01\00" ;; func section 649 "\04\04\01" ;; table section 650 "\70\00\01" ;; table 0 651 "\09\0d\01" ;; elem with inconsistent segment count (1 declared, 2 given) 652 "\00\41\00\0b\01\00" ;; elem 0 653 "\00\41\00\0b\01\00" ;; elem 1 (redundant) 654 "\0a\04\01" ;; code section 655 "\02\00\0b" ;; function body 656 ) 657 "section size mismatch" 658 ) 659 660 ;; data segment count can be zero 661 (module binary 662 "\00asm" "\01\00\00\00" 663 "\05\03\01" ;; memory section 664 "\00\01" ;; memory 0 665 "\0b\01\00" ;; data segment count can be zero 666 ) 667 668 ;; 2 data segment declared, 1 given 669 (assert_malformed 670 (module binary 671 "\00asm" "\01\00\00\00" 672 "\05\03\01" ;; memory section 673 "\00\01" ;; memory 0 674 "\0b\07\02" ;; data with inconsistent segment count (2 declared, 1 given) 675 "\00\41\00\0b\01\61" ;; data 0 676 ;; "\00\41\01\0b\01\62" ;; data 1 (missed) 677 ) 678 "unexpected end of section or function" 679 ) 680 681 ;; 1 data segment declared, 2 given 682 (assert_malformed 683 (module binary 684 "\00asm" "\01\00\00\00" 685 "\05\03\01" ;; memory section 686 "\00\01" ;; memory 0 687 "\0b\0d\01" ;; data with inconsistent segment count (1 declared, 2 given) 688 "\00\41\00\0b\01\61" ;; data 0 689 "\00\41\01\0b\01\62" ;; data 1 (redundant) 690 ) 691 "section size mismatch" 692 ) 693 694 ;; data segment has 7 bytes declared, but 6 bytes given 695 (assert_malformed 696 (module binary 697 "\00asm" "\01\00\00\00" 698 "\05\03\01" ;; memory section 699 "\00\01" ;; memory 0 700 "\0b\0c\01" ;; data section 701 "\00\41\03\0b" ;; data segment 0 702 "\07" ;; data segment size with inconsistent lengths (7 declared, 6 given) 703 "\61\62\63\64\65\66" ;; 6 bytes given 704 ) 705 "unexpected end of section or function" 706 ) 707 708 ;; data segment has 5 bytes declared, but 6 bytes given 709 (assert_malformed 710 (module binary 711 "\00asm" "\01\00\00\00" 712 "\05\03\01" ;; memory section 713 "\00\01" ;; memory 0 714 "\0b\0c\01" ;; data section 715 "\00\41\00\0b" ;; data segment 0 716 "\05" ;; data segment size with inconsistent lengths (5 declared, 6 given) 717 "\61\62\63\64\65\66" ;; 6 bytes given 718 ) 719 "section size mismatch" 720 ) 721 722 ;; br_table target count can be zero 723 (module binary 724 "\00asm" "\01\00\00\00" 725 "\01\04\01" ;; type section 726 "\60\00\00" ;; type 0 727 "\03\02\01\00" ;; func section 728 "\0a\11\01" ;; code section 729 "\0f\00" ;; func 0 730 "\02\40" ;; block 0 731 "\41\01" ;; condition of if 0 732 "\04\40" ;; if 0 733 "\41\01" ;; index of br_table element 734 "\0e\00" ;; br_table target count can be zero 735 "\02" ;; break depth for default 736 "\0b\0b\0b" ;; end 737 ) 738 739 ;; 2 br_table target declared, 1 given 740 (assert_malformed 741 (module binary 742 "\00asm" "\01\00\00\00" 743 "\01\04\01" ;; type section 744 "\60\00\00" ;; type 0 745 "\03\02\01\00" ;; func section 746 "\0a\12\01" ;; code section 747 "\10\00" ;; func 0 748 "\02\40" ;; block 0 749 "\41\01" ;; condition of if 0 750 "\04\40" ;; if 0 751 "\41\01" ;; index of br_table element 752 "\0e\02" ;; br_table with inconsistent target count (2 declared, 1 given) 753 "\00" ;; break depth 0 754 ;; "\01" ;; break depth 1 (missed) 755 "\02" ;; break depth for default 756 "\0b\0b\0b" ;; end 757 ) 758 "unexpected end of section or function" 759 ) 760 761 ;; 1 br_table target declared, 2 given 762 (assert_malformed 763 (module binary 764 "\00asm" "\01\00\00\00" 765 "\01\04\01" ;; type section 766 "\60\00\00" ;; type 0 767 "\03\02\01\00" ;; func section 768 "\0a\12\01" ;; code section 769 "\11\00" ;; func 0 770 "\02\40" ;; block 0 771 "\41\01" ;; condition of if 0 772 "\04\40" ;; if 0 773 "\41\01" ;; index of br_table element 774 "\0e\01" ;; br_table with inconsistent target count (1 declared, 2 given) 775 "\00" ;; break depth 0 776 "\01" ;; break depth 1 777 "\02" ;; break depth for default 778 "\0b\0b\0b" ;; end 779 ) 780 "invalid value type" 781 )