Verifies API-level validation and service registration lifecycle rules. This locks down the contract before any wire-level behavior is exercised.
| 1275 | // Verifies API-level validation and service registration lifecycle rules. |
| 1276 | // This locks down the contract before any wire-level behavior is exercised. |
| 1277 | TEST(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(¶ms, &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 | } |
nothing calls this directly
no test coverage detected