From 28cd90091e7cc84e9d72b199e1499309391c43f8 Mon Sep 17 00:00:00 2001
From: Jouni Malinen <j@w1.fi>
Date: Sat, 12 Apr 2014 20:08:13 +0300
Subject: [PATCH] tests: P2P group idle timeout on GO

Signed-off-by: Jouni Malinen <j@w1.fi>
---
 tests/hwsim/test_p2p_grpform.py | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/tests/hwsim/test_p2p_grpform.py b/tests/hwsim/test_p2p_grpform.py
index 734d090e6..98c827cb2 100644
--- a/tests/hwsim/test_p2p_grpform.py
+++ b/tests/hwsim/test_p2p_grpform.py
@@ -146,10 +146,19 @@ def remove_group(dev1, dev2):
 
 def test_grpform(dev):
     """P2P group formation using PIN and authorized connection (init -> GO)"""
-    [i_res, r_res] = go_neg_pin_authorized(i_dev=dev[0], i_intent=15,
-                                           r_dev=dev[1], r_intent=0)
-    check_grpform_results(i_res, r_res)
-    remove_group(dev[0], dev[1])
+    try:
+        dev[0].request("SET p2p_group_idle 2")
+        [i_res, r_res] = go_neg_pin_authorized(i_dev=dev[0], i_intent=15,
+                                               r_dev=dev[1], r_intent=0)
+        check_grpform_results(i_res, r_res)
+        dev[1].remove_group()
+        ev = dev[0].wait_global_event(["P2P-GROUP-REMOVED"], timeout=10)
+        if ev is None:
+            raise Exception("GO did not remove group on idle timeout")
+        if "GO reason=IDLE" not in ev:
+            raise Exception("Unexpected group removal event: " + ev)
+    finally:
+        dev[0].request("SET p2p_group_idle 0")
 
 def test_grpform_a(dev):
     """P2P group formation using PIN and authorized connection (init -> GO) (init: group iface)"""