@@ -135,44 +135,55 @@ suite('Builtins', () => {
135135const bindingsCases = await readdir ( new URL ( './cases' , import . meta. url ) ) ;
136136suite ( 'Bindings' , ( ) => {
137137 for ( const name of bindingsCases ) {
138+ if ( name !== 'http-server' ) {
139+ continue ;
140+ }
141+
138142 test ( name , async ( ) => {
139143 const source = await readFile (
140144 new URL ( `./cases/${ name } /source.js` , import . meta. url ) ,
141- 'utf8'
145+ 'utf8' ,
142146 ) ;
143147
148+ const test = await import ( `./cases/${ name } /test.js` ) ;
149+
150+ // Determine the relevant WIT world to use
144151 let witWorld ,
145152 witPath ,
146153 worldName ,
147154 isWasiTarget = false ;
148- try {
149- witWorld = await readFile (
150- new URL ( `./cases/${ name } /world.wit` , import . meta. url ) ,
151- 'utf8'
152- ) ;
153- } catch ( e ) {
154- if ( e ?. code == 'ENOENT' ) {
155- try {
156- isWasiTarget = true ;
157- witPath = fileURLToPath (
158- new URL ( `./cases/${ name } /wit` , import . meta. url )
159- ) ;
160- await readdir ( witPath ) ;
161- } catch ( e ) {
162- if ( e ?. code === 'ENOENT' ) {
163- witPath = fileURLToPath ( new URL ( './wit' , import . meta. url ) ) ;
164- worldName = 'test2' ;
165- } else {
166- throw e ;
155+ if ( test . worldName ) {
156+ witPath = fileURLToPath ( new URL ( './wit' , import . meta. url ) ) ;
157+ worldName = test . worldName ;
158+ isWasiTarget = true ;
159+ } else {
160+ try {
161+ witWorld = await readFile (
162+ new URL ( `./cases/${ name } /world.wit` , import . meta. url ) ,
163+ 'utf8' ,
164+ ) ;
165+ } catch ( e ) {
166+ if ( e ?. code == 'ENOENT' ) {
167+ try {
168+ isWasiTarget = true ;
169+ witPath = fileURLToPath (
170+ new URL ( `./cases/${ name } /wit` , import . meta. url ) ,
171+ ) ;
172+ await readdir ( witPath ) ;
173+ } catch ( e ) {
174+ if ( e ?. code === 'ENOENT' ) {
175+ witPath = fileURLToPath ( new URL ( './wit' , import . meta. url ) ) ;
176+ worldName = 'test2' ;
177+ } else {
178+ throw e ;
179+ }
167180 }
181+ } else {
182+ throw e ;
168183 }
169- } else {
170- throw e ;
171184 }
172185 }
173186
174- const test = await import ( `./cases/${ name } /test.js` ) ;
175-
176187 const enableFeatures = test . enableFeatures || [ 'http' ] ;
177188 const disableFeatures =
178189 test . disableFeatures ||
@@ -229,14 +240,19 @@ suite('Bindings', () => {
229240
230241 await writeFile (
231242 new URL ( `./output/${ name } .component.wasm` , import . meta. url ) ,
232- component
243+ component ,
244+ ) ;
245+
246+ await writeFile (
247+ new URL ( `/tmp/component.wasm` , import . meta. url ) ,
248+ component ,
233249 ) ;
234250
235251 for ( const file of Object . keys ( files ) ) {
236252 let source = files [ file ] ;
237253 await writeFile (
238254 new URL ( `./output/${ name } /${ file } ` , import . meta. url ) ,
239- source
255+ source ,
240256 ) ;
241257 }
242258
0 commit comments