@@ -136,5 +136,36 @@ public static int Main()
136
136
string cryptoInitMsg = "MONO_WASM: Initializing Crypto WebWorker" ;
137
137
Assert . DoesNotContain ( cryptoInitMsg , output ) ;
138
138
}
139
+
140
+ [ Theory ]
141
+ [ BuildAndRun ( aot : false ) ]
142
+ [ BuildAndRun ( aot : true ) ]
143
+ public void ProjectWithNativeLibrary ( BuildArgs buildArgs , RunHost host , string id )
144
+ {
145
+ string projectName = $ "AppUsingNativeLibrary-a";
146
+ buildArgs = buildArgs with { ProjectName = projectName } ;
147
+ buildArgs = ExpandBuildArgs ( buildArgs , extraItems : "<NativeLibrary Include=\" native-lib.o\" />\n <NativeLibrary Include=\" DoesNotExist.o\" />" ) ;
148
+
149
+ if ( ! _buildContext . TryGetBuildFor ( buildArgs , out BuildProduct ? _ ) )
150
+ {
151
+ InitPaths ( id ) ;
152
+ if ( Directory . Exists ( _projectDir ) )
153
+ Directory . Delete ( _projectDir , recursive : true ) ;
154
+
155
+ Utils . DirectoryCopy ( Path . Combine ( BuildEnvironment . TestAssetsPath , "AppUsingNativeLib" ) , _projectDir ) ;
156
+ File . Copy ( Path . Combine ( BuildEnvironment . TestAssetsPath , "native-libs" , "native-lib.o" ) , Path . Combine ( _projectDir , "native-lib.o" ) ) ;
157
+ }
158
+
159
+ BuildProject ( buildArgs ,
160
+ id : id ,
161
+ new BuildProjectOptions ( DotnetWasmFromRuntimePack : false ) ) ;
162
+
163
+ string output = RunAndTestWasmApp ( buildArgs , buildDir : _projectDir , expectedExitCode : 0 ,
164
+ test : output => { } ,
165
+ host : host , id : id ) ;
166
+
167
+ Assert . Contains ( "print_line: 100" , output ) ;
168
+ Assert . Contains ( "from pinvoke: 142" , output ) ;
169
+ }
139
170
}
140
171
}
0 commit comments