]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[1751] addition of a check of statistics data after a running auth is killed
authorNaoki Kambe <kambe@jprs.co.jp>
Thu, 15 Mar 2012 11:47:50 +0000 (20:47 +0900)
committerNaoki Kambe <kambe@jprs.co.jp>
Fri, 16 Mar 2012 04:43:35 +0000 (13:43 +0900)
src/bin/stats/tests/b10-stats_test.py
src/bin/stats/tests/test_utils.py

index d34c9981626421d60dc6f00fe447435b95ac7e57..5262b8a44245aca1531a4cda5c31f92c27148f7f 100644 (file)
@@ -400,6 +400,21 @@ class TestStats(unittest.TestCase):
         self.assertEqual(self.stats.statistics_data_bypid['Auth'][9999]['queries.tcp'], 1001)
         self.assertEqual(self.stats.statistics_data_bypid,
                          {'Auth': {9999: {'queries.tcp': 1001}}})
+        # kill running Auth, then statistics is reset
+        self.assertEqual(self.base.boss.server.pid_list[0][0], 9999)
+        killed = self.base.boss.server.pid_list.pop(0)
+        self.stats.update_statistics_data()
+        self.assertTrue('Auth' in self.stats.statistics_data)
+        self.assertTrue('queries.tcp' in self.stats.statistics_data['Auth'])
+        self.assertTrue('queries.udp' in self.stats.statistics_data['Auth'])
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.tcp'], 0)
+        self.assertEqual(self.stats.statistics_data['Auth']['queries.udp'], 0)
+        self.assertFalse('Auth' in self.stats.statistics_data_bypid)
+        # restore statistics data of killed auth
+        self.base.boss.server.pid_list = [ killed ] + self.base.boss.server.pid_list[:]
+        self.stats.update_statistics_data(owner='Auth',
+                                          pid=9999,
+                                          **{'queries.tcp':1001})
         # another pid of Auth
         self.stats.update_statistics_data(owner='Auth',
                                           pid=9998,
index 8d9ed503fffe398b49f4f88cb90f1b3d9f62e8a4..d91c1f282600380398a36c7a478fe9b3ac2c3095 100644 (file)
@@ -185,6 +185,10 @@ class MockBoss:
         self.spec_file.close()
         self.cc_session = self.mccs._session
         self.got_command_name = ''
+        self.pid_list = [[ 9999, "b10-auth"   ],
+                         [ 9998, "b10-auth-2" ],
+                         [ 9997, "b10-auth-3" ],
+                         [ 9996, "b10-auth-4" ]]
 
     def run(self):
         self.mccs.start()
@@ -218,10 +222,7 @@ class MockBoss:
         elif command == 'show_processes':
             # Return dummy pids
             return isc.config.create_answer(
-                0, [[ 9999, "b10-auth"   ],
-                    [ 9998, "b10-auth-2" ],
-                    [ 9997, "b10-auth-3" ],
-                    [ 9996, "b10-auth-4" ]])
+                0, self.pid_list)
         return isc.config.create_answer(1, "Unknown Command")
 
 class MockAuth: