From: Marek VavruĊĦa Date: Thu, 29 Jan 2015 16:03:22 +0000 (+0100) Subject: tests/integration: capture server config, mock options X-Git-Tag: v1.0.0-beta1~345^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=fd93d1becf864adb16918a32f36ce070dc022fde;p=thirdparty%2Fknot-resolver.git tests/integration: capture server config, mock options --- diff --git a/tests/test_integration.c b/tests/test_integration.c index cb0e48a6d..b8cdce873 100644 --- a/tests/test_integration.c +++ b/tests/test_integration.c @@ -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)"); } diff --git a/tests/test_integration.py b/tests/test_integration.py index b5594f250..7ba52fd4b 100755 --- a/tests/test_integration.py +++ b/tests/test_integration.py @@ -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: