]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
tests/integration: capture server config, mock options
authorMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 29 Jan 2015 16:03:22 +0000 (17:03 +0100)
committerMarek Vavruša <marek.vavrusa@nic.cz>
Thu, 29 Jan 2015 16:03:22 +0000 (17:03 +0100)
tests/test_integration.c
tests/test_integration.py

index cb0e48a6d511eae230d45888b451411a496e9932..b8cdce8731295567ba2cca6ae51c14d9a1b486ae 100644 (file)
@@ -38,6 +38,11 @@ static PyObject *mock_server  = NULL;   /* Mocked endpoint for recursive queries
 
 static PyObject* init(PyObject* self, PyObject* args)
 {
+       const char *config= NULL;
+       if (!PyArg_ParseTuple(args, "s", &config)) {
+               return NULL;
+       }
+
        /* Initialize mock variables */
        memset(&_mock_time, 0, sizeof(struct timeval));
        mock_server = NULL;
@@ -52,7 +57,12 @@ static PyObject* init(PyObject* self, PyObject* args)
        assert(global_context.cache);
 
        /* Test context options. */
-       global_context.options = QUERY_TCP | QUERY_NO_MINIMIZE;
+       global_context.options = QUERY_TCP;
+
+       /* No configuration parsing support yet. */
+       if (strstr(config, "query-minimization: on") == NULL) {
+               global_context.options |= QUERY_NO_MINIMIZE; 
+       }
 
        return Py_BuildValue("s", PACKAGE_STRING " (integration tests)");
 }
index b5594f2505a9bfbc281d072f033e428fb456ffdc..7ba52fd4b7af5a91a2a34fd9359ab6fc5540b1fd 100755 (executable)
@@ -91,9 +91,17 @@ def parse_scenario(op, args, file_in):
 def parse_file(file_in):
     """ Parse scenario from a file. """
     try:
+        config = ''
+        line = file_in.readline()
+        while len(line):
+            if line.startswith('CONFIG_END'):
+                break
+            if not line.startswith(';'):
+                config += line
+            line = file_in.readline()
         for op, args in iter(lambda: get_next(file_in), False):
             if op == 'SCENARIO_BEGIN':
-                return parse_scenario(op, args, file_in)
+                return parse_scenario(op, args, file_in), config
         raise Exception("IGNORE (missing scenario)")
     except Exception as e:
         raise Exception('line %d: %s' % (file_in.lineno(), str(e)))
@@ -117,15 +125,16 @@ def play_object(path):
     # Parse scenario
     file_in = fileinput.input(path)
     scenario = None
+    config = None
     try:
-        scenario = parse_file(file_in)
+        scenario, config = parse_file(file_in)
     finally:
         file_in.close()
 
     # Play scenario
     server = testserver.TestServer(scenario)
     server.start()
-    mock_ctx.init()
+    mock_ctx.init(config)
     try:
         mock_ctx.set_server(server)
         if TEST_DEBUG > 0: