mirror of
https://github.com/MorizzG/rlox.git
synced 2025-12-06 04:12:42 +00:00
added tests
This commit is contained in:
parent
1cca1494a4
commit
660464638f
255 changed files with 7220 additions and 3 deletions
2351
interpreter/tests/lox/limit/loop_too_large.lox
Normal file
2351
interpreter/tests/lox/limit/loop_too_large.lox
Normal file
File diff suppressed because it is too large
Load diff
36
interpreter/tests/lox/limit/no_reuse_constants.lox
Normal file
36
interpreter/tests/lox/limit/no_reuse_constants.lox
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
fun f() {
|
||||
0; 1; 2; 3; 4; 5; 6; 7;
|
||||
8; 9; 10; 11; 12; 13; 14; 15;
|
||||
16; 17; 18; 19; 20; 21; 22; 23;
|
||||
24; 25; 26; 27; 28; 29; 30; 31;
|
||||
32; 33; 34; 35; 36; 37; 38; 39;
|
||||
40; 41; 42; 43; 44; 45; 46; 47;
|
||||
48; 49; 50; 51; 52; 53; 54; 55;
|
||||
56; 57; 58; 59; 60; 61; 62; 63;
|
||||
64; 65; 66; 67; 68; 69; 70; 71;
|
||||
72; 73; 74; 75; 76; 77; 78; 79;
|
||||
80; 81; 82; 83; 84; 85; 86; 87;
|
||||
88; 89; 90; 91; 92; 93; 94; 95;
|
||||
96; 97; 98; 99; 100; 101; 102; 103;
|
||||
104; 105; 106; 107; 108; 109; 110; 111;
|
||||
112; 113; 114; 115; 116; 117; 118; 119;
|
||||
120; 121; 122; 123; 124; 125; 126; 127;
|
||||
128; 129; 130; 131; 132; 133; 134; 135;
|
||||
136; 137; 138; 139; 140; 141; 142; 143;
|
||||
144; 145; 146; 147; 148; 149; 150; 151;
|
||||
152; 153; 154; 155; 156; 157; 158; 159;
|
||||
160; 161; 162; 163; 164; 165; 166; 167;
|
||||
168; 169; 170; 171; 172; 173; 174; 175;
|
||||
176; 177; 178; 179; 180; 181; 182; 183;
|
||||
184; 185; 186; 187; 188; 189; 190; 191;
|
||||
192; 193; 194; 195; 196; 197; 198; 199;
|
||||
200; 201; 202; 203; 204; 205; 206; 207;
|
||||
208; 209; 210; 211; 212; 213; 214; 215;
|
||||
216; 217; 218; 219; 220; 221; 222; 223;
|
||||
224; 225; 226; 227; 228; 229; 230; 231;
|
||||
232; 233; 234; 235; 236; 237; 238; 239;
|
||||
240; 241; 242; 243; 244; 245; 246; 247;
|
||||
248; 249; 250; 251; 252; 253; 254; 255;
|
||||
|
||||
1; // Error at '1': Too many constants in one chunk.
|
||||
}
|
||||
21
interpreter/tests/lox/limit/stack_overflow.lox
Normal file
21
interpreter/tests/lox/limit/stack_overflow.lox
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
fun foo() {
|
||||
var a1;
|
||||
var a2;
|
||||
var a3;
|
||||
var a4;
|
||||
var a5;
|
||||
var a6;
|
||||
var a7;
|
||||
var a8;
|
||||
var a9;
|
||||
var a10;
|
||||
var a11;
|
||||
var a12;
|
||||
var a13;
|
||||
var a14;
|
||||
var a15;
|
||||
var a16;
|
||||
foo(); // expect runtime error: Stack overflow.
|
||||
}
|
||||
|
||||
foo();
|
||||
36
interpreter/tests/lox/limit/too_many_constants.lox
Normal file
36
interpreter/tests/lox/limit/too_many_constants.lox
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
fun f() {
|
||||
0; 1; 2; 3; 4; 5; 6; 7;
|
||||
8; 9; 10; 11; 12; 13; 14; 15;
|
||||
16; 17; 18; 19; 20; 21; 22; 23;
|
||||
24; 25; 26; 27; 28; 29; 30; 31;
|
||||
32; 33; 34; 35; 36; 37; 38; 39;
|
||||
40; 41; 42; 43; 44; 45; 46; 47;
|
||||
48; 49; 50; 51; 52; 53; 54; 55;
|
||||
56; 57; 58; 59; 60; 61; 62; 63;
|
||||
64; 65; 66; 67; 68; 69; 70; 71;
|
||||
72; 73; 74; 75; 76; 77; 78; 79;
|
||||
80; 81; 82; 83; 84; 85; 86; 87;
|
||||
88; 89; 90; 91; 92; 93; 94; 95;
|
||||
96; 97; 98; 99; 100; 101; 102; 103;
|
||||
104; 105; 106; 107; 108; 109; 110; 111;
|
||||
112; 113; 114; 115; 116; 117; 118; 119;
|
||||
120; 121; 122; 123; 124; 125; 126; 127;
|
||||
128; 129; 130; 131; 132; 133; 134; 135;
|
||||
136; 137; 138; 139; 140; 141; 142; 143;
|
||||
144; 145; 146; 147; 148; 149; 150; 151;
|
||||
152; 153; 154; 155; 156; 157; 158; 159;
|
||||
160; 161; 162; 163; 164; 165; 166; 167;
|
||||
168; 169; 170; 171; 172; 173; 174; 175;
|
||||
176; 177; 178; 179; 180; 181; 182; 183;
|
||||
184; 185; 186; 187; 188; 189; 190; 191;
|
||||
192; 193; 194; 195; 196; 197; 198; 199;
|
||||
200; 201; 202; 203; 204; 205; 206; 207;
|
||||
208; 209; 210; 211; 212; 213; 214; 215;
|
||||
216; 217; 218; 219; 220; 221; 222; 223;
|
||||
224; 225; 226; 227; 228; 229; 230; 231;
|
||||
232; 233; 234; 235; 236; 237; 238; 239;
|
||||
240; 241; 242; 243; 244; 245; 246; 247;
|
||||
248; 249; 250; 251; 252; 253; 254; 255;
|
||||
|
||||
"oops"; // Error at '"oops"': Too many constants in one chunk.
|
||||
}
|
||||
53
interpreter/tests/lox/limit/too_many_locals.lox
Normal file
53
interpreter/tests/lox/limit/too_many_locals.lox
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
fun f() {
|
||||
// var v00; First slot already taken.
|
||||
|
||||
var v01; var v02; var v03; var v04; var v05; var v06; var v07;
|
||||
var v08; var v09; var v0a; var v0b; var v0c; var v0d; var v0e; var v0f;
|
||||
|
||||
var v10; var v11; var v12; var v13; var v14; var v15; var v16; var v17;
|
||||
var v18; var v19; var v1a; var v1b; var v1c; var v1d; var v1e; var v1f;
|
||||
|
||||
var v20; var v21; var v22; var v23; var v24; var v25; var v26; var v27;
|
||||
var v28; var v29; var v2a; var v2b; var v2c; var v2d; var v2e; var v2f;
|
||||
|
||||
var v30; var v31; var v32; var v33; var v34; var v35; var v36; var v37;
|
||||
var v38; var v39; var v3a; var v3b; var v3c; var v3d; var v3e; var v3f;
|
||||
|
||||
var v40; var v41; var v42; var v43; var v44; var v45; var v46; var v47;
|
||||
var v48; var v49; var v4a; var v4b; var v4c; var v4d; var v4e; var v4f;
|
||||
|
||||
var v50; var v51; var v52; var v53; var v54; var v55; var v56; var v57;
|
||||
var v58; var v59; var v5a; var v5b; var v5c; var v5d; var v5e; var v5f;
|
||||
|
||||
var v60; var v61; var v62; var v63; var v64; var v65; var v66; var v67;
|
||||
var v68; var v69; var v6a; var v6b; var v6c; var v6d; var v6e; var v6f;
|
||||
|
||||
var v70; var v71; var v72; var v73; var v74; var v75; var v76; var v77;
|
||||
var v78; var v79; var v7a; var v7b; var v7c; var v7d; var v7e; var v7f;
|
||||
|
||||
var v80; var v81; var v82; var v83; var v84; var v85; var v86; var v87;
|
||||
var v88; var v89; var v8a; var v8b; var v8c; var v8d; var v8e; var v8f;
|
||||
|
||||
var v90; var v91; var v92; var v93; var v94; var v95; var v96; var v97;
|
||||
var v98; var v99; var v9a; var v9b; var v9c; var v9d; var v9e; var v9f;
|
||||
|
||||
var va0; var va1; var va2; var va3; var va4; var va5; var va6; var va7;
|
||||
var va8; var va9; var vaa; var vab; var vac; var vad; var vae; var vaf;
|
||||
|
||||
var vb0; var vb1; var vb2; var vb3; var vb4; var vb5; var vb6; var vb7;
|
||||
var vb8; var vb9; var vba; var vbb; var vbc; var vbd; var vbe; var vbf;
|
||||
|
||||
var vc0; var vc1; var vc2; var vc3; var vc4; var vc5; var vc6; var vc7;
|
||||
var vc8; var vc9; var vca; var vcb; var vcc; var vcd; var vce; var vcf;
|
||||
|
||||
var vd0; var vd1; var vd2; var vd3; var vd4; var vd5; var vd6; var vd7;
|
||||
var vd8; var vd9; var vda; var vdb; var vdc; var vdd; var vde; var vdf;
|
||||
|
||||
var ve0; var ve1; var ve2; var ve3; var ve4; var ve5; var ve6; var ve7;
|
||||
var ve8; var ve9; var vea; var veb; var vec; var ved; var vee; var vef;
|
||||
|
||||
var vf0; var vf1; var vf2; var vf3; var vf4; var vf5; var vf6; var vf7;
|
||||
var vf8; var vf9; var vfa; var vfb; var vfc; var vfd; var vfe; var vff;
|
||||
|
||||
var oops; // Error at 'oops': Too many local variables in function.
|
||||
}
|
||||
105
interpreter/tests/lox/limit/too_many_upvalues.lox
Normal file
105
interpreter/tests/lox/limit/too_many_upvalues.lox
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
fun f() {
|
||||
var v00; var v01; var v02; var v03; var v04; var v05; var v06; var v07;
|
||||
var v08; var v09; var v0a; var v0b; var v0c; var v0d; var v0e; var v0f;
|
||||
|
||||
var v10; var v11; var v12; var v13; var v14; var v15; var v16; var v17;
|
||||
var v18; var v19; var v1a; var v1b; var v1c; var v1d; var v1e; var v1f;
|
||||
|
||||
var v20; var v21; var v22; var v23; var v24; var v25; var v26; var v27;
|
||||
var v28; var v29; var v2a; var v2b; var v2c; var v2d; var v2e; var v2f;
|
||||
|
||||
var v30; var v31; var v32; var v33; var v34; var v35; var v36; var v37;
|
||||
var v38; var v39; var v3a; var v3b; var v3c; var v3d; var v3e; var v3f;
|
||||
|
||||
var v40; var v41; var v42; var v43; var v44; var v45; var v46; var v47;
|
||||
var v48; var v49; var v4a; var v4b; var v4c; var v4d; var v4e; var v4f;
|
||||
|
||||
var v50; var v51; var v52; var v53; var v54; var v55; var v56; var v57;
|
||||
var v58; var v59; var v5a; var v5b; var v5c; var v5d; var v5e; var v5f;
|
||||
|
||||
var v60; var v61; var v62; var v63; var v64; var v65; var v66; var v67;
|
||||
var v68; var v69; var v6a; var v6b; var v6c; var v6d; var v6e; var v6f;
|
||||
|
||||
var v70; var v71; var v72; var v73; var v74; var v75; var v76; var v77;
|
||||
var v78; var v79; var v7a; var v7b; var v7c; var v7d; var v7e; var v7f;
|
||||
|
||||
fun g() {
|
||||
var v80; var v81; var v82; var v83; var v84; var v85; var v86; var v87;
|
||||
var v88; var v89; var v8a; var v8b; var v8c; var v8d; var v8e; var v8f;
|
||||
|
||||
var v90; var v91; var v92; var v93; var v94; var v95; var v96; var v97;
|
||||
var v98; var v99; var v9a; var v9b; var v9c; var v9d; var v9e; var v9f;
|
||||
|
||||
var va0; var va1; var va2; var va3; var va4; var va5; var va6; var va7;
|
||||
var va8; var va9; var vaa; var vab; var vac; var vad; var vae; var vaf;
|
||||
|
||||
var vb0; var vb1; var vb2; var vb3; var vb4; var vb5; var vb6; var vb7;
|
||||
var vb8; var vb9; var vba; var vbb; var vbc; var vbd; var vbe; var vbf;
|
||||
|
||||
var vc0; var vc1; var vc2; var vc3; var vc4; var vc5; var vc6; var vc7;
|
||||
var vc8; var vc9; var vca; var vcb; var vcc; var vcd; var vce; var vcf;
|
||||
|
||||
var vd0; var vd1; var vd2; var vd3; var vd4; var vd5; var vd6; var vd7;
|
||||
var vd8; var vd9; var vda; var vdb; var vdc; var vdd; var vde; var vdf;
|
||||
|
||||
var ve0; var ve1; var ve2; var ve3; var ve4; var ve5; var ve6; var ve7;
|
||||
var ve8; var ve9; var vea; var veb; var vec; var ved; var vee; var vef;
|
||||
|
||||
var vf0; var vf1; var vf2; var vf3; var vf4; var vf5; var vf6; var vf7;
|
||||
var vf8; var vf9; var vfa; var vfb; var vfc; var vfd; var vfe; var vff;
|
||||
|
||||
var oops;
|
||||
|
||||
fun h() {
|
||||
v00; v01; v02; v03; v04; v05; v06; v07;
|
||||
v08; v09; v0a; v0b; v0c; v0d; v0e; v0f;
|
||||
|
||||
v10; v11; v12; v13; v14; v15; v16; v17;
|
||||
v18; v19; v1a; v1b; v1c; v1d; v1e; v1f;
|
||||
|
||||
v20; v21; v22; v23; v24; v25; v26; v27;
|
||||
v28; v29; v2a; v2b; v2c; v2d; v2e; v2f;
|
||||
|
||||
v30; v31; v32; v33; v34; v35; v36; v37;
|
||||
v38; v39; v3a; v3b; v3c; v3d; v3e; v3f;
|
||||
|
||||
v40; v41; v42; v43; v44; v45; v46; v47;
|
||||
v48; v49; v4a; v4b; v4c; v4d; v4e; v4f;
|
||||
|
||||
v50; v51; v52; v53; v54; v55; v56; v57;
|
||||
v58; v59; v5a; v5b; v5c; v5d; v5e; v5f;
|
||||
|
||||
v60; v61; v62; v63; v64; v65; v66; v67;
|
||||
v68; v69; v6a; v6b; v6c; v6d; v6e; v6f;
|
||||
|
||||
v70; v71; v72; v73; v74; v75; v76; v77;
|
||||
v78; v79; v7a; v7b; v7c; v7d; v7e; v7f;
|
||||
|
||||
v80; v81; v82; v83; v84; v85; v86; v87;
|
||||
v88; v89; v8a; v8b; v8c; v8d; v8e; v8f;
|
||||
|
||||
v90; v91; v92; v93; v94; v95; v96; v97;
|
||||
v98; v99; v9a; v9b; v9c; v9d; v9e; v9f;
|
||||
|
||||
va0; va1; va2; va3; va4; va5; va6; va7;
|
||||
va8; va9; vaa; vab; vac; vad; vae; vaf;
|
||||
|
||||
vb0; vb1; vb2; vb3; vb4; vb5; vb6; vb7;
|
||||
vb8; vb9; vba; vbb; vbc; vbd; vbe; vbf;
|
||||
|
||||
vc0; vc1; vc2; vc3; vc4; vc5; vc6; vc7;
|
||||
vc8; vc9; vca; vcb; vcc; vcd; vce; vcf;
|
||||
|
||||
vd0; vd1; vd2; vd3; vd4; vd5; vd6; vd7;
|
||||
vd8; vd9; vda; vdb; vdc; vdd; vde; vdf;
|
||||
|
||||
ve0; ve1; ve2; ve3; ve4; ve5; ve6; ve7;
|
||||
ve8; ve9; vea; veb; vec; ved; vee; vef;
|
||||
|
||||
vf0; vf1; vf2; vf3; vf4; vf5; vf6; vf7;
|
||||
vf8; vf9; vfa; vfb; vfc; vfd; vfe; vff;
|
||||
|
||||
oops; // Error at 'oops': Too many closure variables in function.
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue