• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/usr/bin/env python
2#
3# Copyright (C) 2016 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17
18import logging
19
20from vts.runners.host import asserts
21from vts.runners.host import base_test
22from vts.runners.host import const
23from vts.runners.host import test_runner
24from vts.utils.python.controllers import android_device
25
26
27class VtsCodelabHelloWorldTest(base_test.BaseTestClass):
28    """Two hello world test cases which use the shell driver."""
29
30    def setUpClass(self):
31        self.dut = self.registerController(android_device)[0]
32
33    def testEcho1(self):
34        """A simple testcase which sends a command."""
35        self.dut.shell.InvokeTerminal("my_shell1")  # creates a remote shell instance.
36        results = self.dut.shell.my_shell1.Execute("echo hello_world")  # runs a shell command.
37        logging.info(str(results[const.STDOUT]))  # prints the stdout
38        asserts.assertEqual(results[const.STDOUT][0].strip(), "hello_world")  # checks the stdout
39        asserts.assertEqual(results[const.EXIT_CODE][0], 0)  # checks the exit code
40
41    def testEcho2(self):
42        """A simple testcase which sends two commands."""
43        self.dut.shell.InvokeTerminal("my_shell2")
44        my_shell = getattr(self.dut.shell, "my_shell2")
45        results = my_shell.Execute(["echo hello", "echo world"])
46        logging.info(str(results[const.STDOUT]))
47        asserts.assertEqual(len(results[const.STDOUT]), 2)  # check the number of processed commands
48        asserts.assertEqual(results[const.STDOUT][0].strip(), "hello")
49        asserts.assertEqual(results[const.STDOUT][1].strip(), "world")
50        asserts.assertEqual(results[const.EXIT_CODE][0], 0)
51        asserts.assertEqual(results[const.EXIT_CODE][1], 0)
52
53
54if __name__ == "__main__":
55    test_runner.main()
56