mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-13 08:09:17 +08:00

The sources can be obtained via: https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.1.1.tar.gz Update #3522.
61 lines
2.1 KiB
C
61 lines
2.1 KiB
C
#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);
|
|
// This fails >> 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);
|
|
|
|
// This fails >> 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 |