raise Exception("Unexpected P2P-DEVICE-FOUND event on seeker side")
dev[1].p2p_stop_find()
dev[1].dump_monitor()
+
+def test_p2ps_many_services_in_probe(dev):
+ """P2PS with large number of services in Probe Request/Response"""
+ long1 = 'org.example.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.a'
+ long2 = 'org.example.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.b'
+ long3 = 'org.example.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.c'
+ long4 = 'org.example.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.d'
+ long5 = 'org.example.0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789.e'
+ for name in [ long1, long2, long3, long4, long5 ]:
+ p2ps_advertise(r_dev=dev[0], r_role='1',
+ svc_name=name,
+ srv_info='I can do stuff')
+
+ if "OK" not in dev[1].global_request("P2P_FIND 10 type=social seek=%s seek=%s seek=%s seek=%s seek=%s" % (long1, long2, long3, long4, long5)):
+ raise Exception("Failed on P2P_FIND command")
+
+ events = ""
+ # Note: Require only four events since all the services do not fit within
+ # the length limit.
+ for i in range(4):
+ ev = dev[1].wait_global_event(["P2P-DEVICE-FOUND"], timeout=10)
+ if ev is None:
+ raise Exception("Missing P2P-DEVICE-FOUND")
+ events = events + ev
+ dev[1].p2p_stop_find()
+ dev[1].dump_monitor()
+ for name in [ long2, long3, long4, long5 ]:
+ if name not in events:
+ raise Exception("Service missing from peer events")