blob: 5953c286d13f30a002c5f99433f9eb03b54e239e [file] [log] [blame]
testcore = [
'core.c',
'../util/log.c',
'../util/sysfs.c',
]
libndctl_deps = [
ndctl_dep,
daxctl_dep,
uuid,
kmod,
]
ndctl_deps = libndctl_deps + [
json,
util_dep,
versiondep,
]
libndctl = executable('libndctl', testcore + [ 'libndctl.c'],
dependencies : libndctl_deps,
include_directories : root_inc,
)
namespace_core = [
'../ndctl/namespace.c',
'../ndctl/filter.c',
'../ndctl/check.c',
'../util/json.c',
'../ndctl/json.c',
'../daxctl/filter.c',
'../daxctl/json.c',
]
dsm_fail = executable('dsm-fail', testcore + namespace_core + [ 'dsm-fail.c' ],
dependencies : ndctl_deps,
include_directories : root_inc,
)
hugetlb_src = testcore + [ 'hugetlb.c', 'dax-pmd.c' ]
if poison_enabled
hugetlb_src += [ 'dax-poison.c' ]
endif
hugetlb = executable('hugetlb', hugetlb_src,
dependencies : libndctl_deps,
include_directories : root_inc,
)
ack_shutdown_count = executable('ack-shutdown-count-set',
testcore + [ 'ack-shutdown-count-set.c' ],
dependencies : libndctl_deps,
include_directories : root_inc,
)
dax_errors = executable('dax-errors',
'dax-errors.c',
)
smart_notify = executable('smart-notify', 'smart-notify.c',
dependencies : libndctl_deps,
include_directories : root_inc,
)
smart_listen = executable('smart-listen', 'smart-listen.c',
dependencies : libndctl_deps,
include_directories : root_inc,
)
daxdev_errors = executable('daxdev-errors', [
'daxdev-errors.c',
'../util/log.c',
'../util/sysfs.c',
],
dependencies : libndctl_deps,
include_directories : root_inc,
)
list_smart_dimm = executable('list-smart-dimm', [
'list-smart-dimm.c',
'../ndctl/filter.c',
'../util/json.c',
'../ndctl/json.c',
'../daxctl/json.c',
'../daxctl/filter.c',
],
dependencies : ndctl_deps,
include_directories : root_inc,
)
pmem_ns = executable('pmem-ns', testcore + [ 'pmem_namespaces.c' ],
dependencies : libndctl_deps,
include_directories : root_inc,
)
dax_dev = executable('dax-dev', testcore + [ 'dax-dev.c' ],
dependencies : libndctl_deps,
include_directories : root_inc,
)
dax_pmd_src = testcore + [ 'dax-pmd.c' ]
if poison_enabled
dax_pmd_src += [ 'dax-poison.c' ]
endif
dax_pmd = executable('dax-pmd', dax_pmd_src,
dependencies : libndctl_deps,
include_directories : root_inc,
)
device_dax_src = testcore + namespace_core + [
'device-dax.c',
'dax-dev.c',
'dax-pmd.c',
]
if poison_enabled
device_dax_src += 'dax-poison.c'
endif
device_dax = executable('device-dax', device_dax_src,
dependencies : ndctl_deps,
include_directories : root_inc,
)
revoke_devmem = executable('revoke_devmem', testcore + [
'revoke-devmem.c',
'dax-dev.c',
],
dependencies : libndctl_deps,
include_directories : root_inc,
)
mmap = executable('mmap', 'mmap.c',)
create = find_program('create.sh')
clear = find_program('clear.sh')
pmem_errors = find_program('pmem-errors.sh')
daxdev_errors_sh = find_program('daxdev-errors.sh')
multi_dax = find_program('multi-dax.sh')
btt_check = find_program('btt-check.sh')
label_compat = find_program('label-compat.sh')
sector_mode = find_program('sector-mode.sh')
inject_error = find_program('inject-error.sh')
btt_errors = find_program('btt-errors.sh')
btt_pad_compat = find_program('btt-pad-compat.sh')
firmware_update = find_program('firmware-update.sh')
rescan_partitions = find_program('rescan-partitions.sh')
inject_smart = find_program('inject-smart.sh')
monitor = find_program('monitor.sh')
max_extent = find_program('max_available_extent_ns.sh')
pfn_meta_errors = find_program('pfn-meta-errors.sh')
track_uuid = find_program('track-uuid.sh')
cxl_topo = find_program('cxl-topology.sh')
cxl_sysfs = find_program('cxl-region-sysfs.sh')
cxl_labels = find_program('cxl-labels.sh')
cxl_create_region = find_program('cxl-create-region.sh')
tests = [
[ 'libndctl', libndctl, 'ndctl' ],
[ 'dsm-fail', dsm_fail, 'ndctl' ],
[ 'create.sh', create, 'ndctl' ],
[ 'clear.sh', clear, 'ndctl' ],
[ 'pmem-errors.sh', pmem_errors, 'ndctl' ],
[ 'daxdev-errors.sh', daxdev_errors_sh, 'dax' ],
[ 'multi-dax.sh', multi_dax, 'dax' ],
[ 'btt-check.sh', btt_check, 'ndctl' ],
[ 'label-compat.sh', label_compat, 'ndctl' ],
[ 'sector-mode.sh', sector_mode, 'ndctl' ],
[ 'inject-error.sh', inject_error, 'ndctl' ],
[ 'btt-errors.sh', btt_errors, 'ndctl' ],
[ 'hugetlb', hugetlb, 'ndctl' ],
[ 'btt-pad-compat.sh', btt_pad_compat, 'ndctl' ],
[ 'firmware-update.sh', firmware_update, 'ndctl' ],
[ 'ack-shutdown-count-set', ack_shutdown_count, 'ndctl' ],
[ 'rescan-partitions.sh', rescan_partitions, 'ndctl' ],
[ 'inject-smart.sh', inject_smart, 'ndctl' ],
[ 'monitor.sh', monitor, 'ndctl' ],
[ 'max_extent_ns', max_extent, 'ndctl' ],
[ 'pfn-meta-errors.sh', pfn_meta_errors, 'ndctl' ],
[ 'track-uuid.sh', track_uuid, 'ndctl' ],
[ 'cxl-topology.sh', cxl_topo, 'cxl' ],
[ 'cxl-region-sysfs.sh', cxl_sysfs, 'cxl' ],
[ 'cxl-labels.sh', cxl_labels, 'cxl' ],
[ 'cxl-create-region.sh', cxl_create_region, 'cxl' ],
]
if get_option('destructive').enabled()
sub_section = find_program('sub-section.sh')
dax_ext4 = find_program('dax-ext4.sh')
dax_xfs = find_program('dax-xfs.sh')
align = find_program('align.sh')
device_dax_fio = find_program('device-dax-fio.sh')
daxctl_devices = find_program('daxctl-devices.sh')
daxctl_create = find_program('daxctl-create.sh')
dm = find_program('dm.sh')
mmap_test = find_program('mmap.sh')
tests += [
[ 'pmem-ns', pmem_ns, 'ndctl' ],
[ 'sub-section.sh', sub_section, 'dax' ],
[ 'dax-dev', dax_dev, 'dax' ],
[ 'dax-ext4.sh', dax_ext4, 'dax' ],
[ 'dax-xfs.sh', dax_xfs, 'dax' ],
[ 'align.sh', align, 'ndctl' ],
[ 'device-dax', device_dax, 'dax' ],
[ 'revoke-devmem', revoke_devmem, 'dax' ],
[ 'device-dax-fio.sh', device_dax_fio, 'dax' ],
[ 'daxctl-devices.sh', daxctl_devices, 'dax' ],
[ 'daxctl-create.sh', daxctl_create, 'dax' ],
[ 'dm.sh', dm, 'dax' ],
[ 'mmap.sh', mmap_test, 'dax' ],
]
endif
if get_option('keyutils').enabled()
security = find_program('security.sh')
tests += [
[ 'security.sh', security, 'ndctl' ]
]
endif
foreach t : tests
test(t[0], t[1],
is_parallel : false,
depends : [
ndctl_tool,
daxctl_tool,
cxl_tool,
smart_notify,
list_smart_dimm,
dax_pmd,
dax_errors,
daxdev_errors,
dax_dev,
mmap,
],
suite: t[2],
timeout : 600,
env : [
'NDCTL=@0@'.format(ndctl_tool.full_path()),
'DAXCTL=@0@'.format(daxctl_tool.full_path()),
'TEST_PATH=@0@'.format(meson.current_build_dir()),
'DATA_PATH=@0@'.format(meson.current_source_dir()),
],
)
endforeach