blob: db9fbfddc4670c63d28580f7744f0cee140c0854 [file] [log] [blame]
Ben Murdoch097c5b22016-05-18 11:27:45 +01001# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5from devil.android import forwarder
6from pylib import chrome_test_server_spawner
7from pylib.base import test_server
8
9
10class LocalTestServerSpawner(test_server.TestServer):
11
12 def __init__(self, port, device, tool):
13 super(LocalTestServerSpawner, self).__init__()
14 self._device = device
15 self._spawning_server = chrome_test_server_spawner.SpawningServer(
16 port, device, tool)
17 self._tool = tool
18
19 @property
20 def server_address(self):
21 return self._spawning_server.server.server_address
22
23 @property
24 def port(self):
25 return self.server_address[1]
26
27 #override
28 def SetUp(self):
29 self._device.WriteFile(
30 '%s/net-test-server-ports' % self._device.GetExternalStoragePath(),
31 '%s:0' % str(self.port))
32 forwarder.Forwarder.Map(
33 [(self.port, self.port)], self._device, self._tool)
34 self._spawning_server.Start()
35
36 #override
37 def Reset(self):
38 self._spawning_server.CleanupState()
39
40 #override
41 def TearDown(self):
42 self.Reset()
43 self._spawning_server.Stop()
44 forwarder.Forwarder.UnmapDevicePort(self.port, self._device)
45