Added update_client and made misc. fixes.
The update_client will update weekly chromeos snapshots. test_client now
has more command-line options. command_executer now sets the nice value
of the command.
PRESUBMIT=passed
R=raymes,bjanakiraman
DELTA=98 (79 added, 0 deleted, 19 changed)
OCL=45833-p2
RCL=45854-p2
RDATE=2010/12/14 14:31:43
P4 change: 42607258
diff --git a/v14/automation/clients/test_client.py b/v14/automation/clients/test_client.py
index cb5695d..e8447f5 100755
--- a/v14/automation/clients/test_client.py
+++ b/v14/automation/clients/test_client.py
@@ -22,10 +22,17 @@
"--toolchain",
dest="toolchain",
default="trunk",
- help="Toolchain to use {trunk|branch|custom}"
+ help="Toolchain to use {trunk|branch}"
+ )
+ parser.add_option("-b",
+ "--board",
+ dest="board",
+ default="x86-generic",
+ help="Toolchain to use {trunk|branch}"
)
parser.add_option("-p",
"--p4-snapshot",
+ dest="p4_snapshot",
default="",
help="An existing perforce checkout for debugging."
)
@@ -34,7 +41,8 @@
server = xmlrpclib.Server("http://localhost:8000")
all_jobs = []
- tc_job = jobs_helper.CreateBuildTCJob(p4_snapshot=options.p4_snapshot)
+ tc_job = jobs_helper.CreateBuildTCJob(p4_snapshot=options.p4_snapshot,
+ toolchain=options.toolchain)
all_jobs.append(tc_job)
versions = options.chromeos_versions
diff --git a/v14/automation/clients/update_client.py b/v14/automation/clients/update_client.py
new file mode 100644
index 0000000..90e2b85
--- /dev/null
+++ b/v14/automation/clients/update_client.py
@@ -0,0 +1,40 @@
+import sys
+from utils import utils
+import xmlrpclib
+from automation.common import job
+from automation.common import job_group
+from automation.common import jobs_helper
+import optparse
+import os
+
+
+def Main(argv):
+ """The main function."""
+ parser = optparse.OptionParser()
+ parser.add_option("-c",
+ "--chromeos-version",
+ dest="chromeos_version",
+ default="weekly",
+ help=("Update what version of chromeos.")
+ )
+ parser.add_option("-l",
+ "--location",
+ dest="location",
+ default="/home/asharif/chromeos_checkouts/",
+ help="Location of the checkouts directory."
+ )
+ options = parser.parse_args(argv)[0]
+
+ server = xmlrpclib.Server("http://localhost:8000")
+
+ all_jobs = []
+ update_job = jobs_helper.CreateUpdateJob(options.chromeos_version,
+ options.location)
+ all_jobs.append(update_job)
+
+ group = job_group.JobGroup(os.uname()[1], "/tmp/", all_jobs, False, False)
+ server.ExecuteJobGroup(utils.Serialize(group))
+
+if __name__ == "__main__":
+ Main(sys.argv)
+
diff --git a/v14/automation/common/jobs_helper.py b/v14/automation/common/jobs_helper.py
index 45b5325..9c6d92f 100755
--- a/v14/automation/common/jobs_helper.py
+++ b/v14/automation/common/jobs_helper.py
@@ -3,6 +3,7 @@
import os
import re
import sys
+import time
p4_checkout_dir = "perforce2"
version_dir = "/gcctools/chromeos/v14/"
@@ -90,16 +91,27 @@
def CreateBuildTCJob(chromeos_version="top",
board="x86-generic",
- p4_snapshot=""):
+ p4_snapshot="",
+ toolchain="trunk"):
p4_port = "perforce2:2666"
p4_paths = []
p4_paths.append(("//depot2/gcctools/chromeos/v14/...", "gcctools/chromeos/v14/..."))
- p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
- "gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
- p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
- "gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
- p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
- "gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
+ if toolchain == "trunk":
+ toolchain_root = p4_checkout_dir + "/gcctools"
+ p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
+ "gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
+ p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
+ "gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
+ p4_paths.append(("//depot2/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
+ "gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
+ elif toolchain == "branch":
+ toolchain_root = p4_checkout_dir + "/branches/chromeos_toolchain_v1_release_branch/gcctools"
+ p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/...",
+ "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/gcc/gcc-4.4.3/..."))
+ p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/...",
+ "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-2.20.1-mobile/..."))
+ p4_paths.append(("//depot2/branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-20100303/...",
+ "branches/chromeos_toolchain_v1_release_branch/gcctools/google_vendor_src_branch/binutils/binutils-20100303/..."))
p4_revision = 1
command = GetInitialCommand()
@@ -107,9 +119,9 @@
p4_revision, p4_checkout_dir, p4_snapshot)
if chromeos_version == "weekly":
- command += "; sudo cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
+ command += "; cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
elif chromeos_version == "quarterly":
- command += " ; sudo cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
+ command += " ; cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
elif (chromeos_version == "top" or chromeos_version == "latest" or
re.match("^\d\.\d\.\d\.\d$", chromeos_version)):
command += ("; " + p4_version_dir + "/setup_chromeos.py" +
@@ -117,10 +129,11 @@
" --version=" + chromeos_version +
" --minilayout")
else:
- command += "; sudo cp -rp " + chromeos_version + " chromeos"
+ command += "; cp -rp " + chromeos_version + " chromeos"
+
command += ("; " + p4_version_dir + "/build_tc.py" +
- " --toolchain_root=" + p4_checkout_dir + "/gcctools" +
+ " --toolchain_root=" + toolchain_root +
" --chromeos_root=" + chromeos_root +
" --board=" + board +
" -f")
@@ -136,16 +149,16 @@
command += "; " + GetP4VersionDirCommand(p4_snapshot)
if chromeos_version == "weekly":
- command += "; sudo cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
+ command += "; cp -rp " + GetWeeklyChromeOSLocation() + " chromeos"
elif chromeos_version == "quarterly":
- command += " sudo cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
+ command += " cp -rp " + GetQuarterlyChromeOSLocation() + " chromeos"
elif (chromeos_version == "top" or chromeos_version == "latest" or
re.match("^\d\.\d\.\d\.\d$", chromeos_version)):
command += ("; " + p4_version_dir + "/setup_chromeos.py" +
" --dir=" + chromeos_root +
" --version=" + chromeos_version)
else:
- command += "; sudo cp -rp " + chromeos_version + " chromeos"
+ command += "; cp -rp " + chromeos_version + " chromeos"
command += ("; " + p4_version_dir + "/build_tc.py" +
" --toolchain_root=" + p4_checkout_dir + "/gcctools" +
@@ -163,7 +176,8 @@
command += ("; " + p4_version_dir + "/run_tests.py" +
" --remote=$SECONDARY_MACHINES[0] " +
" --chromeos_root=" + chromeos_root +
- " --board=" + board)
+ " --board=" + board +
+ " bvt Page")
to_return = CreateLinuxJob(command)
to_return.AddRequiredFolder(tc_job, p4_pkgs_dir, p4_pkgs_dir)
@@ -180,3 +194,19 @@
to_return.AddRequiredFolder(p4_job, p4_version_dir, p4_version_dir)
return to_return
+def CreateUpdateJob(chromeos_version="weekly",
+ location="/home/asharif/chromeos_checkouts/",
+ p4_snapshot=""):
+ command = GetInitialCommand()
+ dirname = time.asctime()
+ dirname = dirname.replace(" ", "-")
+ command += "; " + GetP4VersionDirCommand(p4_snapshot)
+ command += "; mkdir -p " + location
+ command += ("; " + p4_version_dir + "/setup_chromeos.py" +
+ " --dir=" + location + "/chromeos." + dirname +
+ " --version=latest")
+ command += (" && ln -s -T chromeos." + dirname + " " +
+ location + "/weekly")
+ to_return = CreateLinuxJob(command)
+ return to_return
+
diff --git a/v14/run_tests.py b/v14/run_tests.py
index 54a144f..2f3f2fd 100755
--- a/v14/run_tests.py
+++ b/v14/run_tests.py
@@ -25,7 +25,7 @@
parser.add_option("-b", "--board", dest="board",
help="The board of the target.")
- tests = "BuildVerify"
+ tests = "bvt"
(options, args) = parser.parse_args()
@@ -36,7 +36,8 @@
if options.chromeos_root is None:
options.chromeos_root = "../.."
- tests += " " + " ".join(args)
+ if args:
+ tests = " " + " ".join(args)
return RunRemoteTests(options.chromeos_root, options.remote,
options.board, tests)