]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
meson: tests/integration run all test suites
authorTomas Krizek <tomas.krizek@nic.cz>
Mon, 4 Feb 2019 19:07:37 +0000 (20:07 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Tue, 12 Mar 2019 09:43:22 +0000 (10:43 +0100)
meson.build
modules/meson.build
modules/policy/meson.build
modules/view/meson.build [new file with mode: 0644]
scripts/test-integration-prepare.sh
tests/integration/meson.build
tests/meson.build

index e9c5c55388208fbbce05edd2719e60e1377e58b9..57d27692c5f7abca2245ac6b9c67083572a6619d 100644 (file)
@@ -76,6 +76,10 @@ config_tests = [
   # [name, files(test), [arg1, arg2], should_fail]
 ]
 
+integr_tests = [
+  # [name, test_dir_relative_to_src_root]
+]
+
 
 # compile
 subdir('contrib')
index 6acdffa656633f9e04fc6ca1b83c03c6b3a21bf9..a86ff849ef1cae10154dfb4ae87e43a5989d49b7 100644 (file)
@@ -34,6 +34,7 @@ config_tests += [
 ]
 
 
+# TODO cleanup modules (lua_src)
 subdir('bogus_log')
 # cookies module is not currently used
 subdir('daf')
@@ -44,6 +45,7 @@ subdir('http')
 subdir('nsid')
 subdir('policy')
 subdir('stats')
+subdir('view')
 
 
 # install lua modules
index 619017a67d16cab6d3761fa54c596ba89ca8b662..4c27f4cf5c397a3903ce06ece94800f6a1d6bb53 100644 (file)
@@ -19,3 +19,8 @@ lua_ac_lib = library(
   install: true,
   install_dir: modules_dir,
 )
+
+integr_tests += [
+  ['policy.noipv6', join_paths(meson.current_source_dir(), 'noipv6.test.integr')],
+  ['policy.noipvx', join_paths(meson.current_source_dir(), 'noipvx.test.integr')],
+]
diff --git a/modules/view/meson.build b/modules/view/meson.build
new file mode 100644 (file)
index 0000000..2d4d30d
--- /dev/null
@@ -0,0 +1,4 @@
+integr_tests += [
+  ['view.tsig', join_paths(meson.current_source_dir(), 'tsig.test.integr')],
+  ['view.addr', join_paths(meson.current_source_dir(), 'addr.test.integr')],
+]
index 9113babbe656c144a165c6994d97f4614e46bbcf..73d49593645e0307711bba3f1deb96efd18ebb8f 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/bash
 set -o errexit -o nounset
 
-cd "${1}/deckard"
+cd "${1}"
 
 git submodule update --init --recursive
 make depend
index 4797fd047abf21f83eaea8ff86673064bbb0d888..5f6d933f636f09785be04dc3cd62d8203b4a8ac1 100644 (file)
@@ -1,35 +1,70 @@
-if get_option('extra_tests')
-  prepare_deckard = find_program('../../scripts/test-integration-prepare.sh')
+# deckard dependencies
+cmake = find_program('cmake')  # for libswrapper
+git = find_program('git')
+make = find_program('make')
+augeas = dependency('augeas')
 
-  # deckard dependencies
-  cmake = find_program('cmake')  # for libswrapper
+# python3 dependencies
+py3_deps += [
+  ['augeas', 'augeas (for deckard)'],
+  ['dns', 'dnspuyhon (for deckard)'],
+  ['jinja2', 'jinja2 (for deckard)'],
+  ['pytest', 'pytest (for deckard)'],
+  ['xdist', 'pytest-xdist (for deckard)'],
+  ['yaml', 'PyYAML (for deckard)'],
+]
 
-  deckard_contrib = custom_target(
-    'deckard_contrib',
-    command: [
-      prepare_deckard,
-      '@0@'.format(join_paths(meson.current_source_dir())),
-    ],
-    output: 'deckard_contrib',
-    build_always_stale: true,
-  )
+prepare_deckard = find_program('../../scripts/test-integration-prepare.sh')
+
+# compile libswrap, libfaketime
+deckard_contrib = custom_target(
+  'deckard_contrib',
+  command: [
+    prepare_deckard,
+    '@0@'.format(join_paths(meson.current_source_dir(), 'deckard')),
+  ],
+  output: 'deckard_contrib',
+  build_always_stale: true,
+)
 
-  deckard_env = environment()
-  deckard_env.prepend('PATH', kresd_install_path)
+deckard_env = environment()
+deckard_env.prepend('PATH', kresd_install_path)
 
-  deckard_kresd_run = find_program('deckard/kresd_run.sh')
+deckard_kresd_run = find_program('deckard/kresd_run.sh')
+test(
+  'integration.deckard',
+  deckard_kresd_run,
+  env: deckard_env,
+  args: [
+    '-n', 'auto',
+  ],
+  suite: [
+    'postinstall',
+    'integration',
+  ],
+  is_parallel: false,
+  timeout: 300,
+  depends: deckard_contrib,
+)
+
+deckard_run = find_program('deckard/run.sh')
+foreach integr_test : integr_tests
+  deckard_config_path = join_paths(integr_test[1], 'deckard.yaml')
   test(
-    'integration.deckard',
-    deckard_kresd_run,
+    'integration.' + integr_test[0],
+    deckard_run,
     env: deckard_env,
+    args: [
+      '-n', 'auto',
+      '--config=@0@'.format(deckard_config_path),
+      '--scenarios=@0@'.format(integr_test[1]),
+    ],
     suite: [
       'postinstall',
       'integration',
     ],
     is_parallel: false,
-    timeout: 180,  # TODO
-    #workdir: join_paths(meson.current_source_dir(), 'deckard'),
+    workdir: meson.source_root(),
     depends: deckard_contrib,
-    build_by_default: false,
   )
-endif
+endforeach
index 2cd7f9517c072bc62cf918e27ccfe9307da3990b..41035d3b20e85b9c40ef7853e79affa4ff584c33 100644 (file)
@@ -6,7 +6,7 @@ if get_option('extra_tests')
   py3_deps = []
 
   subdir('pytests')
-  #subdir('integration')
+  subdir('integration')
 
   foreach py3_dep : py3_deps
     py3_import = run_command(python3, '-c', 'import @0@'.format(py3_dep[0]))