label.py revision 4467f004e7f0854963bec90daff1879fbd9d2fec
1#!/usr/bin/python
2
3# Copyright 2011 Google Inc. All Rights Reserved.
4
5"""The label of benchamrks."""
6
7import os
8from utils.file_utils import FileUtils
9
10
11class Label(object):
12  def __init__(self, name, chromeos_image, chromeos_root, board, remote,
13               image_args):
14    # Expand ~
15    chromeos_root = os.path.expanduser(chromeos_root)
16    chromeos_image = os.path.expanduser(chromeos_image)
17
18    self.name = name
19    self.chromeos_image = chromeos_image
20    self.board = board
21    self.remote = remote
22    self.image_args = image_args
23
24    if not chromeos_root:
25      chromeos_root = FileUtils().ChromeOSRootFromImage(chromeos_image)
26      if not chromeos_root:
27        raise Exception("No ChromeOS root given for label '%s' and could not "
28                        "determine one from image path: '%s'." %
29                        (name, chromeos_image))
30    else:
31      chromeos_root = FileUtils().CanonicalizeChromeOSRoot(chromeos_root)
32      if not chromeos_root:
33        raise Exception("Invalid ChromeOS root given for label '%s': '%s'."
34                        % (name, chromeos_root))
35
36    self.chromeos_root = chromeos_root
37
38
39class MockLabel(object):
40  def __init__(self, name, chromeos_image, chromeos_root, board, remote,
41               image_args):
42    self.name = name
43    self.chromeos_image = chromeos_image
44    self.board = board
45    self.remote = remote
46    if not chromeos_root:
47      self.chromeos_root = "/tmp/chromeos_root"
48    else:
49      self.chromeos_root = chromeos_root
50    self.image_args = image_args
51