selftest: Confirm parse of dnsProperty records
authorAndrew Bartlett <abartlet@samba.org>
Thu, 19 Dec 2019 22:34:38 +0000 (11:34 +1300)
committerRalph Boehme <slow@samba.org>
Fri, 20 Dec 2019 10:09:34 +0000 (10:09 +0000)
This confirms a name of "." will round-trip correctly.

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Ralph Boehme <slow@samba.org>
python/samba/tests/blackbox/ndrdump.py
selftest/knownfail.d/ndrdump-dnsp_name [new file with mode: 0644]
source4/librpc/tests/dnsp-DnssrvRpcRecord.txt [new file with mode: 0644]

index ee34753e5a8e13abbe136f79371f851239852d5e..b3c837819b153783fcea9d39d5ad962440f2ba2a 100644 (file)
@@ -368,6 +368,20 @@ dump OK
                          expected_head)
         self.assertTrue(actual.endswith(expected_tail))
 
+    # Confirm parsing of dnsProperty records
+    def test_ndrdump_dnsp_DnssrvRpcRecord(self):
+
+        expected = open(self.data_path("dnsp-DnssrvRpcRecord.txt")).read().encode('utf8')
+        try:
+            actual = self.check_output(
+                "ndrdump dnsp dnsp_DnssrvRpcRecord struct " +\
+                "--input BQAPAAXwAAC3AAAAAAADhAAAAAAAAAAAAAoBAAA= "+\
+                "--base64-input --validate")
+        except BlackboxProcessError as e:
+            self.fail(e)
+
+        self.assertEqual(actual, expected)
+
     # Test a --validate push of a NULL union pointer
     def test_ndrdump_fuzzed_NULL_union_PAC_BUFFER(self):
         expected = b'''pull returned Success
diff --git a/selftest/knownfail.d/ndrdump-dnsp_name b/selftest/knownfail.d/ndrdump-dnsp_name
new file mode 100644 (file)
index 0000000..c456599
--- /dev/null
@@ -0,0 +1 @@
+^samba.tests.blackbox.ndrdump.samba.tests.blackbox.ndrdump.NdrDumpTests.test_ndrdump_dnsp_DnssrvRpcRecord
diff --git a/source4/librpc/tests/dnsp-DnssrvRpcRecord.txt b/source4/librpc/tests/dnsp-DnssrvRpcRecord.txt
new file mode 100644 (file)
index 0000000..fd16922
--- /dev/null
@@ -0,0 +1,32 @@
+pull returned Success
+    dnsp_DnssrvRpcRecord: struct dnsp_DnssrvRpcRecord
+        wDataLength              : 0x0005 (5)
+        wType                    : DNS_TYPE_MX (15)
+        version                  : 0x05 (5)
+        rank                     : DNS_RANK_ZONE (240)
+        flags                    : 0x0000 (0)
+        dwSerial                 : 0x000000b7 (183)
+        dwTtlSeconds             : 0x00000384 (900)
+        dwReserved               : 0x00000000 (0)
+        dwTimeStamp              : 0x00000000 (0)
+        data                     : union dnsRecordData(case 15)
+        mx: struct dnsp_mx
+            wPriority                : 0x000a (10)
+            nameTarget               : 
+push returned Success
+pull returned Success
+    dnsp_DnssrvRpcRecord: struct dnsp_DnssrvRpcRecord
+        wDataLength              : 0x0005 (5)
+        wType                    : DNS_TYPE_MX (15)
+        version                  : 0x05 (5)
+        rank                     : DNS_RANK_ZONE (240)
+        flags                    : 0x0000 (0)
+        dwSerial                 : 0x000000b7 (183)
+        dwTtlSeconds             : 0x00000384 (900)
+        dwReserved               : 0x00000000 (0)
+        dwTimeStamp              : 0x00000000 (0)
+        data                     : union dnsRecordData(case 15)
+        mx: struct dnsp_mx
+            wPriority                : 0x000a (10)
+            nameTarget               : 
+dump OK