@@ -293,6 +293,64 @@ def _linkopts_test():
293
293
target_under_test = ":linkopts_rust_bin" ,
294
294
)
295
295
296
+ def _check_additional_deps_test_impl (ctx , expect_additional_deps ):
297
+ env = analysistest .begin (ctx )
298
+ tut = analysistest .target_under_test (env )
299
+ action = tut .actions [0 ]
300
+ additional_inputs = [inp .basename for inp in action .inputs .to_list ()]
301
+ asserts .equals (env , "dynamic.lds" in additional_inputs , expect_additional_deps )
302
+ return analysistest .end (env )
303
+
304
+ def _has_additional_deps_test_impl (ctx ):
305
+ return _check_additional_deps_test_impl (ctx , expect_additional_deps = True )
306
+
307
+ def _has_no_additional_deps_test_impl (ctx ):
308
+ return _check_additional_deps_test_impl (ctx , expect_additional_deps = False )
309
+
310
+ has_additional_deps_test = analysistest .make (_has_additional_deps_test_impl )
311
+ has_no_additional_deps_test = analysistest .make (_has_no_additional_deps_test_impl )
312
+
313
+ def _additional_deps_test ():
314
+ rust_binary (
315
+ name = "bin_additional_deps" ,
316
+ srcs = ["bin_using_native_dep.rs" ],
317
+ deps = [":additional_deps_cc" ],
318
+ )
319
+
320
+ rust_shared_library (
321
+ name = "cdylib_additional_deps" ,
322
+ srcs = ["lib_using_native_dep.rs" ],
323
+ deps = [":additional_deps_cc" ],
324
+ )
325
+
326
+ rust_library (
327
+ name = "lib_additional_deps" ,
328
+ srcs = ["lib_using_native_dep.rs" ],
329
+ deps = ["additional_deps_cc" ],
330
+ )
331
+
332
+ cc_library (
333
+ name = "additional_deps_cc" ,
334
+ srcs = ["native_dep.cc" ],
335
+ linkopts = ["-L$(location :dynamic.lds)" ],
336
+ deps = [":dynamic.lds" ],
337
+ )
338
+
339
+ has_additional_deps_test (
340
+ name = "bin_has_additional_deps_test" ,
341
+ target_under_test = ":bin_additional_deps" ,
342
+ )
343
+
344
+ has_additional_deps_test (
345
+ name = "cdylib_has_additional_deps_test" ,
346
+ target_under_test = ":cdylib_additional_deps" ,
347
+ )
348
+
349
+ has_no_additional_deps_test (
350
+ name = "lib_has_no_additional_deps_test" ,
351
+ target_under_test = ":lib_additional_deps" ,
352
+ )
353
+
296
354
def native_deps_test_suite (name ):
297
355
"""Entry-point macro called from the BUILD file.
298
356
@@ -301,6 +359,7 @@ def native_deps_test_suite(name):
301
359
"""
302
360
_native_dep_test ()
303
361
_linkopts_test ()
362
+ _additional_deps_test ()
304
363
305
364
native .test_suite (
306
365
name = name ,
@@ -313,5 +372,8 @@ def native_deps_test_suite(name):
313
372
":bin_has_native_dep_and_alwayslink_test" ,
314
373
":cdylib_has_native_dep_and_alwayslink_test" ,
315
374
":native_linkopts_propagate_test" ,
375
+ ":bin_has_additional_deps_test" ,
376
+ ":cdylib_has_additional_deps_test" ,
377
+ ":lib_has_no_additional_deps_test" ,
316
378
],
317
379
)
0 commit comments