summaryrefslogtreecommitdiffstats
path: root/mDNSResponder/unittests/ResourceRecordTest.c
diff options
context:
space:
mode:
Diffstat (limited to 'mDNSResponder/unittests/ResourceRecordTest.c')
-rw-r--r--mDNSResponder/unittests/ResourceRecordTest.c60
1 files changed, 60 insertions, 0 deletions
diff --git a/mDNSResponder/unittests/ResourceRecordTest.c b/mDNSResponder/unittests/ResourceRecordTest.c
new file mode 100644
index 00000000..d0530086
--- /dev/null
+++ b/mDNSResponder/unittests/ResourceRecordTest.c
@@ -0,0 +1,60 @@
+#include "mDNSEmbeddedAPI.h"
+#include "../mDNSCore/DNSCommon.h"
+#include "ResourceRecordTest.h"
+
+int TXTSetupTest(void);
+int ASetupTest(void);
+int OPTSetupTest(void);
+
+
+UNITTEST_HEADER(ResourceRecordTest)
+ UNITTEST_TEST(TXTSetupTest)
+ UNITTEST_TEST(ASetupTest)
+ UNITTEST_TEST(OPTSetupTest)
+UNITTEST_FOOTER
+
+
+UNITTEST_HEADER(TXTSetupTest)
+
+ AuthRecord authRec;
+ mDNS_SetupResourceRecord(&authRec, mDNSNULL, mDNSInterface_Any, kDNSType_TXT, kStandardTTL, kDNSRecordTypeShared, AuthRecordAny,mDNSNULL, mDNSNULL);
+ UNITTEST_ASSERT_RETURN(authRec.resrec.RecordType == kDNSType_TXT);
+ UNITTEST_ASSERT_RETURN(authRec.resrec.rdata->MaxRDLength == sizeof(RDataBody));
+
+ // Retest with a RDataStorage set to a a buffer
+UNITTEST_FOOTER
+
+
+UNITTEST_HEADER(ASetupTest)
+ AuthRecord authRec;
+ mDNS_SetupResourceRecord(&authRec, mDNSNULL, mDNSInterface_Any, kDNSType_A, kHostNameTTL, kDNSRecordTypeUnique, AuthRecordAny, mDNSNULL, mDNSNULL);
+ UNITTEST_ASSERT_RETURN(authRec.resrec.RecordType == kDNSType_A);
+ // Add more verifications
+
+UNITTEST_FOOTER
+
+
+UNITTEST_HEADER(OPTSetupTest)
+ AuthRecord opt;
+ mDNSu32 updatelease = 7200;
+/* mDNSu8 data[AbsoluteMaxDNSMessageData];
+ mDNSu8 *p = data;
+ mDNSu16 numAdditionals;
+*/
+ // Setup the OPT Record
+ mDNS_SetupResourceRecord(&opt, mDNSNULL, mDNSInterface_Any, kDNSType_OPT, kStandardTTL, kDNSRecordTypeKnownUnique, AuthRecordAny, mDNSNULL, mDNSNULL);
+
+ // Verify the basic initialization is all ok
+
+ opt.resrec.rrclass = NormalMaxDNSMessageData;
+ opt.resrec.rdlength = sizeof(rdataOPT); // One option in this OPT record
+ opt.resrec.rdestimate = sizeof(rdataOPT);
+ opt.resrec.rdata->u.opt[0].opt = kDNSOpt_Lease;
+ opt.resrec.rdata->u.opt[0].u.updatelease = updatelease;
+
+ // Put the resource record in and verify everything is fine
+ // p = PutResourceRecordTTLWithLimit(&data, p, &numAdditionals, &opt.resrec, opt.resrec.rroriginalttl, data + AbsoluteMaxDNSMessageData);
+
+
+ // Repeat with bad data to make sure it bails out cleanly
+UNITTEST_FOOTER \ No newline at end of file