diff options
| author | nsfisis <nsfisis@gmail.com> | 2024-04-28 11:02:51 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2024-04-28 17:38:19 +0900 |
| commit | 88a77bc5846541e5d6009bc103da378650a649f3 (patch) | |
| tree | ef4d3a57cc16bf230c3ac25068001f747e45b35e /tests/src/SpecTestsuites/Core/ElemTest.php | |
| parent | c809cd661bba388d531f24c2ac578fbe6594f45c (diff) | |
| download | php-waddiwasi-88a77bc5846541e5d6009bc103da378650a649f3.tar.gz php-waddiwasi-88a77bc5846541e5d6009bc103da378650a649f3.tar.zst php-waddiwasi-88a77bc5846541e5d6009bc103da378650a649f3.zip | |
test: generate PHPUnit classes from WAST files
Diffstat (limited to 'tests/src/SpecTestsuites/Core/ElemTest.php')
| -rw-r--r-- | tests/src/SpecTestsuites/Core/ElemTest.php | 1016 |
1 files changed, 1016 insertions, 0 deletions
diff --git a/tests/src/SpecTestsuites/Core/ElemTest.php b/tests/src/SpecTestsuites/Core/ElemTest.php new file mode 100644 index 0000000..5f84445 --- /dev/null +++ b/tests/src/SpecTestsuites/Core/ElemTest.php @@ -0,0 +1,1016 @@ +<?php + +declare(strict_types=1); + +namespace Nsfisis\Waddiwasi\Tests\SpecTestsuites\Core; + +use Nsfisis\Waddiwasi\Tests\SpecTestsuites\SpecTestsuiteBase; +use PHPUnit\Framework\Attributes\Depends; + +final class ElemTest extends SpecTestsuiteBase +{ + public function testModule0(): void + { + $this->runModuleCommand( + filename: 'elem.0.wasm', + name: null, + line: 4, + ); + } + + #[Depends('testModule0')] + public function testModule1(): void + { + $this->runModuleCommand( + filename: 'elem.1.wasm', + name: null, + line: 80, + ); + } + + #[Depends('testModule1')] + public function testModule2(): void + { + $this->runModuleCommand( + filename: 'elem.2.wasm', + name: null, + line: 90, + ); + } + + #[Depends('testModule2')] + public function testModule3(): void + { + $this->runModuleCommand( + filename: 'elem.3.wasm', + name: null, + line: 95, + ); + } + + #[Depends('testModule3')] + public function testModule4(): void + { + $this->runModuleCommand( + filename: 'elem.4.wasm', + name: null, + line: 101, + ); + } + + #[Depends('testModule4')] + public function testModule5(): void + { + $this->runModuleCommand( + filename: 'elem.5.wasm', + name: null, + line: 110, + ); + } + + #[Depends('testModule5')] + public function testModule6(): void + { + $this->runModuleCommand( + filename: 'elem.6.wasm', + name: null, + line: 120, + ); + } + + #[Depends('testModule6')] + public function testModule7(): void + { + $this->runModuleCommand( + filename: 'elem.7.wasm', + name: null, + line: 127, + ); + } + + #[Depends('testModule7')] + public function testModule8(): void + { + $this->runModuleCommand( + filename: 'elem.8.wasm', + name: null, + line: 134, + ); + } + + #[Depends('testModule8')] + public function testAssertReturn9(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-7', 'args' => []], + expected: [['type' => 'i32', 'value' => '65']], + line: 148, + ); + } + + #[Depends('testAssertReturn9')] + public function testAssertReturn10(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-9', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 149, + ); + } + + #[Depends('testAssertReturn10')] + public function testModule11(): void + { + $this->runModuleCommand( + filename: 'elem.9.wasm', + name: null, + line: 153, + ); + } + + #[Depends('testModule11')] + public function testAssertReturn12(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-7', 'args' => []], + expected: [['type' => 'i32', 'value' => '65']], + line: 167, + ); + } + + #[Depends('testAssertReturn12')] + public function testAssertReturn13(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-9', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 168, + ); + } + + #[Depends('testAssertReturn13')] + public function testAssertInvalid14(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.10.wasm', + text: 'unknown global', + line: 171, + ); + } + + #[Depends('testAssertInvalid14')] + public function testAssertInvalid15(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.11.wasm', + text: 'unknown global', + line: 175, + ); + } + + #[Depends('testAssertInvalid15')] + public function testModule16(): void + { + $this->runModuleCommand( + filename: 'elem.12.wasm', + name: null, + line: 182, + ); + } + + #[Depends('testModule16')] + public function testModule17(): void + { + $this->runModuleCommand( + filename: 'elem.13.wasm', + name: null, + line: 187, + ); + } + + #[Depends('testModule17')] + public function testModule18(): void + { + $this->runModuleCommand( + filename: 'elem.14.wasm', + name: null, + line: 193, + ); + } + + #[Depends('testModule18')] + public function testModule19(): void + { + $this->runModuleCommand( + filename: 'elem.15.wasm', + name: null, + line: 197, + ); + } + + #[Depends('testModule19')] + public function testModule20(): void + { + $this->runModuleCommand( + filename: 'elem.16.wasm', + name: null, + line: 202, + ); + } + + #[Depends('testModule20')] + public function testModule21(): void + { + $this->runModuleCommand( + filename: 'elem.17.wasm', + name: null, + line: 207, + ); + } + + #[Depends('testModule21')] + public function testModule22(): void + { + $this->runModuleCommand( + filename: 'elem.18.wasm', + name: null, + line: 212, + ); + } + + #[Depends('testModule22')] + public function testModule23(): void + { + $this->runModuleCommand( + filename: 'elem.19.wasm', + name: null, + line: 218, + ); + } + + #[Depends('testModule23')] + public function testModule24(): void + { + $this->runModuleCommand( + filename: 'elem.20.wasm', + name: null, + line: 224, + ); + } + + #[Depends('testModule24')] + public function testModule25(): void + { + $this->runModuleCommand( + filename: 'elem.21.wasm', + name: null, + line: 230, + ); + } + + #[Depends('testModule25')] + public function testAssertUninstantiable26(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.22.wasm', + text: 'out of bounds table access', + line: 239, + ); + } + + #[Depends('testAssertUninstantiable26')] + public function testAssertUninstantiable27(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.23.wasm', + text: 'out of bounds table access', + line: 248, + ); + } + + #[Depends('testAssertUninstantiable27')] + public function testAssertUninstantiable28(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.24.wasm', + text: 'out of bounds table access', + line: 257, + ); + } + + #[Depends('testAssertUninstantiable28')] + public function testAssertUninstantiable29(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.25.wasm', + text: 'out of bounds table access', + line: 266, + ); + } + + #[Depends('testAssertUninstantiable29')] + public function testAssertUninstantiable30(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.26.wasm', + text: 'out of bounds table access', + line: 273, + ); + } + + #[Depends('testAssertUninstantiable30')] + public function testAssertUninstantiable31(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.27.wasm', + text: 'out of bounds table access', + line: 281, + ); + } + + #[Depends('testAssertUninstantiable31')] + public function testAssertUninstantiable32(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.28.wasm', + text: 'out of bounds table access', + line: 290, + ); + } + + #[Depends('testAssertUninstantiable32')] + public function testAssertUninstantiable33(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.29.wasm', + text: 'out of bounds table access', + line: 298, + ); + } + + #[Depends('testAssertUninstantiable33')] + public function testAssertUninstantiable34(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.30.wasm', + text: 'out of bounds table access', + line: 307, + ); + } + + #[Depends('testAssertUninstantiable34')] + public function testAssertUninstantiable35(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.31.wasm', + text: 'out of bounds table access', + line: 315, + ); + } + + #[Depends('testAssertUninstantiable35')] + public function testAssertUninstantiable36(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.32.wasm', + text: 'out of bounds table access', + line: 324, + ); + } + + #[Depends('testAssertUninstantiable36')] + public function testAssertUninstantiable37(): void + { + $this->runAssertUninstantiableCommand( + filename: 'elem.33.wasm', + text: 'out of bounds table access', + line: 332, + ); + } + + #[Depends('testAssertUninstantiable37')] + public function testModule38(): void + { + $this->runModuleCommand( + filename: 'elem.34.wasm', + name: null, + line: 342, + ); + } + + #[Depends('testModule38')] + public function testAssertTrap39(): void + { + $this->runAssertTrapCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'init', 'args' => []], + text: 'out of bounds table access', + line: 350, + ); + } + + #[Depends('testAssertTrap39')] + public function testModule40(): void + { + $this->runModuleCommand( + filename: 'elem.35.wasm', + name: null, + line: 352, + ); + } + + #[Depends('testModule40')] + public function testAssertTrap41(): void + { + $this->runAssertTrapCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'init', 'args' => []], + text: 'out of bounds table access', + line: 360, + ); + } + + #[Depends('testAssertTrap41')] + public function testAssertInvalid42(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.36.wasm', + text: 'unknown table', + line: 365, + ); + } + + #[Depends('testAssertInvalid42')] + public function testAssertInvalid43(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.37.wasm', + text: 'type mismatch', + line: 375, + ); + } + + #[Depends('testAssertInvalid43')] + public function testAssertInvalid44(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.38.wasm', + text: 'type mismatch', + line: 383, + ); + } + + #[Depends('testAssertInvalid44')] + public function testAssertInvalid45(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.39.wasm', + text: 'type mismatch', + line: 391, + ); + } + + #[Depends('testAssertInvalid45')] + public function testAssertInvalid46(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.40.wasm', + text: 'type mismatch', + line: 399, + ); + } + + #[Depends('testAssertInvalid46')] + public function testAssertInvalid47(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.41.wasm', + text: 'type mismatch', + line: 407, + ); + } + + #[Depends('testAssertInvalid47')] + public function testAssertInvalid48(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.42.wasm', + text: 'type mismatch', + line: 416, + ); + } + + #[Depends('testAssertInvalid48')] + public function testAssertInvalid49(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.43.wasm', + text: 'constant expression required', + line: 426, + ); + } + + #[Depends('testAssertInvalid49')] + public function testAssertInvalid50(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.44.wasm', + text: 'constant expression required', + line: 434, + ); + } + + #[Depends('testAssertInvalid50')] + public function testAssertInvalid51(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.45.wasm', + text: 'constant expression required', + line: 442, + ); + } + + #[Depends('testAssertInvalid51')] + public function testAssertInvalid52(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.46.wasm', + text: 'constant expression required', + line: 450, + ); + } + + #[Depends('testAssertInvalid52')] + public function testAssertInvalid53(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.47.wasm', + text: 'constant expression required', + line: 458, + ); + } + + #[Depends('testAssertInvalid53')] + public function testAssertInvalid54(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.48.wasm', + text: 'unknown global 0', + line: 467, + ); + } + + #[Depends('testAssertInvalid54')] + public function testAssertInvalid55(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.49.wasm', + text: 'unknown global 1', + line: 475, + ); + } + + #[Depends('testAssertInvalid55')] + public function testAssertInvalid56(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.50.wasm', + text: 'constant expression required', + line: 484, + ); + } + + #[Depends('testAssertInvalid56')] + public function testAssertInvalid57(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.51.wasm', + text: 'type mismatch', + line: 495, + ); + } + + #[Depends('testAssertInvalid57')] + public function testAssertInvalid58(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.52.wasm', + text: 'type mismatch', + line: 503, + ); + } + + #[Depends('testAssertInvalid58')] + public function testAssertInvalid59(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.53.wasm', + text: 'type mismatch', + line: 511, + ); + } + + #[Depends('testAssertInvalid59')] + public function testAssertInvalid60(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.54.wasm', + text: 'type mismatch', + line: 519, + ); + } + + #[Depends('testAssertInvalid60')] + public function testAssertInvalid61(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.55.wasm', + text: 'constant expression required', + line: 527, + ); + } + + #[Depends('testAssertInvalid61')] + public function testModule62(): void + { + $this->runModuleCommand( + filename: 'elem.56.wasm', + name: null, + line: 537, + ); + } + + #[Depends('testModule62')] + public function testAssertReturn63(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-overwritten', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 548, + ); + } + + #[Depends('testAssertReturn63')] + public function testModule64(): void + { + $this->runModuleCommand( + filename: 'elem.57.wasm', + name: null, + line: 550, + ); + } + + #[Depends('testModule64')] + public function testAssertReturn65(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call-overwritten-element', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 561, + ); + } + + #[Depends('testAssertReturn65')] + public function testModule66(): void + { + $this->runModuleCommand( + filename: 'elem.58.wasm', + name: '$module1', + line: 565, + ); + } + + #[Depends('testModule66')] + public function testRegister67(): void + { + $this->runRegisterCommand( + name: '$module1', + as: 'module1', + line: 583, + ); + } + + #[Depends('testRegister67')] + public function testAssertTrap68(): void + { + $this->runAssertTrapCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-7', 'args' => []], + text: 'uninitialized element', + line: 585, + ); + } + + #[Depends('testAssertTrap68')] + public function testAssertReturn69(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-8', 'args' => []], + expected: [['type' => 'i32', 'value' => '65']], + line: 586, + ); + } + + #[Depends('testAssertReturn69')] + public function testAssertReturn70(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-9', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 587, + ); + } + + #[Depends('testAssertReturn70')] + public function testModule71(): void + { + $this->runModuleCommand( + filename: 'elem.59.wasm', + name: '$module2', + line: 589, + ); + } + + #[Depends('testModule71')] + public function testAssertReturn72(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-7', 'args' => []], + expected: [['type' => 'i32', 'value' => '67']], + line: 598, + ); + } + + #[Depends('testAssertReturn72')] + public function testAssertReturn73(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-8', 'args' => []], + expected: [['type' => 'i32', 'value' => '68']], + line: 599, + ); + } + + #[Depends('testAssertReturn73')] + public function testAssertReturn74(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-9', 'args' => []], + expected: [['type' => 'i32', 'value' => '66']], + line: 600, + ); + } + + #[Depends('testAssertReturn74')] + public function testModule75(): void + { + $this->runModuleCommand( + filename: 'elem.60.wasm', + name: '$module3', + line: 602, + ); + } + + #[Depends('testModule75')] + public function testAssertReturn76(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-7', 'args' => []], + expected: [['type' => 'i32', 'value' => '67']], + line: 611, + ); + } + + #[Depends('testAssertReturn76')] + public function testAssertReturn77(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-8', 'args' => []], + expected: [['type' => 'i32', 'value' => '69']], + line: 612, + ); + } + + #[Depends('testAssertReturn77')] + public function testAssertReturn78(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$module1', 'field' => 'call-9', 'args' => []], + expected: [['type' => 'i32', 'value' => '70']], + line: 613, + ); + } + + #[Depends('testAssertReturn78')] + public function testAssertInvalid79(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.61.wasm', + text: 'type mismatch', + line: 618, + ); + } + + #[Depends('testAssertInvalid79')] + public function testAssertInvalid80(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.62.wasm', + text: 'type mismatch', + line: 623, + ); + } + + #[Depends('testAssertInvalid80')] + public function testAssertInvalid81(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.63.wasm', + text: 'type mismatch', + line: 628, + ); + } + + #[Depends('testAssertInvalid81')] + public function testAssertInvalid82(): void + { + $this->runAssertInvalidCommand( + filename: 'elem.64.wasm', + text: 'type mismatch', + line: 637, + ); + } + + #[Depends('testAssertInvalid82')] + public function testModule83(): void + { + $this->runModuleCommand( + filename: 'elem.65.wasm', + name: '$m', + line: 646, + ); + } + + #[Depends('testModule83')] + public function testRegister84(): void + { + $this->runRegisterCommand( + name: '$m', + as: 'exporter', + line: 653, + ); + } + + #[Depends('testRegister84')] + public function testAssertReturn85(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '0']]], + expected: [['type' => 'externref', 'value' => 'null']], + line: 655, + ); + } + + #[Depends('testAssertReturn85')] + public function testAssertReturn86(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '1']]], + expected: [['type' => 'externref', 'value' => 'null']], + line: 656, + ); + } + + #[Depends('testAssertReturn86')] + public function testAssertReturn87(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'set', 'args' => [['type' => 'i32', 'value' => '0'], ['type' => 'externref', 'value' => '42']]], + expected: [], + line: 658, + ); + } + + #[Depends('testAssertReturn87')] + public function testAssertReturn88(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'set', 'args' => [['type' => 'i32', 'value' => '1'], ['type' => 'externref', 'value' => '137']]], + expected: [], + line: 659, + ); + } + + #[Depends('testAssertReturn88')] + public function testAssertReturn89(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '0']]], + expected: [['type' => 'externref', 'value' => '42']], + line: 661, + ); + } + + #[Depends('testAssertReturn89')] + public function testAssertReturn90(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '1']]], + expected: [['type' => 'externref', 'value' => '137']], + line: 662, + ); + } + + #[Depends('testAssertReturn90')] + public function testModule91(): void + { + $this->runModuleCommand( + filename: 'elem.66.wasm', + name: null, + line: 664, + ); + } + + #[Depends('testModule91')] + public function testAssertReturn92(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '0']]], + expected: [['type' => 'externref', 'value' => 'null']], + line: 668, + ); + } + + #[Depends('testAssertReturn92')] + public function testAssertReturn93(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'module' => '$m', 'field' => 'get', 'args' => [['type' => 'i32', 'value' => '1']]], + expected: [['type' => 'externref', 'value' => '137']], + line: 669, + ); + } + + #[Depends('testAssertReturn93')] + public function testModule94(): void + { + $this->runModuleCommand( + filename: 'elem.67.wasm', + name: '$module4', + line: 673, + ); + } + + #[Depends('testModule94')] + public function testRegister95(): void + { + $this->runRegisterCommand( + name: '$module4', + as: 'module4', + line: 680, + ); + } + + #[Depends('testRegister95')] + public function testModule96(): void + { + $this->runModuleCommand( + filename: 'elem.68.wasm', + name: null, + line: 682, + ); + } + + #[Depends('testModule96')] + public function testAssertReturn97(): void + { + $this->runAssertReturnCommand( + module: null, + action: ['type' => 'invoke', 'field' => 'call_imported_elem', 'args' => []], + expected: [['type' => 'i32', 'value' => '42']], + line: 692, + ); + } +} |
