label.py revision 0440388677b2445f4f8273b6c2b4d82601b1aca3
1#!/usr/bin/python 2 3# Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 4# Use of this source code is governed by a BSD-style license that can be 5# found in the LICENSE file. 6 7"""The label of benchamrks.""" 8 9import os 10from utils.file_utils import FileUtils 11from utils import misc 12 13 14class Label(object): 15 def __init__(self, name, chromeos_image, chromeos_root, board, remote, 16 image_args, image_md5sum, cache_dir, chrome_src=None): 17 # Expand ~ 18 chromeos_root = os.path.expanduser(chromeos_root) 19 chromeos_image = os.path.expanduser(chromeos_image) 20 21 self.name = name 22 self.chromeos_image = chromeos_image 23 self.board = board 24 self.remote = remote 25 self.image_args = image_args 26 self.image_md5sum = image_md5sum 27 self.cache_dir = cache_dir 28 29 if not chromeos_root: 30 chromeos_root = FileUtils().ChromeOSRootFromImage(chromeos_image) 31 if not chromeos_root: 32 raise Exception("No ChromeOS root given for label '%s' and could not " 33 "determine one from image path: '%s'." % 34 (name, chromeos_image)) 35 else: 36 chromeos_root = FileUtils().CanonicalizeChromeOSRoot(chromeos_root) 37 if not chromeos_root: 38 raise Exception("Invalid ChromeOS root given for label '%s': '%s'." 39 % (name, chromeos_root)) 40 41 self.chromeos_root = chromeos_root 42 if not chrome_src: 43 self.chrome_src = os.path.join(self.chromeos_root, 44 "chroot/var/cache/chromeos-chrome/chrome-src-internal/src") 45 if not os.path.exists(self.chrome_src): 46 self.chrome_src = os.path.join(self.chromeos_root, 47 "chroot/var/cache/chromeos-chrome/chrome-src/src") 48 else: 49 chromeos_src = misc.CanonicalizePath(chrome_src) 50 if not chromeos_src: 51 raise Exception("Invalid Chrome src given for label '%s': '%s'." 52 % (name, chrome_src)) 53 self.chrome_src = chromeos_src 54 55 56class MockLabel(object): 57 def __init__(self, name, chromeos_image, chromeos_root, board, remote, 58 image_args, image_md5sum, cache_dir, chrome_src=None): 59 self.name = name 60 self.chromeos_image = chromeos_image 61 self.board = board 62 self.remote = remote 63 self.cache_dir = cache_dir 64 if not chromeos_root: 65 self.chromeos_root = "/tmp/chromeos_root" 66 else: 67 self.chromeos_root = chromeos_root 68 self.image_args = image_args 69 self.image_md5sum = image_md5sum 70