xref: /aosp_15_r20/external/toolchain-utils/remote_test.py (revision 760c253c1ed00ce9abd48f8546f08516e57485fe)
1*760c253cSXin Li#!/usr/bin/env python3
2*760c253cSXin Li# -*- coding: utf-8 -*-
3*760c253cSXin Li#
4*760c253cSXin Li# Copyright 2020 The ChromiumOS Authors
5*760c253cSXin Li# Use of this source code is governed by a BSD-style license that can be
6*760c253cSXin Li# found in the LICENSE file.
7*760c253cSXin Li
8*760c253cSXin Li"""Script to wrap test_that script.
9*760c253cSXin Li
10*760c253cSXin LiThis script can login to the chromeos machine using the test private key.
11*760c253cSXin Li"""
12*760c253cSXin Li
13*760c253cSXin Li
14*760c253cSXin Li__author__ = "[email protected] (Ahmad Sharif)"
15*760c253cSXin Li
16*760c253cSXin Liimport argparse
17*760c253cSXin Liimport os
18*760c253cSXin Liimport sys
19*760c253cSXin Li
20*760c253cSXin Lifrom cros_utils import command_executer
21*760c253cSXin Lifrom cros_utils import misc
22*760c253cSXin Li
23*760c253cSXin Li
24*760c253cSXin Lidef Usage(parser, message):
25*760c253cSXin Li    print("ERROR: %s" % message)
26*760c253cSXin Li    parser.print_help()
27*760c253cSXin Li    sys.exit(0)
28*760c253cSXin Li
29*760c253cSXin Li
30*760c253cSXin Lidef Main(argv):
31*760c253cSXin Li    parser = argparse.ArgumentParser()
32*760c253cSXin Li    parser.add_argument(
33*760c253cSXin Li        "-c",
34*760c253cSXin Li        "--chromeos_root",
35*760c253cSXin Li        dest="chromeos_root",
36*760c253cSXin Li        help="ChromeOS root checkout directory",
37*760c253cSXin Li    )
38*760c253cSXin Li    parser.add_argument(
39*760c253cSXin Li        "-r", "--remote", dest="remote", help="Remote chromeos device."
40*760c253cSXin Li    )
41*760c253cSXin Li    options = parser.parse_args(argv)
42*760c253cSXin Li    if options.chromeos_root is None:
43*760c253cSXin Li        Usage(parser, "chromeos_root must be given")
44*760c253cSXin Li
45*760c253cSXin Li    if options.remote is None:
46*760c253cSXin Li        Usage(parser, "remote must be given")
47*760c253cSXin Li
48*760c253cSXin Li    options.chromeos_root = os.path.expanduser(options.chromeos_root)
49*760c253cSXin Li
50*760c253cSXin Li    command = "ls -lt /"
51*760c253cSXin Li    ce = command_executer.GetCommandExecuter()
52*760c253cSXin Li    ce.CrosRunCommand(
53*760c253cSXin Li        command, chromeos_root=options.chromeos_root, machine=options.remote
54*760c253cSXin Li    )
55*760c253cSXin Li
56*760c253cSXin Li    version_dir_path, script_name = misc.GetRoot(sys.argv[0])
57*760c253cSXin Li    version_dir = misc.GetRoot(version_dir_path)[1]
58*760c253cSXin Li
59*760c253cSXin Li    # Tests to copy directories and files to the chromeos box.
60*760c253cSXin Li    ce.CopyFiles(
61*760c253cSXin Li        version_dir_path,
62*760c253cSXin Li        "/tmp/" + version_dir,
63*760c253cSXin Li        dest_machine=options.remote,
64*760c253cSXin Li        dest_cros=True,
65*760c253cSXin Li        chromeos_root=options.chromeos_root,
66*760c253cSXin Li    )
67*760c253cSXin Li    ce.CopyFiles(
68*760c253cSXin Li        version_dir_path,
69*760c253cSXin Li        "/tmp/" + version_dir + "1",
70*760c253cSXin Li        dest_machine=options.remote,
71*760c253cSXin Li        dest_cros=True,
72*760c253cSXin Li        chromeos_root=options.chromeos_root,
73*760c253cSXin Li    )
74*760c253cSXin Li    ce.CopyFiles(
75*760c253cSXin Li        sys.argv[0],
76*760c253cSXin Li        "/tmp/" + script_name,
77*760c253cSXin Li        recursive=False,
78*760c253cSXin Li        dest_machine=options.remote,
79*760c253cSXin Li        dest_cros=True,
80*760c253cSXin Li        chromeos_root=options.chromeos_root,
81*760c253cSXin Li    )
82*760c253cSXin Li    ce.CopyFiles(
83*760c253cSXin Li        sys.argv[0],
84*760c253cSXin Li        "/tmp/" + script_name + "1",
85*760c253cSXin Li        recursive=False,
86*760c253cSXin Li        dest_machine=options.remote,
87*760c253cSXin Li        dest_cros=True,
88*760c253cSXin Li        chromeos_root=options.chromeos_root,
89*760c253cSXin Li    )
90*760c253cSXin Li
91*760c253cSXin Li    # Test to copy directories and files from the chromeos box.
92*760c253cSXin Li    ce.CopyFiles(
93*760c253cSXin Li        "/tmp/" + script_name,
94*760c253cSXin Li        "/tmp/hello",
95*760c253cSXin Li        recursive=False,
96*760c253cSXin Li        src_machine=options.remote,
97*760c253cSXin Li        src_cros=True,
98*760c253cSXin Li        chromeos_root=options.chromeos_root,
99*760c253cSXin Li    )
100*760c253cSXin Li    ce.CopyFiles(
101*760c253cSXin Li        "/tmp/" + script_name,
102*760c253cSXin Li        "/tmp/" + script_name,
103*760c253cSXin Li        recursive=False,
104*760c253cSXin Li        src_machine=options.remote,
105*760c253cSXin Li        src_cros=True,
106*760c253cSXin Li        chromeos_root=options.chromeos_root,
107*760c253cSXin Li    )
108*760c253cSXin Li    board = ce.CrosLearnBoard(options.chromeos_root, options.remote)
109*760c253cSXin Li    print(board)
110*760c253cSXin Li    return 0
111*760c253cSXin Li
112*760c253cSXin Li
113*760c253cSXin Liif __name__ == "__main__":
114*760c253cSXin Li    Main(sys.argv[1:])
115