11#![ allow( missing_docs) ] // internal test helper
22
33use std:: collections:: { BTreeMap , BTreeSet } ;
4- use std:: fs;
54
6- fn parse ( path : & str ) -> syn:: File {
7- syn:: parse_file ( & fs:: read_to_string ( path) . expect ( "Could not parse file" ) ) . unwrap ( )
8- }
5+ const SOURCE_FILES : & [ & str ] = & [
6+ include_str ! ( "../../../src/client/session.rs" ) ,
7+ include_str ! ( "../../../src/client/workspace.rs" ) ,
8+ include_str ! ( "../../../src/client/buffer/controller.rs" ) ,
9+ include_str ! ( "../../../src/client/cursor/controller.rs" ) ,
10+ include_str ! ( "../../../src/api/controller.rs" ) ,
11+ ] ;
912
1013// 1) Discover core API from target objects
1114fn discover_core_surface ( files : & [ & str ] , targets : & [ & str ] ) -> BTreeMap < String , BTreeSet < String > > {
@@ -17,7 +20,7 @@ fn discover_core_surface(files: &[&str], targets: &[&str]) -> BTreeMap<String, B
1720 let mut supertraits_to_check: BTreeMap < String , String > = BTreeMap :: new ( ) ;
1821
1922 for file in files {
20- let ast = parse ( file) ;
23+ let ast = syn :: parse_file ( file) . unwrap ( ) ;
2124
2225 for item in ast. items {
2326 match item {
@@ -85,7 +88,7 @@ fn discover_core_surface(files: &[&str], targets: &[&str]) -> BTreeMap<String, B
8588
8689 // second pass to explore also all supertraits
8790 for file in files {
88- let ast = parse ( file) ;
91+ let ast = syn :: parse_file ( file) . unwrap ( ) ;
8992
9093 for item in ast. items {
9194 match item {
@@ -161,33 +164,24 @@ fn missing_lang_coverage(
161164}
162165
163166#[ test]
164- #[ cfg( all( test, feature = "py" ) ) ]
165167fn python_ffi_should_cover_rust_api_surface ( ) {
166168 let targets = & [
167- "Client " ,
169+ "Session " ,
168170 "Workspace" ,
169171 "BufferController" ,
170172 "CursorController" ,
171173 "Controller" ,
172174 ] ;
173175
174- let files = & [
175- "src/client.rs" ,
176- "src/workspace.rs" ,
177- "src/buffer/controller.rs" ,
178- "src/cursor/controller.rs" ,
179- "src/api/controller.rs" ,
180- ] ;
181-
182- let required = discover_core_surface ( files, targets) ;
176+ let required = discover_core_surface ( SOURCE_FILES , targets) ;
183177
184178 let python_src = concat ! (
185- include_str!( "../../ffi/python/client .rs" ) ,
179+ include_str!( "../../ffi/python/session .rs" ) ,
186180 include_str!( "../../ffi/python/workspace.rs" ) ,
187181 include_str!( "../../ffi/python/controllers.rs" ) ,
188182 ) ;
189183
190- let python_ignore = [ "Client .connect" ] ;
184+ let python_ignore = [ "Session .connect" ] ;
191185
192186 let missings = missing_lang_coverage ( "python" , python_src, required, & python_ignore) ;
193187
@@ -204,28 +198,19 @@ fn python_ffi_should_cover_rust_api_surface() {
204198}
205199
206200#[ test]
207- #[ cfg( all( test, feature = "js" ) ) ]
208201fn javascript_ffi_should_cover_rust_api_surface ( ) {
209202 let targets = & [
210- "Client " ,
203+ "Session " ,
211204 "Workspace" ,
212205 "BufferController" ,
213206 "CursorController" ,
214207 "Controller" ,
215208 ] ;
216209
217- let files = & [
218- "src/client.rs" ,
219- "src/workspace.rs" ,
220- "src/buffer/controller.rs" ,
221- "src/cursor/controller.rs" ,
222- "src/api/controller.rs" ,
223- ] ;
224-
225- let required = discover_core_surface ( files, targets) ;
210+ let required = discover_core_surface ( SOURCE_FILES , targets) ;
226211
227212 let js_src = concat ! (
228- include_str!( "../../ffi/js/client .rs" ) ,
213+ include_str!( "../../ffi/js/session .rs" ) ,
229214 include_str!( "../../ffi/js/workspace.rs" ) ,
230215 include_str!( "../../ffi/js/buffer.rs" ) ,
231216 include_str!( "../../ffi/js/cursor.rs" ) ,
@@ -248,34 +233,25 @@ fn javascript_ffi_should_cover_rust_api_surface() {
248233}
249234
250235#[ test]
251- #[ cfg( all( test, feature = "lua" ) ) ]
252236fn lua_ffi_should_cover_rust_api_surface ( ) {
253237 let targets = & [
254- "Client " ,
238+ "Session " ,
255239 "Workspace" ,
256240 "BufferController" ,
257241 "CursorController" ,
258242 "Controller" ,
259243 ] ;
260244
261- let files = & [
262- "src/client.rs" ,
263- "src/workspace.rs" ,
264- "src/buffer/controller.rs" ,
265- "src/cursor/controller.rs" ,
266- "src/api/controller.rs" ,
267- ] ;
268-
269- let required = discover_core_surface ( files, targets) ;
245+ let required = discover_core_surface ( SOURCE_FILES , targets) ;
270246
271247 let lua_src = concat ! (
272- include_str!( "../../ffi/lua/client .rs" ) ,
248+ include_str!( "../../ffi/lua/session .rs" ) ,
273249 include_str!( "../../ffi/lua/workspace.rs" ) ,
274250 include_str!( "../../ffi/lua/buffer.rs" ) ,
275251 include_str!( "../../ffi/lua/cursor.rs" ) ,
276252 ) ;
277253
278- let lua_ignore = [ "Client .connect" ] ;
254+ let lua_ignore = [ "Session .connect" ] ;
279255
280256 let missings = missing_lang_coverage ( "lua" , lua_src, required, & lua_ignore) ;
281257
@@ -292,28 +268,19 @@ fn lua_ffi_should_cover_rust_api_surface() {
292268}
293269
294270#[ test]
295- #[ cfg( all( test, feature = "java" ) ) ]
296271fn java_ffi_should_cover_rust_api_surface ( ) {
297272 let targets = & [
298- "Client " ,
273+ "Session " ,
299274 "Workspace" ,
300275 "BufferController" ,
301276 "CursorController" ,
302277 "Controller" ,
303278 ] ;
304279
305- let files = & [
306- "src/client.rs" ,
307- "src/workspace.rs" ,
308- "src/buffer/controller.rs" ,
309- "src/cursor/controller.rs" ,
310- "src/api/controller.rs" ,
311- ] ;
312-
313- let required = discover_core_surface ( files, targets) ;
280+ let required = discover_core_surface ( SOURCE_FILES , targets) ;
314281
315282 let java_src = concat ! (
316- include_str!( "../../ffi/java/client .rs" ) ,
283+ include_str!( "../../ffi/java/session .rs" ) ,
317284 include_str!( "../../ffi/java/workspace.rs" ) ,
318285 include_str!( "../../ffi/java/buffer.rs" ) ,
319286 include_str!( "../../ffi/java/cursor.rs" ) ,
0 commit comments