MCPcopy Create free account
hub / github.com/defold/defold / TEST

Function TEST

engine/dlib/src/test/test_mdns.cpp:1277–1388  ·  view source on GitHub ↗

Verifies API-level validation and service registration lifecycle rules. This locks down the contract before any wire-level behavior is exercised.

Source from the content-addressed store, hash-verified

1275// Verifies API-level validation and service registration lifecycle rules.
1276// This locks down the contract before any wire-level behavior is exercised.
1277TEST(MDNS, RegisterLifecycle)
1278{
1279 dmMDNS::HMDNS mdns = 0;
1280
1281 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::New(0, 0));
1282 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::New(0, &mdns));
1283
1284 dmMDNS::Params invalid_params;
1285 invalid_params.m_UseIPv4 = 0;
1286 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::New(&invalid_params, &mdns));
1287
1288 dmMDNS::Params params;
1289 params.m_AnnounceInterval = 1;
1290 params.m_Ttl = 2;
1291 ASSERT_EQ(dmMDNS::RESULT_OK, dmMDNS::New(&params, &mdns));
1292 ASSERT_NE((dmMDNS::HMDNS) 0, mdns);
1293
1294 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::RegisterService(mdns, 0));
1295 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::DeregisterService(mdns, 0));
1296
1297 char long_instance_name[80];
1298 memset(long_instance_name, 'a', sizeof(long_instance_name) - 1);
1299 long_instance_name[sizeof(long_instance_name) - 1] = 0;
1300
1301 dmMDNS::ServiceDesc invalid_service;
1302 memset(&invalid_service, 0, sizeof(invalid_service));
1303 invalid_service.m_Id = "mdns-invalid-01";
1304 invalid_service.m_InstanceName = long_instance_name;
1305 invalid_service.m_ServiceType = SERVICE_TYPE;
1306 invalid_service.m_Port = 18001;
1307 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::RegisterService(mdns, &invalid_service));
1308
1309 char long_host[80];
1310 memset(long_host, 'b', sizeof(long_host) - 1);
1311 long_host[sizeof(long_host) - 1] = 0;
1312
1313 dmMDNS::ServiceDesc invalid_host_service;
1314 memset(&invalid_host_service, 0, sizeof(invalid_host_service));
1315 invalid_host_service.m_Id = "mdns-invalid-host-01";
1316 invalid_host_service.m_InstanceName = "invalid-host";
1317 invalid_host_service.m_ServiceType = SERVICE_TYPE;
1318 invalid_host_service.m_Host = long_host;
1319 invalid_host_service.m_Port = 18002;
1320 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::RegisterService(mdns, &invalid_host_service));
1321
1322 dmMDNS::ServiceDesc missing_service_type_desc;
1323 memset(&missing_service_type_desc, 0, sizeof(missing_service_type_desc));
1324 missing_service_type_desc.m_Id = "mdns-missing-service-type-01";
1325 missing_service_type_desc.m_InstanceName = "missing-service-type";
1326 missing_service_type_desc.m_Port = 18003;
1327 ASSERT_EQ(dmMDNS::RESULT_INVALID_ARGS, dmMDNS::RegisterService(mdns, &missing_service_type_desc));
1328
1329 dmMDNS::TxtEntry too_many_entries[17];
1330 for (uint32_t i = 0; i < 17; ++i)
1331 {
1332 too_many_entries[i].m_Key = "k";
1333 too_many_entries[i].m_Value = "v";
1334 }

Callers

nothing calls this directly

Calls 15

RegisterServiceFunction · 0.85
DeregisterServiceFunction · 0.85
MakeUniqueNameFunction · 0.85
NewBrowserFunction · 0.85
WaitForEventFunction · 0.85
WaitForFlagFunction · 0.85
PumpFunction · 0.85
AddressFromIPStringFunction · 0.85
dmAtomicGet32Function · 0.85
SetupMulticastCaptureFunction · 0.85
SetupSendSocketFunction · 0.85
MakeUniqueServiceTypeFunction · 0.85

Tested by

no test coverage detected