test: group examples into per-category folders
Move examples/*.sx and their expected/ snapshots into per-category subfolders (examples/<category>/...). Folder = leading filename token, with ffi-objc/ffi-jni kept whole; filenames are unchanged. The corpus runner and LSP sweep now discover each category's expected/ dir, while issues/ stays flat. Example 1058's repo-root-relative companion import is made file-relative. Path strings embedded in 164 snapshots were regenerated (path-only changes). Test-layout docs in CLAUDE.md updated.
This commit is contained in:
1
examples/ffi/expected/1200-ffi-callconv-c-callbacks.exit
Normal file
1
examples/ffi/expected/1200-ffi-callconv-c-callbacks.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
abi(.c): 42
|
||||
1
examples/ffi/expected/1201-ffi-callconv-c-globals.exit
Normal file
1
examples/ffi/expected/1201-ffi-callconv-c-globals.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1201-ffi-callconv-c-globals.stderr
Normal file
1
examples/ffi/expected/1201-ffi-callconv-c-globals.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1201-ffi-callconv-c-globals.stdout
Normal file
2
examples/ffi/expected/1201-ffi-callconv-c-globals.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
inline: pw=320, ph=321, frame=1
|
||||
wrapper: pw=640, ph=641, frame=2
|
||||
1
examples/ffi/expected/1202-ffi-cc-c-large-aggregate.exit
Normal file
1
examples/ffi/expected/1202-ffi-cc-c-large-aggregate.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
15982
examples/ffi/expected/1202-ffi-cc-c-large-aggregate.ir
Normal file
15982
examples/ffi/expected/1202-ffi-cc-c-large-aggregate.ir
Normal file
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
1
examples/ffi/expected/1205-ffi-extern-global.exit
Normal file
1
examples/ffi/expected/1205-ffi-extern-global.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1205-ffi-extern-global.stderr
Normal file
1
examples/ffi/expected/1205-ffi-extern-global.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1205-ffi-extern-global.stdout
Normal file
2
examples/ffi/expected/1205-ffi-extern-global.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
stdin extern global non-null: true
|
||||
helper file linked: true
|
||||
1
examples/ffi/expected/1206-ffi-medium-struct.exit
Normal file
1
examples/ffi/expected/1206-ffi-medium-struct.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1206-ffi-medium-struct.stderr
Normal file
1
examples/ffi/expected/1206-ffi-medium-struct.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1206-ffi-medium-struct.stdout
Normal file
2
examples/ffi/expected/1206-ffi-medium-struct.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
swap = (2, 1)
|
||||
ok = true
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
direct non-null = true
|
||||
helper non-null = true
|
||||
eq = true
|
||||
1
examples/ffi/expected/1208-ffi-closure-capture.exit
Normal file
1
examples/ffi/expected/1208-ffi-closure-capture.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1208-ffi-closure-capture.stderr
Normal file
1
examples/ffi/expected/1208-ffi-closure-capture.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1208-ffi-closure-capture.stdout
Normal file
2
examples/ffi/expected/1208-ffi-closure-capture.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
ok (passthrough works) = true
|
||||
ok (passthrough via #objc_call) = true
|
||||
1
examples/ffi/expected/1209-ffi-01-primitives.exit
Normal file
1
examples/ffi/expected/1209-ffi-01-primitives.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1209-ffi-01-primitives.stderr
Normal file
1
examples/ffi/expected/1209-ffi-01-primitives.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
13
examples/ffi/expected/1209-ffi-01-primitives.stdout
Normal file
13
examples/ffi/expected/1209-ffi-01-primitives.stdout
Normal file
@@ -0,0 +1,13 @@
|
||||
ffi_id_int(-42) = -42
|
||||
ffi_id_short(-1234) = -1234
|
||||
ffi_id_i64(huge) = 9000000000000000000
|
||||
ffi_id_uint(0xDEADBEEF) = 3735928559
|
||||
ffi_id_ushort(0xFFFF) = 65535
|
||||
ffi_id_u64(0x7FEE...) = 9218551421072305134
|
||||
ffi_id_schar(127) = 127
|
||||
ffi_id_uchar(255) = 255
|
||||
ffi_id_f32(3.5) = 3.500000
|
||||
ffi_id_f64(1.5) = 1.500000
|
||||
ffi_id_ptr roundtrip = true
|
||||
ffi_add_int(7, 8) = 15
|
||||
ffi_add_double(0.25, 0.75) = 1.000000
|
||||
1
examples/ffi/expected/1210-ffi-02-small-struct.exit
Normal file
1
examples/ffi/expected/1210-ffi-02-small-struct.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1210-ffi-02-small-struct.stderr
Normal file
1
examples/ffi/expected/1210-ffi-02-small-struct.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
12
examples/ffi/expected/1210-ffi-02-small-struct.stdout
Normal file
12
examples/ffi/expected/1210-ffi-02-small-struct.stdout
Normal file
@@ -0,0 +1,12 @@
|
||||
vec2 make = (1.500000, 2.500000)
|
||||
vec2 swap = (2.500000, 1.500000)
|
||||
vec2 sum = 4.000000
|
||||
vec4f make = (1.000000, 2.000000, 3.000000, 4.000000)
|
||||
vec4f rev = (4.000000, 3.000000, 2.000000, 1.000000)
|
||||
vec4f sum = 10.000000
|
||||
pair64 make = (100, 200)
|
||||
pair64 swap = (200, 100)
|
||||
pair64 sum = 300
|
||||
quad32 make = (10, 20, 30, 40)
|
||||
quad32 rev = (40, 30, 20, 10)
|
||||
quad32 sum = 100
|
||||
1
examples/ffi/expected/1211-ffi-03-large-struct.exit
Normal file
1
examples/ffi/expected/1211-ffi-03-large-struct.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1211-ffi-03-large-struct.stderr
Normal file
1
examples/ffi/expected/1211-ffi-03-large-struct.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
6
examples/ffi/expected/1211-ffi-03-large-struct.stdout
Normal file
6
examples/ffi/expected/1211-ffi-03-large-struct.stdout
Normal file
@@ -0,0 +1,6 @@
|
||||
big24 make = (1, 2, 3)
|
||||
big24 rotate = (3, 1, 2)
|
||||
big24 sum = 6
|
||||
big48 make = (10, 20, 30, 40, 50, 60)
|
||||
big48 reverse = (60, 50, 40, 30, 20, 10)
|
||||
big48 sum = 210
|
||||
1
examples/ffi/expected/1212-ffi-04-fp-struct.exit
Normal file
1
examples/ffi/expected/1212-ffi-04-fp-struct.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1212-ffi-04-fp-struct.stderr
Normal file
1
examples/ffi/expected/1212-ffi-04-fp-struct.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
6
examples/ffi/expected/1212-ffi-04-fp-struct.stdout
Normal file
6
examples/ffi/expected/1212-ffi-04-fp-struct.stdout
Normal file
@@ -0,0 +1,6 @@
|
||||
fquad make = (1.000000, 2.000000, 3.000000, 4.000000)
|
||||
fquad rev = (4.000000, 3.000000, 2.000000, 1.000000)
|
||||
fquad sum = 10.000000
|
||||
dquad make = (1.500000, 2.500000, 3.500000, 4.500000)
|
||||
dquad rev = (4.500000, 3.500000, 2.500000, 1.500000)
|
||||
dquad sum = 12.000000
|
||||
1
examples/ffi/expected/1213-ffi-05-string-args.exit
Normal file
1
examples/ffi/expected/1213-ffi-05-string-args.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1213-ffi-05-string-args.stderr
Normal file
1
examples/ffi/expected/1213-ffi-05-string-args.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
7
examples/ffi/expected/1213-ffi-05-string-args.stdout
Normal file
7
examples/ffi/expected/1213-ffi-05-string-args.stdout
Normal file
@@ -0,0 +1,7 @@
|
||||
strlen("hello") = 5
|
||||
first_byte = 104
|
||||
strlen(sx string) = 14
|
||||
sum_bytes([10,20,30,40]) = 100
|
||||
bytes[1] after write = 99
|
||||
static greeting len = 12
|
||||
static greeting [0] = 104
|
||||
1
examples/ffi/expected/1214-ffi-06-callback.exit
Normal file
1
examples/ffi/expected/1214-ffi-06-callback.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1214-ffi-06-callback.stderr
Normal file
1
examples/ffi/expected/1214-ffi-06-callback.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
7
examples/ffi/expected/1214-ffi-06-callback.stdout
Normal file
7
examples/ffi/expected/1214-ffi-06-callback.stdout
Normal file
@@ -0,0 +1,7 @@
|
||||
callback returned = 42
|
||||
hits after first call = 1
|
||||
sum after first call = 21
|
||||
hits after three calls = 3
|
||||
sum after three calls = 39
|
||||
ctx + value = 142
|
||||
hits after ctx callback = 4
|
||||
1
examples/ffi/expected/1215-ffi-07-c-import-block.exit
Normal file
1
examples/ffi/expected/1215-ffi-07-c-import-block.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1215-ffi-07-c-import-block.stderr
Normal file
1
examples/ffi/expected/1215-ffi-07-c-import-block.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1215-ffi-07-c-import-block.stdout
Normal file
2
examples/ffi/expected/1215-ffi-07-c-import-block.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
add(3, 4) = 7
|
||||
mul(6, 7) = 42
|
||||
1
examples/ffi/expected/1216-ffi-08-extern-in-method.exit
Normal file
1
examples/ffi/expected/1216-ffi-08-extern-in-method.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
method next 1 = 10
|
||||
method next 2 = 20
|
||||
protocol = 60
|
||||
closure(5) = 150
|
||||
inline if macos = 70
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
13
examples/ffi/expected/1217-ffi-09-extern-result-chain.stdout
Normal file
13
examples/ffi/expected/1217-ffi-09-extern-result-chain.stdout
Normal file
@@ -0,0 +1,13 @@
|
||||
peek after make = 100
|
||||
bump(+5) = 105
|
||||
bump(+3) = 108
|
||||
peek after bumps = 108
|
||||
ctr label = ctr-a
|
||||
ctr peek = 50
|
||||
ctr after bump = 57
|
||||
list[0] peek = 0
|
||||
list[1] peek = 10
|
||||
list[2] peek = 20
|
||||
list[0] after bump= 1
|
||||
list[1] after bump= 11
|
||||
list[2] after bump= 21
|
||||
1
examples/ffi/expected/1219-ffi-extern.exit
Normal file
1
examples/ffi/expected/1219-ffi-extern.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1219-ffi-extern.stderr
Normal file
1
examples/ffi/expected/1219-ffi-extern.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1219-ffi-extern.stdout
Normal file
2
examples/ffi/expected/1219-ffi-extern.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
=== 15. Extern ===
|
||||
extern-rename: 42
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
pick(10,20,0) = 10
|
||||
pick(10,20,1) = 20
|
||||
sum(10,20) = 30
|
||||
i2(4) bare = 104
|
||||
1
examples/ffi/expected/1221-ffi-cstring-returns.exit
Normal file
1
examples/ffi/expected/1221-ffi-cstring-returns.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1221-ffi-cstring-returns.stderr
Normal file
1
examples/ffi/expected/1221-ffi-cstring-returns.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
3
examples/ffi/expected/1221-ffi-cstring-returns.stdout
Normal file
3
examples/ffi/expected/1221-ffi-cstring-returns.stdout
Normal file
@@ -0,0 +1,3 @@
|
||||
strerror(2) len ok
|
||||
optional non-null ok
|
||||
optional null ok
|
||||
1
examples/ffi/expected/1222-ffi-cstring-type.exit
Normal file
1
examples/ffi/expected/1222-ffi-cstring-type.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1222-ffi-cstring-type.stderr
Normal file
1
examples/ffi/expected/1222-ffi-cstring-type.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
3
examples/ffi/expected/1222-ffi-cstring-type.stdout
Normal file
3
examples/ffi/expected/1222-ffi-cstring-type.stdout
Normal file
@@ -0,0 +1,3 @@
|
||||
strerror ok
|
||||
?cstring ok
|
||||
round trip ok
|
||||
1
examples/ffi/expected/1223-ffi-extern-fn.exit
Normal file
1
examples/ffi/expected/1223-ffi-extern-fn.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1223-ffi-extern-fn.stderr
Normal file
1
examples/ffi/expected/1223-ffi-extern-fn.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1223-ffi-extern-fn.stdout
Normal file
2
examples/ffi/expected/1223-ffi-extern-fn.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
abs(-7) = 7
|
||||
abs(42) = 42
|
||||
1
examples/ffi/expected/1224-ffi-extern-fn-rename.exit
Normal file
1
examples/ffi/expected/1224-ffi-extern-fn-rename.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1224-ffi-extern-fn-rename.stderr
Normal file
1
examples/ffi/expected/1224-ffi-extern-fn-rename.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
examples/ffi/expected/1224-ffi-extern-fn-rename.stdout
Normal file
1
examples/ffi/expected/1224-ffi-extern-fn-rename.stdout
Normal file
@@ -0,0 +1 @@
|
||||
c_abs(-42) = 42
|
||||
1
examples/ffi/expected/1225-ffi-extern-global.exit
Normal file
1
examples/ffi/expected/1225-ffi-extern-global.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1225-ffi-extern-global.stderr
Normal file
1
examples/ffi/expected/1225-ffi-extern-global.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
examples/ffi/expected/1225-ffi-extern-global.stdout
Normal file
1
examples/ffi/expected/1225-ffi-extern-global.stdout
Normal file
@@ -0,0 +1 @@
|
||||
stdin extern global non-null: true
|
||||
1
examples/ffi/expected/1226-ffi-export-fn.build
Normal file
1
examples/ffi/expected/1226-ffi-export-fn.build
Normal file
@@ -0,0 +1 @@
|
||||
{ "aot": true }
|
||||
1
examples/ffi/expected/1226-ffi-export-fn.exit
Normal file
1
examples/ffi/expected/1226-ffi-export-fn.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1226-ffi-export-fn.stderr
Normal file
1
examples/ffi/expected/1226-ffi-export-fn.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
2
examples/ffi/expected/1226-ffi-export-fn.stdout
Normal file
2
examples/ffi/expected/1226-ffi-export-fn.stdout
Normal file
@@ -0,0 +1,2 @@
|
||||
call_sx_square(6) = 37
|
||||
call_sx_square(9) = 82
|
||||
1
examples/ffi/expected/1227-ffi-export-fn-rename.build
Normal file
1
examples/ffi/expected/1227-ffi-export-fn-rename.build
Normal file
@@ -0,0 +1 @@
|
||||
{ "aot": true }
|
||||
1
examples/ffi/expected/1227-ffi-export-fn-rename.exit
Normal file
1
examples/ffi/expected/1227-ffi-export-fn-rename.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1227-ffi-export-fn-rename.stderr
Normal file
1
examples/ffi/expected/1227-ffi-export-fn-rename.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
1
examples/ffi/expected/1227-ffi-export-fn-rename.stdout
Normal file
1
examples/ffi/expected/1227-ffi-export-fn-rename.stdout
Normal file
@@ -0,0 +1 @@
|
||||
call_triple(7) = 22
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,11 @@
|
||||
error: C function 'c_abs_one' not visible; add #import for the module that declares it
|
||||
--> examples/ffi/1228-ffi-extern-c-non-transitive.sx:11:19
|
||||
|
|
||||
11 | print("{}\n", c_abs_one(-3));
|
||||
| ^^^^^^^^^
|
||||
|
||||
error: C function 'c_abs_two' not visible; add #import for the module that declares it
|
||||
--> examples/ffi/1228-ffi-extern-c-non-transitive.sx:12:19
|
||||
|
|
||||
12 | print("{}\n", c_abs_two(-4));
|
||||
| ^^^^^^^^^
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
1
examples/ffi/expected/1229-ffi-extern-cvariadic.exit
Normal file
1
examples/ffi/expected/1229-ffi-extern-cvariadic.exit
Normal file
@@ -0,0 +1 @@
|
||||
0
|
||||
1
examples/ffi/expected/1229-ffi-extern-cvariadic.stderr
Normal file
1
examples/ffi/expected/1229-ffi-extern-cvariadic.stderr
Normal file
@@ -0,0 +1 @@
|
||||
|
||||
4
examples/ffi/expected/1229-ffi-extern-cvariadic.stdout
Normal file
4
examples/ffi/expected/1229-ffi-extern-cvariadic.stdout
Normal file
@@ -0,0 +1,4 @@
|
||||
sum_ints(3, 10, 20, 30) = 60
|
||||
sum_ints(0) = 0
|
||||
avg_doubles(2) = 2.000000
|
||||
avg_doubles(3) = 2.000000
|
||||
@@ -0,0 +1 @@
|
||||
0
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
absval = 7
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
error: extern library 'nosuchunit' is not declared; expected a #library constant or a named '#import c' unit
|
||||
--> examples/ffi/1231-ffi-extern-undeclared-lib.sx:14:1
|
||||
|
|
||||
14 | c_abs :: (n: i32) -> i32 extern nosuchunit "abs";
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
Reference in New Issue
Block a user