[tests] factorise source tests
[aubio.git] / tests / wscript_build
1 # vim:set syntax=python:
2
3 import os.path
4
5 uselib = ['aubio']
6
7 includes = ['../src', '.']
8 programs_sources = ctx.path.ant_glob('src/**/*.c')
9
10 test_sound_target = '44100Hz_44100f_sine441_stereo.wav'
11 test_sound_abspath = bld.path.get_bld().make_node(test_sound_target)
12 # workaround to double escape backslash characters on windows
13 test_sound_abspath = str(test_sound_abspath).replace('\\', '\\\\')
14
15 b = bld(name='create_tests_source',
16     rule='python ${SRC} ${TGT}',
17     source='create_tests_source.py',
18     target=test_sound_target)
19 # use post() to create the task, keep a reference to it
20 b.post()
21 create_tests_source = b.tasks[0]
22
23 for source_file in programs_sources:
24     target = os.path.basename(os.path.splitext(str(source_file))[0])
25     a = bld(features = 'c cprogram test',
26             source = source_file,
27             target = target,
28             includes = includes,
29             use = uselib,
30             install_path = None,
31             defines = ['AUBIO_UNSTABLE_API=1',
32                         'AUBIO_TESTS_SOURCE={}'.format(test_sound_abspath)]
33        )
34     a.post()
35     # make sure the unit_test task runs *after* the source is created
36     a.tasks[-1].set_run_after(create_tests_source)