Browse Source

[2624] Port the glue systest to lettuce

It just does two queries and compares the output.
Michal 'vorner' Vaner 12 years ago
parent
commit
ba046cd24c

+ 34 - 0
tests/lettuce/configurations/glue.config

@@ -0,0 +1,34 @@
+{
+    "version": 3,
+    "Logging": {
+        "loggers": [{
+            "severity": "DEBUG",
+            "name": "*",
+            "debuglevel": 99
+        }]
+    },
+    "Auth": {
+        "listen_on": [{
+            "port": 47806,
+            "address": "127.0.0.1"
+        }]
+    },
+    "data_sources": {
+        "classes": {
+            "IN": [
+                {
+                    "type": "sqlite3",
+                    "params": {
+                        "database_file": "data/glue.sqlite3"
+                    }
+                }
+            ]
+        }
+    },
+    "Init": {
+        "components": {
+            "b10-auth": { "kind": "needed", "special": "auth" },
+            "b10-cmdctl": { "special": "cmdctl", "kind": "needed" }
+        }
+    }
+}

BIN
tests/lettuce/data/glue.sqlite3


+ 45 - 0
tests/lettuce/features/queries.feature

@@ -3,6 +3,51 @@ Feature: Querying feature
     for instance whether multiple queries in a row return consistent
     answers.
 
+    Scenario: Glue
+        # Check the auth server returns the correct glue when asked for it.
+        Given I have bind10 running with configuration glue.config
+        And wait for bind10 stderr message BIND10_STARTED_CC
+        And wait for bind10 stderr message CMDCTL_STARTED
+        And wait for bind10 stderr message AUTH_SERVER_STARTED
+
+        # This query should result in a delegation with two NS; one in the
+        # delegated zone and one in a so called out-of-bailiwick zone for which
+        # the auth server has authority, too.  For the former, the server
+        # should return glue in the parent zone.  For the latter, BIND 9 and
+        # BIND 10 behave differently; BIND 9 uses "glue" in the parent zone
+        # (since this is the root zone everything can be considered a valid
+        # glue).  BIND 10 (using sqlite3 data source) searches the other zone
+        # and uses the authoritative data in that zone (which is intentionally
+        # different from the glue in the root zone).
+        A query for foo.bar.example type A should have rcode NOERROR
+        The answer section of the last query response should be
+        """
+        """
+        The authority section of the last query response should be
+        """
+        example.			172800	IN	NS	NS1.example.COM.
+        example.			172800	IN	NS	NS.example.
+        """
+        The additional section of the last query response should be
+        """
+        NS.example.		172800	IN	A	192.0.2.1
+        NS.example.		172800	IN	A	192.0.2.2
+        NS1.example.COM.	172800	IN	A	192.0.2.3
+        """
+        # Test we don't get out-of-zone glue
+        A query for example.net type A should have rcode NOERROR
+        The answer section of the last query response should be
+        """
+        """
+        The authority section of the last query response should be
+        """
+        example.net.		300	IN	NS	ns2.example.info.
+        example.net.		300	IN	NS	ns1.example.info.
+        """
+        The additional section of the last query response should be
+        """
+        """
+
     Scenario: Repeated queries
         Given I have bind10 running with configuration example.org.inmem.config
         And wait for bind10 stderr message BIND10_STARTED_CC