Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Side by Side Diff: client/site_tests/factory_ExternalStorage/factory_ExternalStorage.py

Issue 3104020: Refactor -- make ui passive watcher, control a passive test list. (Closed) Base URL: http://src.chromium.org/git/autotest.git
Patch Set: rebase against ToT Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « client/bin/factory_ui_lib.py ('k') | client/site_tests/suite_Factory/control » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # -*- coding: utf-8 -*- 1 # -*- coding: utf-8 -*-
2 # 2 #
3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 7
8 # DESCRIPTION : 8 # DESCRIPTION :
9 # 9 #
10 # This is a factory test to test external SD and USB ports. 10 # This is a factory test to test external SD and USB ports.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 def expose_event(self, widget, event): 64 def expose_event(self, widget, event):
65 context = widget.window.cairo_create() 65 context = widget.window.cairo_create()
66 context.set_source_surface(self._image, 0, 0) 66 context.set_source_surface(self._image, 0, 0)
67 context.paint() 67 context.paint()
68 return True 68 return True
69 69
70 def register_callbacks(self, window): 70 def register_callbacks(self, window):
71 window.connect('key-release-event', self.key_release_callback) 71 window.connect('key-release-event', self.key_release_callback)
72 window.add_events(gtk.gdk.KEY_RELEASE_MASK) 72 window.add_events(gtk.gdk.KEY_RELEASE_MASK)
73 73
74 def rescan_storage(self, test_tag): 74 def rescan_storage(self, subtest_tag):
75 if self._state == _STATE_WAIT_INSERT: 75 if self._state == _STATE_WAIT_INSERT:
76 new_devices = find_all_storage_dev() 76 new_devices = find_all_storage_dev()
77 diff = new_devices - self._devices 77 diff = new_devices - self._devices
78 if diff: 78 if diff:
79 self._devices = new_devices 79 self._devices = new_devices
80 factory.log('found new devs : %s' % diff) 80 factory.log('found new devs : %s' % diff)
81 self._target_device = diff.pop() 81 self._target_device = diff.pop()
82 devpath = '/dev/%s' % self._target_device 82 devpath = '/dev/%s' % self._target_device
83 self._prompt.set_text(_TESTING_FMT_STR(devpath)) 83 self._prompt.set_text(_TESTING_FMT_STR(devpath))
84 self._image = self.testing_image 84 self._image = self.testing_image
85 self._pictogram.queue_draw() 85 self._pictogram.queue_draw()
86 gtk.main_iteration() 86 gtk.main_iteration()
87 test._result = self.job.run_test('hardware_StorageFio', 87 test._result = self.job.run_test('hardware_StorageFio',
88 dev=devpath, 88 dev=devpath,
89 quicktest=True, 89 quicktest=True,
90 tag=test_tag) 90 tag=subtest_tag)
91 self._prompt.set_text(_REMOVE_FMT_STR(self._media)) 91 self._prompt.set_text(_REMOVE_FMT_STR(self._media))
92 self._state = _STATE_WAIT_REMOVE 92 self._state = _STATE_WAIT_REMOVE
93 self._image = self.removal_image 93 self._image = self.removal_image
94 self._pictogram.queue_draw() 94 self._pictogram.queue_draw()
95 else: 95 else:
96 diff = self._devices - find_all_storage_dev() 96 diff = self._devices - find_all_storage_dev()
97 if len(diff) > 1: 97 if len(diff) > 1:
98 self._error += _ERR_TOO_MANY_REMOVE_FMT_STR( 98 self._error += _ERR_TOO_MANY_REMOVE_FMT_STR(
99 self._target_device, diff) 99 self._target_device, diff)
100 if diff and self._target_device not in diff: 100 if diff and self._target_device not in diff:
101 self._error += _ERR_DEV_NOT_REMOVE_FMT_STR( 101 self._error += _ERR_DEV_NOT_REMOVE_FMT_STR(
102 self._target_device) 102 self._target_device)
103 if diff: 103 if diff:
104 gtk.main_quit() 104 gtk.main_quit()
105 return True 105 return True
106 106
107 def run_once(self, 107 def run_once(self,
108 test_widget_size=None, 108 test_widget_size=None,
109 trigger_set=None, 109 trigger_set=None,
110 test_tag_prefix=None, 110 subtest_tag=None,
111 test_count=None,
112 media=None): 111 media=None):
113 112
114 factory.log('%s run_once' % self.__class__) 113 factory.log('%s run_once' % self.__class__)
115 114
116 self._error = '' 115 self._error = ''
117 116
118 os.chdir(self.srcdir) 117 os.chdir(self.srcdir)
119 118
120 self._media = media 119 self._media = media
121 factory.log('media = %s' % media) 120 factory.log('media = %s' % media)
122 121
123 self.insertion_image = cairo.ImageSurface.create_from_png( 122 self.insertion_image = cairo.ImageSurface.create_from_png(
124 '%s_insert.png' % media) 123 '%s_insert.png' % media)
125 self.removal_image = cairo.ImageSurface.create_from_png( 124 self.removal_image = cairo.ImageSurface.create_from_png(
126 '%s_remove.png' % media) 125 '%s_remove.png' % media)
127 self.testing_image = cairo.ImageSurface.create_from_png( 126 self.testing_image = cairo.ImageSurface.create_from_png(
128 '%s_testing.png' % media) 127 '%s_testing.png' % media)
129 128
130 image_size_set = set([(i.get_width(), i.get_height()) for 129 image_size_set = set([(i.get_width(), i.get_height()) for
131 i in [self.insertion_image, 130 i in [self.insertion_image,
132 self.removal_image, 131 self.removal_image,
133 self.testing_image]]) 132 self.testing_image]])
134 assert len(image_size_set) == 1 133 assert len(image_size_set) == 1
135 image_size = image_size_set.pop() 134 image_size = image_size_set.pop()
136 135
137 test_tag = '%s_%s' % (test_tag_prefix, test_count) 136 factory.log('subtest_tag = %s' % subtest_tag)
138 factory.log('test_tag = %s' % test_tag)
139 137
140 self._ft_state = ful.State(trigger_set) 138 self._ft_state = ful.State(trigger_set)
141 139
142 label = gtk.Label('') 140 label = gtk.Label('')
143 label.modify_font(pango.FontDescription('courier new condensed 20')) 141 label.modify_font(pango.FontDescription('courier new condensed 20'))
144 label.set_alignment(0.5, 0.5) 142 label.set_alignment(0.5, 0.5)
145 label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('light green')) 143 label.modify_fg(gtk.STATE_NORMAL, gtk.gdk.color_parse('light green'))
146 self._prompt = label 144 self._prompt = label
147 145
148 self._prompt.set_text(_INSERT_FMT_STR(self._media)) 146 self._prompt.set_text(_INSERT_FMT_STR(self._media))
149 self._state = _STATE_WAIT_INSERT 147 self._state = _STATE_WAIT_INSERT
150 self._image = self.insertion_image 148 self._image = self.insertion_image
151 self._result = False 149 self._result = False
152 self._devices = find_all_storage_dev() 150 self._devices = find_all_storage_dev()
153 gobject.timeout_add(250, self.rescan_storage, test_tag) 151 gobject.timeout_add(250, self.rescan_storage, subtest_tag)
154 152
155 drawing_area = gtk.DrawingArea() 153 drawing_area = gtk.DrawingArea()
156 drawing_area.set_size_request(*image_size) 154 drawing_area.set_size_request(*image_size)
157 drawing_area.connect('expose_event', self.expose_event) 155 drawing_area.connect('expose_event', self.expose_event)
158 self._pictogram = drawing_area 156 self._pictogram = drawing_area
159 157
160 vbox = gtk.VBox() 158 vbox = gtk.VBox()
161 vbox.pack_start(drawing_area, False, False) 159 vbox.pack_start(drawing_area, False, False)
162 vbox.pack_start(label, False, False) 160 vbox.pack_start(label, False, False)
163 161
164 test_widget = gtk.EventBox() 162 test_widget = gtk.EventBox()
165 test_widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('black')) 163 test_widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('black'))
166 test_widget.add(vbox) 164 test_widget.add(vbox)
167 165
168 self._ft_state.run_test_widget( 166 self._ft_state.run_test_widget(
169 test_widget=test_widget, 167 test_widget=test_widget,
170 test_widget_size=test_widget_size, 168 test_widget_size=test_widget_size,
171 window_registration_callback=self.register_callbacks) 169 window_registration_callback=self.register_callbacks)
172 170
173 if self._error: 171 if self._error:
174 raise error.TestFail(self._error) 172 raise error.TestFail(self._error)
175 173
176 factory.log('%s run_once finished' % self.__class__) 174 factory.log('%s run_once finished' % self.__class__)
OLDNEW
« no previous file with comments | « client/bin/factory_ui_lib.py ('k') | client/site_tests/suite_Factory/control » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698