# Copyright 2022 The IREE Authors # # Licensed under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception from typing import Tuple from io import StringIO import unittest import sys from iree.runtime.scripts.iree_devices import __main__ as cli def run_cli(*args) -> Tuple[int, str, str]: capture_stdout = StringIO() capture_stderr = StringIO() sys.stdout = capture_stdout sys.stderr = capture_stderr try: rc = cli.main(args) finally: sys.stdout = sys.__stdout__ sys.stderr = sys.__stderr__ return rc, capture_stdout.getvalue(), capture_stderr.getvalue() class DevicesCliTest(unittest.TestCase): def testLs(self): rc, output, err = run_cli("ls") self.assertEqual(rc, 0) self.assertIn("vmvx:0\tdefault", output) def testLsTryCreate(self): rc, output, err = run_cli("ls", "--try-create") self.assertEqual(rc, 0) self.assertIn("vmvx:0\tdefault\tSUCCESS", output) def testLsTryCreateExplicitDriver(self): rc, output, err = run_cli("ls", "--try-create", "-d", "vmvx") self.assertEqual(rc, 0) self.assertIn("vmvx:0\tdefault\tSUCCESS", output) def testLsTryCreateExplicitDriverNotFound(self): rc, output, err = run_cli("ls", "--try-create", "-d", "DOES_NOT_EXIST") self.assertEqual(rc, 0) self.assertIn("Could not create driver DOES_NOT_EXIST", err) def testTestIndexedDevice(self): rc, output, err = run_cli("test", "vmvx:0") self.assertEqual(rc, 0) self.assertIn("Creating device vmvx:0... SUCCESS", output) def testTestDefaultDevice(self): rc, output, err = run_cli("test", "vmvx") self.assertEqual(rc, 0) self.assertIn("Creating device vmvx... SUCCESS", output) def testTestNonExisting(self): rc, output, err = run_cli("test", "NOT_EXISTING") self.assertEqual(rc, 1) self.assertIn("Creating device NOT_EXISTING... ERROR", output) if __name__ == "__main__": unittest.main()