meson.build 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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 cryptsetup for testing LUKS2 binding and saving the token in a
  4. # given token slot.
  5. cryptsetup = find_program('cryptsetup', required: true)
  6. # Use keyctl to check an existing token id can be created from
  7. # kernel keyring password
  8. keyutils = find_program('keyctl', required: false)
  9. if keyutils.found()
  10. message('keyutils installed')
  11. else
  12. warning('keyutils not installed, unable to test existing token id binding')
  13. endif
  14. common_functions = configure_file(input: 'tests-common-functions.in',
  15. output: 'tests-common-functions',
  16. configuration: luksmeta_data,
  17. install: false
  18. )
  19. env = environment()
  20. env.prepend('PATH',
  21. join_paths(meson.source_root(), 'src'),
  22. join_paths(meson.source_root(), 'src', 'luks'),
  23. join_paths(meson.source_root(), 'src', 'pins', 'sss'),
  24. join_paths(meson.source_root(), 'src', 'pins', 'tang'),
  25. join_paths(meson.source_root(), 'src', 'pins', 'tpm2'),
  26. meson.current_source_dir(),
  27. meson.current_build_dir(),
  28. join_paths(meson.build_root(), 'src'),
  29. join_paths(meson.build_root(), 'src', 'luks'),
  30. join_paths(meson.build_root(), 'src', 'pins', 'sss'),
  31. join_paths(meson.build_root(), 'src', 'pins', 'tang'),
  32. join_paths(meson.build_root(), 'src', 'pins', 'tang', 'tests'),
  33. join_paths(meson.build_root(), 'src', 'pins', 'tpm2'),
  34. separator: ':'
  35. )
  36. test('bind-wrong-pass-luks1', find_program('bind-wrong-pass-luks1'), env: env)
  37. test('bind-luks1', find_program('bind-luks1'), env: env)
  38. test('unbind-unbound-slot-luks1', find_program('unbind-unbound-slot-luks1'), env: env)
  39. test('unbind-luks1', find_program('unbind-luks1'), env: env)
  40. test('bind-key-file-non-interactive', find_program('bind-key-file-non-interactive-luks1'), env: env)
  41. test('bind-pass-with-newline', find_program('bind-pass-with-newline-luks1'), env: env)
  42. test('bind-pass-with-newline-keyfile', find_program('bind-pass-with-newline-keyfile-luks1'), env: env)
  43. test('bind-binary-keyfile', find_program('bind-binary-keyfile-luks1'), env: env)
  44. # Bug #70.
  45. test('bind-already-used-luksmeta-slot', find_program('bind-already-used-luksmeta-slot'), env: env, timeout: 60)
  46. test('bad-sss', find_program('bad-sss'), env: env)
  47. if jq.found()
  48. test('list-recursive-luks1', find_program('list-recursive-luks1'), env: env)
  49. test('list-tang-luks1', find_program('list-tang-luks1'), env: env)
  50. test('list-sss-tang-luks1', find_program('list-sss-tang-luks1'), env: env)
  51. else
  52. warning('Will not run "clevis luks list" tests due to missing jq dependency')
  53. endif
  54. test('unlock-tang-luks1', find_program('unlock-tang-luks1'), env: env, timeout: 90)
  55. test('assume-yes', find_program('assume-yes'), env: env, timeout: 60)
  56. test('regen-inplace-luks1', find_program('regen-inplace-luks1'), env: env, timeout: 90)
  57. test('regen-not-inplace-luks1', find_program('regen-not-inplace-luks1'), env: env, timeout: 90)
  58. test('report-tang-luks1', find_program('report-tang-luks1'), env: env, timeout: 90)
  59. test('report-sss-luks1', find_program('report-sss-luks1'), env: env, timeout: 90)
  60. test('edit-tang-luks1', find_program('edit-tang-luks1'), env: env, timeout: 150)
  61. test('backup-restore-luks1', find_program('backup-restore-luks1'), env: env, timeout: 60)
  62. test('pass-tang-luks1', find_program('pass-tang-luks1'), env: env, timeout: 60)
  63. test('bind-luks1-avoid-luksmeta-corruption', find_program('bind-luks1-avoid-luksmeta-corruption'), env: env, timeout: 60)
  64. # LUKS2 tests go here, and they get included if we get support for it, based
  65. # on the cryptsetup version.
  66. # Binding LUKS2 takes longer, so timeout is increased for a few tests.
  67. if luksmeta_data.get('OLD_CRYPTSETUP') == '0'
  68. test('bind-wrong-pass-luks2', find_program('bind-wrong-pass-luks2'), env: env)
  69. test('bind-luks2', find_program('bind-luks2'), env: env, timeout: 60)
  70. test('unbind-unbound-slot-luks2', find_program('unbind-unbound-slot-luks2'), env: env)
  71. test('unbind-luks2', find_program('unbind-luks2'), env: env, timeout: 60)
  72. if keyutils.found() and luksmeta_data.get('OLD_CRYPTSETUP_EXISTING_TOKEN_ID') == '0'
  73. test('bind-luks2-ext-token', find_program('bind-luks2-ext-token'), env: env, timeout: 60)
  74. endif
  75. if jq.found()
  76. test('list-recursive-luks2', find_program('list-recursive-luks2'), env: env, timeout: 60)
  77. test('list-tang-luks2', find_program('list-tang-luks2'), env: env, timeout: 60)
  78. test('list-sss-tang-luks2', find_program('list-sss-tang-luks2'), env: env, timeout: 60)
  79. endif
  80. test('unlock-tang-luks2', find_program('unlock-tang-luks2'), env: env, timeout: 120)
  81. test('assume-yes-luks2', find_program('assume-yes-luks2'), env: env, timeout: 90)
  82. test('regen-inplace-luks2', find_program('regen-inplace-luks2'), env: env, timeout: 120)
  83. test('regen-not-inplace-luks2', find_program('regen-not-inplace-luks2'), env: env, timeout: 120)
  84. test('report-tang-luks2', find_program('report-tang-luks2'), env: env, timeout: 120)
  85. test('report-sss-luks2', find_program('report-sss-luks2'), env: env, timeout: 120)
  86. test('edit-tang-luks2', find_program('edit-tang-luks2'), env: env, timeout: 210)
  87. test('backup-restore-luks2', find_program('backup-restore-luks2'), env: env, timeout: 120)
  88. test('pass-tang-luks2', find_program('pass-tang-luks2'), env: env, timeout: 60)
  89. endif