@@ -125,8 +125,13 @@ add_test(
125125 -runs=100
126126 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
127127)
128+ string (JOIN ";" TEST_ENVIRONMENT
129+ "LUA_CPATH=${LUA_CPATH} "
130+ "LUA_PATH=${LUA_PATH} "
131+ DISABLE_LUAJIT_METRICS=1
132+ )
128133set_tests_properties (luzer_luajit_without_metrics_test PROPERTIES
129- ENVIRONMENT "LUA_CPATH= ${LUA_CPATH} ;LUA_PATH= ${LUA_PATH} ;DISABLE_LUAJIT_METRICS=1 "
134+ ENVIRONMENT "${TEST_ENVIRONMENT} "
130135 PASS_REGULAR_EXPRESSION "LuaJIT metrics disabled."
131136)
132137
@@ -218,32 +223,74 @@ generate_luac_test(luzer_luac_ubsan
218223 "${TEST_ENV} ;LD_PRELOAD=${UBSAN_DSO_PATH} ;LIB_NAME=luac_ubsan"
219224 "Hello, Lua!"
220225)
226+ string (JOIN ";" TEST_ENVIRONMENT
227+ "${TEST_ENV} "
228+ LD_PRELOAD=${ASAN_DSO_PATH}
229+ LIB_NAME=luac_asan
230+ ERR_INJECTION=HEAP_BUFFER_OVERFLOW
231+ )
221232generate_luac_test (luzer_luac_asan_heap_buffer_overflow
222- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=HEAP_BUFFER_OVERFLOW "
233+ "${TEST_ENVIRONMENT} "
223234 "AddressSanitizer: heap-buffer-overflow"
224235)
236+ string (JOIN ";" TEST_ENVIRONMENT
237+ "${TEST_ENV} "
238+ LD_PRELOAD=${ASAN_DSO_PATH}
239+ LIB_NAME=luac_asan
240+ ERR_INJECTION=STACK_BUFFER_OVERFLOW
241+ )
225242generate_luac_test (luzer_luac_asan_stack_buffer_overflow
226- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=STACK_BUFFER_OVERFLOW "
243+ "${TEST_ENVIRONMENT} "
227244 "AddressSanitizer: stack-buffer-overflow"
228245)
246+ string (JOIN ";" TEST_ENVIRONMENT
247+ "${TEST_ENV} "
248+ LD_PRELOAD=${ASAN_DSO_PATH}
249+ LIB_NAME=luac_asan
250+ ERR_INJECTION=DYNAMIC_STACK_BUFFER_OVERFLOW
251+ )
229252generate_luac_test (luzer_luac_asan_dynamic_stack_buffer_overflow
230- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=DYNAMIC_STACK_BUFFER_OVERFLOW "
253+ "${TEST_ENVIRONMENT} "
231254 "AddressSanitizer: dynamic-stack-buffer-overflow"
232255)
256+ string (JOIN ";" TEST_ENVIRONMENT
257+ "${TEST_ENV} "
258+ LD_PRELOAD=${ASAN_DSO_PATH}
259+ LIB_NAME=luac_asan
260+ ERR_INJECTION=GLOBAL_BUFFER_OVERFLOW
261+ )
233262generate_luac_test (luzer_luac_asan_global_buffer_overflow
234- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=GLOBAL_BUFFER_OVERFLOW "
263+ "${TEST_ENVIRONMENT} "
235264 "AddressSanitizer: global-buffer-overflow"
236265)
266+ string (JOIN ";" TEST_ENVIRONMENT
267+ "${TEST_ENV} "
268+ LD_PRELOAD=${ASAN_DSO_PATH}
269+ LIB_NAME=luac_asan
270+ ERR_INJECTION=MEMCPY_BUFFER_OVERFLOW
271+ )
237272generate_luac_test (luzer_luac_asan_memset_buffer_overflow
238- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=MEMSET_BUFFER_OVERFLOW "
273+ "${TEST_ENVIRONMENT} "
239274 "AddressSanitizer: global-buffer-overflow"
240275)
276+ string (JOIN ";" TEST_ENVIRONMENT
277+ "${TEST_ENV} "
278+ LD_PRELOAD=${ASAN_DSO_PATH}
279+ LIB_NAME=luac_asan
280+ ERR_INJECTION=MEMCPY_BUFFER_OVERFLOW
281+ )
241282generate_luac_test (luzer_luac_asan_memcpy_buffer_overflow
242- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=MEMCPY_BUFFER_OVERFLOW "
283+ "${TEST_ENVIRONMENT} "
243284 "AddressSanitizer: global-buffer-overflow"
244285)
286+ string (JOIN ";" TEST_ENVIRONMENT
287+ "${TEST_ENV} "
288+ LD_PRELOAD=${UBSAN_DSO_PATH}
289+ LIB_NAME=luac_ubsan
290+ ERR_INJECTION=NULL_POINTER_DEREF
291+ )
245292generate_luac_test (luzer_luac_ubsan_null_pointer_deref
246- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;LIB_NAME=luac_ubsan;ERR_INJECTION=NULL_POINTER_DEREF "
293+ "${TEST_ENVIRONMENT} "
247294 "runtime error: load of null pointer of type"
248295)
249296
@@ -285,22 +332,44 @@ if (LUA_HAS_JIT)
285332 "${TEST_ENV} ;FFI_LIB_NAME=testlib.so"
286333 "Done 10 runs in 0 second"
287334 )
335+ string (JOIN ";" TEST_ENVIRONMENT
336+ "${TEST_ENV} "
337+ LD_PRELOAD=${ASAN_DSO_PATH}
338+ FFI_LIB_NAME=testlib_asan.so
339+ )
288340 # XXX: Memory leak in FDP is expected, should be fixed in [1].
289341 # 1. https://github.com/ligurio/luzer/issues/52
290342 generate_ffi_test (luzer_ffi_asan
291- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;FFI_LIB_NAME=testlib_asan.so "
343+ "${TEST_ENVIRONMENT} "
292344 "LeakSanitizer: detected memory leaks"
293345 )
346+ string (JOIN ";" TEST_ENVIRONMENT
347+ "${TEST_ENV} "
348+ LD_PRELOAD=${UBSAN_DSO_PATH}
349+ FFI_LIB_NAME=testlib_ubsan.so
350+ )
294351 generate_ffi_test (luzer_ffi_ubsan
295- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;FFI_LIB_NAME=testlib_ubsan.so "
352+ "${TEST_ENVIRONMENT} "
296353 "Done 10 runs in 0 second"
297354 )
355+ string (JOIN ";" TEST_ENVIRONMENT
356+ "${TEST_ENV} "
357+ LD_PRELOAD=${ASAN_DSO_PATH}
358+ FFI_LIB_NAME=testlib_asan.so
359+ ERR_INJECTION=HEAP_BUFFER_OVERFLOW
360+ )
298361 generate_ffi_test (luzer_ffi_asan_heap_overflow
299- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;FFI_LIB_NAME=testlib_asan.so;ERR_INJECTION=HEAP_BUFFER_OVERFLOW "
362+ "${TEST_ENVIRONMENT} "
300363 "AddressSanitizer: heap-buffer-overflow"
301364 )
365+ string (JOIN ";" TEST_ENVIRONMENT
366+ "${TEST_ENV} "
367+ LD_PRELOAD=${UBSAN_DSO_PATH}
368+ FFI_LIB_NAME=testlib_ubsan.so
369+ ERR_INJECTION=NULL_POINTER_DEREF
370+ )
302371 generate_ffi_test (luzer_ffi_ubsan_null_pointer_deref
303- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;FFI_LIB_NAME=testlib_ubsan.so;ERR_INJECTION=NULL_POINTER_DEREF "
372+ "${TEST_ENVIRONMENT} "
304373 "runtime error: load of null pointer of type"
305374 )
306375endif ()
0 commit comments