Added more test cases for IGMP and DHCP
diff --git a/src/test/igmp/igmpTest.py b/src/test/igmp/igmpTest.py
index 441e845..1670c62 100644
--- a/src/test/igmp/igmpTest.py
+++ b/src/test/igmp/igmpTest.py
@@ -45,6 +45,7 @@
     MMACGROUP1 = "01:00:5e:01:02:03"
     MMACGROUP2 = "01:00:5e:02:02:03"
     MINVALIDGROUP1 = "255.255.255.255"
+    MINVALIDGROUP2 = "255.255.255.255"
     IGMP_DST_MAC = "01:00:5e:00:01:01"
     IGMP_SRC_MAC = "5a:e1:ac:ec:4d:a1"
     IP_SRC = '1.2.3.4'
@@ -779,7 +780,7 @@
         join_state1 = IGMPTestState(groups = groups2)
         target1 = self.igmp_not_recv_task(self.V_INF1, groups2, join_state1)
         assert target1==1, 'EXPECTED FAILURE'
-        log.info('Interface is not receiving from multicast groups %s when we sent invalid join packet ' %groups2)
+        log.info('Interface is not receiving data from multicast groups %s when we sent invalid join packet ' %groups2)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
@@ -835,7 +836,7 @@
 
     @deferred(timeout=MCAST_TRAFFIC_TIMEOUT+20)
     def test_igmp_join_data_receiving_during_subscriber_link_down_up_functionality(self):
-        '''This test is sending join with source list A,B,C and exclude D,F,G with valid multicast group during receiving data shutdown the data receiving port  '''
+        '''This test is sending join with source list A,B,C and exclude D,F,G with valid multicast group during receiving data, shutdown the data receiving port  '''
         df = defer.Deferred()
         def igmp_join_data_receiving_during_subscriber_link_down_up_functionality():
             self.igmp_join_data_receiving_during_subscriber_link_down_up_functionality(df = df)
@@ -865,7 +866,7 @@
         join_state1 = IGMPTestState(groups = groups2)
         target1 = self.igmp_not_recv_task(self.V_INF1, groups2, join_state1)
         assert target1==1, 'EXPECTED FAILURE'
-        log.info('Interface is not receiving from multicast groups %s when we sent invalid join packet ' %groups2)
+        log.info('Interface is not receiving data from multicast groups %s when we send invalid join packet ' %groups2)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
@@ -900,7 +901,7 @@
         join_state1 = IGMPTestState(groups = groups2)
         target1 = self.igmp_not_recv_task(self.V_INF1, groups2, join_state1)
         assert target1==1, 'EXPECTED FAILURE'
-        log.info('Interface is not receiving from multicast groups %s when we sent invalid join packet ' %groups2)
+        log.info('Interface is not receiving data from multicast groups %s when we send invalid join packet ' %groups2)
         mcastTraffic1.stop()
         self.onos_ctrl.deactivate()
 
@@ -913,3 +914,21 @@
             df.callback(0)
         reactor.callLater(0, igmp_invalidClassDIP_as_srclistIP_join_packet_functionality)
         return df 
+
+    def send_igmp_join_listeningQuery(self, groups, src_list = ['1.2.3.4'], ip_pkt = None, iface = 'veth0', delay = 2):
+         self.onos_ssm_table_load(groups, src_list)
+         igmp = IGMPv3(type = IGMP_TYPE_V3_MEMBERSHIP_REPORT, 
+                       max_resp_code=30,
+                       gaddr=self.IP_DST)
+         for g in groups:
+               gr = IGMPv3gr(rtype=IGMP_V3_GR_TYPE_EXCLUDE, mcaddr=g)
+               gr.sources = src_list
+               igmp.grps.append(gr)
+         if ip_pkt is None:
+               ip_pkt = self.igmp_eth/self.igmp_ip
+         pkt = ip_pkt/igmp
+         IGMPv3.fixup(pkt)
+         resp = srp1(pkt, iface=iface)
+         resp[0].summary()
+         if delay != 0:
+             time.sleep(delay)