Skip to content

Commit f1b521e

Browse files
committed
luzer/tests: refactoring
The replaces long strings with test environment variables with a list of environment variables joined to a single string. Needed for #59
1 parent 567867f commit f1b521e

File tree

1 file changed

+81
-12
lines changed

1 file changed

+81
-12
lines changed

luzer/tests/CMakeLists.txt

Lines changed: 81 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
)
138143
set_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+
)
231242
generate_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+
)
235252
generate_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+
)
239262
generate_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+
)
243272
generate_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+
)
247282
generate_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+
)
251292
generate_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+
)
255302
generate_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
)
316385
endif()

0 commit comments

Comments
 (0)