File tree 3 files changed +47
-1
lines changed
test/cargo_build_script/cc_args_and_env 3 files changed +47
-1
lines changed Original file line number Diff line number Diff line change @@ -192,8 +192,26 @@ def _pwd_flags_isystem(args):
192
192
193
193
return res
194
194
195
+ def _pwd_flags_fsanitize_ignorelist (args ):
196
+ """Prefix execroot-relative paths of known arguments with ${pwd}.
197
+
198
+ Args:
199
+ args (list): List of tool arguments.
200
+
201
+ Returns:
202
+ list: The modified argument list.
203
+ """
204
+ res = []
205
+ for arg in args :
206
+ s , opt , path = arg .partition ("-fsanitize-ignorelist=" )
207
+ if s == "" and not paths .is_absolute (path ):
208
+ res .append ("{}${{pwd}}/{}" .format (opt , path ))
209
+ else :
210
+ res .append (arg )
211
+ return res
212
+
195
213
def _pwd_flags (args ):
196
- return _pwd_flags_isystem (_pwd_flags_sysroot (args ))
214
+ return _pwd_flags_fsanitize_ignorelist ( _pwd_flags_isystem (_pwd_flags_sysroot (args ) ))
197
215
198
216
def _feature_enabled (ctx , feature_name , default = False ):
199
217
"""Check if a feature is enabled.
Original file line number Diff line number Diff line change 1
1
load (
2
2
"cc_args_and_env_test.bzl" ,
3
+ "fsanitize_ignorelist_absolute_test" ,
4
+ "fsanitize_ignorelist_relative_test" ,
3
5
"isystem_absolute_test" ,
4
6
"isystem_relative_test" ,
5
7
"sysroot_absolute_test" ,
@@ -13,3 +15,7 @@ sysroot_absolute_test(name = "sysroot_absolute_test")
13
15
isystem_relative_test (name = "isystem_relative_test" )
14
16
15
17
isystem_absolute_test (name = "isystem_absolute_test" )
18
+
19
+ fsanitize_ignorelist_absolute_test (name = "fsanitize_ignorelist_absolute_test" )
20
+
21
+ fsanitize_ignorelist_relative_test (name = "fsanitize_ignorelist_relative_test" )
Original file line number Diff line number Diff line change @@ -194,3 +194,25 @@ def isystem_absolute_test(name):
194
194
target_under_test = "%s/cargo_build_script" % name ,
195
195
expected_cflags = ["-isystem /test/absolute/path" ],
196
196
)
197
+
198
+ def fsanitize_ignorelist_relative_test (name ):
199
+ cargo_build_script_with_extra_cc_compile_flags (
200
+ name = "%s/cargo_build_script" % name ,
201
+ extra_cc_compile_flags = ["-fsanitize-ignorelist=test/relative/path" ],
202
+ )
203
+ cc_args_and_env_analysis_test (
204
+ name = name ,
205
+ target_under_test = "%s/cargo_build_script" % name ,
206
+ expected_cflags = ["-fsanitize-ignorelist=${pwd}/test/relative/path" ],
207
+ )
208
+
209
+ def fsanitize_ignorelist_absolute_test (name ):
210
+ cargo_build_script_with_extra_cc_compile_flags (
211
+ name = "%s/cargo_build_script" % name ,
212
+ extra_cc_compile_flags = ["-fsanitize-ignorelist=/test/absolute/path" ],
213
+ )
214
+ cc_args_and_env_analysis_test (
215
+ name = name ,
216
+ target_under_test = "%s/cargo_build_script" % name ,
217
+ expected_cflags = ["-fsanitize-ignorelist=/test/absolute/path" ],
218
+ )
You can’t perform that action at this time.
0 commit comments