meson.build 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. # We use jq for comparing the pin config in the clevis luks list tests.
  2. jq = find_program('jq', required: false)
  3. # We use systemd-socket-activate for running test tang servers.
  4. actv = find_program(
  5. 'systemd-socket-activate',
  6. 'systemd-activate',
  7. join_paths('/', 'usr', 'lib', 'systemd', 'systemd-activate'),
  8. required: false
  9. )
  10. kgen = find_program(
  11. join_paths(libexecdir, 'tangd-keygen'),
  12. join_paths(get_option('prefix'), get_option('libdir'), 'tangd-keygen'),
  13. join_paths(get_option('prefix'), get_option('libexecdir'), 'tangd-keygen'),
  14. join_paths('/', 'usr', get_option('libdir'), 'tangd-keygen'),
  15. join_paths('/', 'usr', get_option('libexecdir'), 'tangd-keygen'),
  16. required: false
  17. )
  18. updt = find_program(
  19. join_paths(libexecdir, 'tangd-update'),
  20. join_paths(get_option('prefix'), get_option('libdir'), 'tangd-update'),
  21. join_paths(get_option('prefix'), get_option('libexecdir'), 'tangd-update'),
  22. join_paths('/', 'usr', get_option('libdir'), 'tangd-update'),
  23. join_paths('/', 'usr', get_option('libexecdir'), 'tangd-update'),
  24. required: false
  25. )
  26. tang = find_program(
  27. join_paths(libexecdir, 'tangd'),
  28. join_paths(get_option('prefix'), get_option('libdir'), 'tangd'),
  29. join_paths(get_option('prefix'), get_option('libexecdir'), 'tangd'),
  30. join_paths('/', 'usr', get_option('libdir'), 'tangd'),
  31. join_paths('/', 'usr', get_option('libexecdir'), 'tangd'),
  32. required: false
  33. )
  34. common_functions = configure_file(input: 'tests-common-functions.in',
  35. output: 'tests-common-functions',
  36. configuration: luksmeta_data,
  37. install: false
  38. )
  39. env = environment()
  40. env.prepend('PATH',
  41. join_paths(meson.source_root(), 'src'),
  42. join_paths(meson.source_root(), 'src', 'luks'),
  43. join_paths(meson.source_root(), 'src', 'pins', 'sss'),
  44. join_paths(meson.source_root(), 'src', 'pins', 'tang'),
  45. join_paths(meson.source_root(), 'src', 'pins', 'tpm2'),
  46. meson.current_source_dir(),
  47. meson.current_build_dir(),
  48. join_paths(meson.build_root(), 'src'),
  49. join_paths(meson.build_root(), 'src', 'luks'),
  50. join_paths(meson.build_root(), 'src', 'pins', 'sss'),
  51. join_paths(meson.build_root(), 'src', 'pins', 'tang'),
  52. join_paths(meson.build_root(), 'src', 'pins', 'tpm2'),
  53. separator: ':'
  54. )
  55. has_tang = false
  56. if actv.found() and kgen.found() and updt.found() and tang.found()
  57. has_tang = true
  58. env.set('SD_ACTIVATE', actv.path())
  59. env.set('TANGD_KEYGEN', kgen.path())
  60. env.set('TANGD_UPDATE', updt.path())
  61. env.set('TANGD', tang.path())
  62. endif
  63. test('bind-wrong-pass-luks1', find_program('bind-wrong-pass-luks1'), env: env)
  64. test('bind-luks1', find_program('bind-luks1'), env: env)
  65. test('unbind-unbound-slot-luks1', find_program('unbind-unbound-slot-luks1'), env: env)
  66. test('unbind-luks1', find_program('unbind-luks1'), env: env)
  67. test('bind-key-file-non-interactive', find_program('bind-key-file-non-interactive-luks1'), env: env)
  68. test('bind-pass-with-newline', find_program('bind-pass-with-newline-luks1'), env: env)
  69. test('bind-pass-with-newline-keyfile', find_program('bind-pass-with-newline-keyfile-luks1'), env: env)
  70. # Bug #70.
  71. test('bind-already-used-luksmeta-slot', find_program('bind-already-used-luksmeta-slot'), env: env, timeout: 60)
  72. test('bad-sss', find_program('bad-sss'), env: env)
  73. if jq.found()
  74. test('list-recursive-luks1', find_program('list-recursive-luks1'), env: env)
  75. test('list-tang-luks1', find_program('list-tang-luks1'), env: env)
  76. test('list-sss-tang-luks1', find_program('list-sss-tang-luks1'), env: env)
  77. else
  78. warning('Will not run "clevis luks list" tests due to missing jq dependency')
  79. endif
  80. if has_tang
  81. test('unlock-tang-luks1', find_program('unlock-tang-luks1'), env: env, timeout: 90)
  82. test('assume-yes', find_program('assume-yes'), env: env, timeout: 60)
  83. test('regen-inplace-luks1', find_program('regen-inplace-luks1'), env: env, timeout: 90)
  84. test('regen-not-inplace-luks1', find_program('regen-not-inplace-luks1'), env: env, timeout: 90)
  85. test('report-tang-luks1', find_program('report-tang-luks1'), env: env, timeout: 90)
  86. test('report-sss-luks1', find_program('report-sss-luks1'), env: env, timeout: 90)
  87. test('edit-tang-luks1', find_program('edit-tang-luks1'), env: env, timeout: 150)
  88. endif
  89. test('backup-restore-luks1', find_program('backup-restore-luks1'), env: env, timeout: 60)
  90. # LUKS2 tests go here, and they get included if we get support for it, based
  91. # on the cryptsetup version.
  92. # Binding LUKS2 takes longer, so timeout is increased for a few tests.
  93. if luksmeta_data.get('OLD_CRYPTSETUP') == '0'
  94. test('bind-wrong-pass-luks2', find_program('bind-wrong-pass-luks2'), env: env)
  95. test('bind-luks2', find_program('bind-luks2'), env: env, timeout: 60)
  96. test('unbind-unbound-slot-luks2', find_program('unbind-unbound-slot-luks2'), env: env)
  97. test('unbind-luks2', find_program('unbind-luks2'), env: env, timeout: 60)
  98. if jq.found()
  99. test('list-recursive-luks2', find_program('list-recursive-luks2'), env: env, timeout: 60)
  100. test('list-tang-luks2', find_program('list-tang-luks2'), env: env, timeout: 60)
  101. test('list-sss-tang-luks2', find_program('list-sss-tang-luks2'), env: env, timeout: 60)
  102. endif
  103. if has_tang
  104. test('unlock-tang-luks2', find_program('unlock-tang-luks2'), env: env, timeout: 120)
  105. test('assume-yes-luks2', find_program('assume-yes-luks2'), env: env, timeout: 90)
  106. test('regen-inplace-luks2', find_program('regen-inplace-luks2'), env: env, timeout: 120)
  107. test('regen-not-inplace-luks2', find_program('regen-not-inplace-luks2'), env: env, timeout: 120)
  108. test('report-tang-luks2', find_program('report-tang-luks2'), env: env, timeout: 120)
  109. test('report-sss-luks2', find_program('report-sss-luks2'), env: env, timeout: 120)
  110. test('edit-tang-luks2', find_program('edit-tang-luks2'), env: env, timeout: 210)
  111. endif
  112. test('backup-restore-luks2', find_program('backup-restore-luks2'), env: env, timeout: 120)
  113. endif