~rhuddie/ubuntu-test-cases/healthcheck-to-dep8

« back to all changes in this revision

Viewing changes to tests/memevent/ubuntu_test_cases/memory_usage_measurement/tests/test_memory_usage.py

  • Committer: Paul Larson
  • Date: 2014-10-29 07:31:58 UTC
  • mfrom: (259.3.26 memevent-update-nfss)
  • Revision ID: paul.larson@canonical.com-20141029073158-kaj1z8kvua7moig0
QA fixes for memevent

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
"""Measure touch applications memory usage."""
2
 
 
3
 
import json
4
 
import logging
5
 
 
6
 
from autopilot.testcase import AutopilotTestCase
7
 
 
8
 
from ubuntu_test_cases.memory_usage_measurement.apps.browser import BrowserApp
9
 
from ubuntu_test_cases.memory_usage_measurement.apps.camera import CameraApp
10
 
from ubuntu_test_cases.memory_usage_measurement.apps.gallery import GalleryApp
11
 
from ubuntu_test_cases.memory_usage_measurement.apps.media_player import (
12
 
    MediaPlayerApp,
13
 
)
14
 
from ubuntu_test_cases.memory_usage_measurement.probes import SmemProbe
15
 
 
16
 
LOGGER = logging.getLogger(__file__)
17
 
 
18
 
 
19
 
class MemoryUsageTests(AutopilotTestCase):
20
 
 
21
 
    """Event based memory usage measurement scenario."""
22
 
 
23
 
    def test_scenario(self):
24
 
        """Scenario that takes measurements on some events."""
25
 
        self.smem = SmemProbe()
26
 
 
27
 
        # Make sure report is written with the data collected
28
 
        # even if the test failed to complete
29
 
        self.addCleanup(self._write_report)
30
 
 
31
 
        browser = BrowserApp(self)
32
 
        with self.smem.probe('Browser started'):
33
 
            browser.launch()
34
 
            self.smem.pids.append(browser.app.pid)
35
 
 
36
 
        with self.smem.probe('Browser finished loading'):
37
 
            url = 'http://acid3.acidtests.org/'
38
 
            browser.go_to_url(url)
39
 
            browser.assert_page_eventually_loaded(url)
40
 
 
41
 
        camera = CameraApp(self)
42
 
        with self.smem.probe('Camera app started'):
43
 
            camera.launch()
44
 
            self.smem.pids.append(camera.app.pid)
45
 
 
46
 
        with self.smem.probe('Camera app picture taken'):
47
 
            camera.take_picture()
48
 
 
49
 
        with self.smem.probe('Gallery app started'):
50
 
            gallery = GalleryApp(self)
51
 
            gallery.launch()
52
 
            self.smem.pids.append(gallery.app.pid)
53
 
 
54
 
        with self.smem.probe('Media player app started'):
55
 
            media_player = MediaPlayerApp(self)
56
 
            media_player.launch()
57
 
            self.smem.pids.append(media_player.app.pid)
58
 
 
59
 
        with self.smem.probe('Media player app finished playback'):
60
 
            media_player = MediaPlayerApp(self)
61
 
            media_player.launch('small.ogg')
62
 
            self.smem.pids.append(media_player.app.pid)
63
 
            media_player.assert_playback_finished()
64
 
 
65
 
        summary_msg = '\n'.join(
66
 
            ['- {}: {}'.format(event, pids)
67
 
             for event, pids in self.smem.threshold_exceeded_summary])
68
 
        self.assertListEqual(
69
 
            self.smem.threshold_exceeded_summary,
70
 
            [],
71
 
            'Threshold(s) exceded:\n{}'.format(summary_msg))
72
 
 
73
 
    def _write_report(self):
74
 
        """Write report to to results directory."""
75
 
        report_filename = '/tmp/memory_usage.json'
76
 
        with open(report_filename, 'w') as report_file:
77
 
            json.dump(self.smem.report, report_file,
78
 
                      indent=4, sort_keys=True)
79
 
            LOGGER.debug('Report written to {}'.format(report_file.name))