@@ -135,8 +135,13 @@ add_test(
135135 -runs=100
136136 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
137137)
138+ string (JOIN ";" TEST_ENVIRONMENT
139+ "LUA_CPATH=${LUA_CPATH} "
140+ "LUA_PATH=${LUA_PATH} "
141+ DISABLE_LUAJIT_METRICS=1
142+ )
138143set_tests_properties (luzer_luajit_without_metrics_test PROPERTIES
139- ENVIRONMENT "LUA_CPATH= ${LUA_CPATH} ;LUA_PATH= ${LUA_PATH} ;DISABLE_LUAJIT_METRICS=1 "
144+ ENVIRONMENT "${TEST_ENVIRONMENT} "
140145 PASS_REGULAR_EXPRESSION "LuaJIT metrics disabled."
141146)
142147
@@ -228,32 +233,74 @@ generate_luac_test(luzer_luac_ubsan
228233 "${TEST_ENV} ;LD_PRELOAD=${UBSAN_DSO_PATH} ;LIB_NAME=luac_ubsan"
229234 "Hello, Lua!"
230235)
236+ string (JOIN ";" TEST_ENVIRONMENT
237+ "${TEST_ENV} "
238+ LD_PRELOAD=${ASAN_DSO_PATH}
239+ LIB_NAME=luac_asan
240+ ERR_INJECTION=HEAP_BUFFER_OVERFLOW
241+ )
231242generate_luac_test (luzer_luac_asan_heap_buffer_overflow
232- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=HEAP_BUFFER_OVERFLOW "
243+ "${TEST_ENVIRONMENT} "
233244 "AddressSanitizer: heap-buffer-overflow"
234245)
246+ string (JOIN ";" TEST_ENVIRONMENT
247+ "${TEST_ENV} "
248+ LD_PRELOAD=${ASAN_DSO_PATH}
249+ LIB_NAME=luac_asan
250+ ERR_INJECTION=STACK_BUFFER_OVERFLOW
251+ )
235252generate_luac_test (luzer_luac_asan_stack_buffer_overflow
236- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=STACK_BUFFER_OVERFLOW "
253+ "${TEST_ENVIRONMENT} "
237254 "AddressSanitizer: stack-buffer-overflow"
238255)
256+ string (JOIN ";" TEST_ENVIRONMENT
257+ "${TEST_ENV} "
258+ LD_PRELOAD=${ASAN_DSO_PATH}
259+ LIB_NAME=luac_asan
260+ ERR_INJECTION=DYNAMIC_STACK_BUFFER_OVERFLOW
261+ )
239262generate_luac_test (luzer_luac_asan_dynamic_stack_buffer_overflow
240- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=DYNAMIC_STACK_BUFFER_OVERFLOW "
263+ "${TEST_ENVIRONMENT} "
241264 "AddressSanitizer: dynamic-stack-buffer-overflow"
242265)
266+ string (JOIN ";" TEST_ENVIRONMENT
267+ "${TEST_ENV} "
268+ LD_PRELOAD=${ASAN_DSO_PATH}
269+ LIB_NAME=luac_asan
270+ ERR_INJECTION=GLOBAL_BUFFER_OVERFLOW
271+ )
243272generate_luac_test (luzer_luac_asan_global_buffer_overflow
244- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=GLOBAL_BUFFER_OVERFLOW "
273+ "${TEST_ENVIRONMENT} "
245274 "AddressSanitizer: global-buffer-overflow"
246275)
276+ string (JOIN ";" TEST_ENVIRONMENT
277+ "${TEST_ENV} "
278+ LD_PRELOAD=${ASAN_DSO_PATH}
279+ LIB_NAME=luac_asan
280+ ERR_INJECTION=MEMSET_BUFFER_OVERFLOW
281+ )
247282generate_luac_test (luzer_luac_asan_memset_buffer_overflow
248- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=MEMSET_BUFFER_OVERFLOW "
283+ "${TEST_ENVIRONMENT} "
249284 "AddressSanitizer: global-buffer-overflow"
250285)
286+ string (JOIN ";" TEST_ENVIRONMENT
287+ "${TEST_ENV} "
288+ LD_PRELOAD=${ASAN_DSO_PATH}
289+ LIB_NAME=luac_asan
290+ ERR_INJECTION=MEMCPY_BUFFER_OVERFLOW
291+ )
251292generate_luac_test (luzer_luac_asan_memcpy_buffer_overflow
252- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;LIB_NAME=luac_asan;ERR_INJECTION=MEMCPY_BUFFER_OVERFLOW "
293+ "${TEST_ENVIRONMENT} "
253294 "AddressSanitizer: global-buffer-overflow"
254295)
296+ string (JOIN ";" TEST_ENVIRONMENT
297+ "${TEST_ENV} "
298+ LD_PRELOAD=${UBSAN_DSO_PATH}
299+ LIB_NAME=luac_ubsan
300+ ERR_INJECTION=NULL_POINTER_DEREF
301+ )
255302generate_luac_test (luzer_luac_ubsan_null_pointer_deref
256- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;LIB_NAME=luac_ubsan;ERR_INJECTION=NULL_POINTER_DEREF "
303+ "${TEST_ENVIRONMENT} "
257304 "runtime error: load of null pointer of type"
258305)
259306
@@ -295,22 +342,44 @@ if (LUA_HAS_JIT)
295342 "${TEST_ENV} ;FFI_LIB_NAME=testlib.so"
296343 "Done 10 runs in 0 second"
297344 )
345+ string (JOIN ";" TEST_ENVIRONMENT
346+ "${TEST_ENV} "
347+ LD_PRELOAD=${ASAN_DSO_PATH}
348+ FFI_LIB_NAME=testlib_asan.so
349+ )
298350 # XXX: Memory leak in FDP is expected, should be fixed in [1].
299351 # 1. https://github.com/ligurio/luzer/issues/52
300352 generate_ffi_test (luzer_ffi_asan
301- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;FFI_LIB_NAME=testlib_asan.so "
353+ "${TEST_ENVIRONMENT} "
302354 "LeakSanitizer: detected memory leaks"
303355 )
356+ string (JOIN ";" TEST_ENVIRONMENT
357+ "${TEST_ENV} "
358+ LD_PRELOAD=${UBSAN_DSO_PATH}
359+ FFI_LIB_NAME=testlib_ubsan.so
360+ )
304361 generate_ffi_test (luzer_ffi_ubsan
305- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;FFI_LIB_NAME=testlib_ubsan.so "
362+ "${TEST_ENVIRONMENT} "
306363 "Done 10 runs in 0 second"
307364 )
365+ string (JOIN ";" TEST_ENVIRONMENT
366+ "${TEST_ENV} "
367+ LD_PRELOAD=${ASAN_DSO_PATH}
368+ FFI_LIB_NAME=testlib_asan.so
369+ ERR_INJECTION=HEAP_BUFFER_OVERFLOW
370+ )
308371 generate_ffi_test (luzer_ffi_asan_heap_overflow
309- "${TEST_ENV} ;LD_PRELOAD= ${ASAN_DSO_PATH} ;FFI_LIB_NAME=testlib_asan.so;ERR_INJECTION=HEAP_BUFFER_OVERFLOW "
372+ "${TEST_ENVIRONMENT} "
310373 "AddressSanitizer: heap-buffer-overflow"
311374 )
375+ string (JOIN ";" TEST_ENVIRONMENT
376+ "${TEST_ENV} "
377+ LD_PRELOAD=${UBSAN_DSO_PATH}
378+ FFI_LIB_NAME=testlib_ubsan.so
379+ ERR_INJECTION=NULL_POINTER_DEREF
380+ )
312381 generate_ffi_test (luzer_ffi_ubsan_null_pointer_deref
313- "${TEST_ENV} ;LD_PRELOAD= ${UBSAN_DSO_PATH} ;FFI_LIB_NAME=testlib_ubsan.so;ERR_INJECTION=NULL_POINTER_DEREF "
382+ "${TEST_ENVIRONMENT} "
314383 "runtime error: load of null pointer of type"
315384 )
316385endif ()
0 commit comments