1f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward#!/usr/bin/python
2f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
3f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardimport gc
4f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardimport logging
567ad67d564fd605dc0ac3671b1620a601cfc6c90Justin Giorgiimport unittest
6f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
7f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardimport common
8f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardfrom autotest_lib.client.common_lib.test_utils import mock
9f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardfrom autotest_lib.scheduler import gc_stats
10f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
11f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
12f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardclass TestGcStats(unittest.TestCase):
13f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward    def setUp(self):
14f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        self.god = mock.mock_god()
15f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
16f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
17f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward    def tearDown(self):
18f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        self.god.unstub_all()
19f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
20f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
21f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward    def test_log_garbage_collector_stats(self):
22f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        # Call this for code coverage.
23f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        # Prevent log spam from this test but do test that the log
24f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        # message formats correctly.
25f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        def _mock_logging_func(message, *args):
26f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward            if args:
27f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward                message %= args
28f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        self.god.stub_with(logging, 'debug', _mock_logging_func)
29f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        self.god.stub_with(logging, 'info', _mock_logging_func)
30f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        gc_stats._log_garbage_collector_stats()
31f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        # Add a new dict, exercise the delta counting & printing code.
32f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        y = {}
33f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward        gc_stats._log_garbage_collector_stats(1)
34f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
35f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward
36f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshowardif __name__ == '__main__':
37f13a9e2b856ae9e4e2f43ef6cbc6083c7435167bshoward    unittest.main()
38