diff --git a/tests/hwsim/test_p2p_messages.py b/tests/hwsim/test_p2p_messages.py index 1da7afc00..3cd333df9 100644 --- a/tests/hwsim/test_p2p_messages.py +++ b/tests/hwsim/test_p2p_messages.py @@ -1950,3 +1950,31 @@ def test_p2p_msg_unexpected_go_neg_resp(dev, apdev): mgmt_tx(dev[0], "MGMT_TX {} {} freq={} wait_time=200 no_cck=1 action={}".format(addr1, addr1, p2p['freq'], binascii.hexlify(msg['payload']))) check_p2p_go_neg_fail_event(dev[1], P2P_SC_FAIL_NO_COMMON_CHANNELS) rx_go_neg_conf(dev[0], P2P_SC_FAIL_NO_COMMON_CHANNELS, dialog_token) + +def test_p2p_msg_group_info(dev): + """P2P protocol tests for Group Info parsing""" + try: + _test_p2p_msg_group_info(dev) + finally: + dev[0].request("VENDOR_ELEM_REMOVE 2 *") + +def _test_p2p_msg_group_info(dev): + tests = [ "dd08506f9a090e010001", + "dd08506f9a090e010000", + "dd20506f9a090e190018" + "112233445566" + "aabbccddeeff" + "00" + "0000" + "0000000000000000" + "ff", + "dd20506f9a090e190018" + "112233445566" + "aabbccddeeff" + "00" + "0000" + "0000000000000000" + "00", + "dd24506f9a090e1d001c" + "112233445566" + "aabbccddeeff" + "00" + "0000" + "0000000000000000" + "00" + "00000000", + "dd24506f9a090e1d001c" + "112233445566" + "aabbccddeeff" + "00" + "0000" + "0000000000000000" + "00" + "10110001", + "dd24506f9a090e1d001c" + "112233445566" + "aabbccddeeff" + "00" + "0000" + "0000000000000000" + "00" + "1011ffff" ] + for t in tests: + dev[0].request("VENDOR_ELEM_REMOVE 2 *") + if "OK" not in dev[0].request("VENDOR_ELEM_ADD 2 " + t): + raise Exception("VENDOR_ELEM_ADD failed") + dev[0].p2p_start_go(freq=2412) + bssid = dev[0].get_group_status_field('bssid') + dev[2].request("BSS_FLUSH 0") + dev[2].scan_for_bss(bssid, freq=2412, force_scan=True) + bss = dev[2].request("BSS " + bssid) + if 'p2p_group_client' in bss: + raise Exception("Unexpected p2p_group_client") + dev[0].remove_group()