Skip to content

Commit 28b23b2

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.
1 parent 7c46630 commit 28b23b2

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
@@ -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+
)
128133
set_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+
)
221232
generate_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+
)
225242
generate_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+
)
229252
generate_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+
)
233262
generate_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+
)
237272
generate_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+
)
241282
generate_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+
)
245292
generate_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
)
306375
endif()

0 commit comments

Comments
 (0)