teak-llvm/lldb/packages/Python/lldbsuite/test/python_api/interpreter/TestRunCommandInterpreterAPI.py
Lawrence D'Anna d5768e3d0e Fix test breakage caused by r374424
Summary:
The build directory name is based on the test method name, so having
two test methods with the same name in the same test file is a
problem, even if they're in different test classes.

On linux and darwin this conflict can go unnoticed, but windows
has different filesystem semantics and it will fail when one
process tries to delete files still held open by another.

The problem is fixed just by changing the name of one of the test
methods.

Reviewers: JDevlieghere, jasonmolenda, labath, stella.stamenova

Reviewed By: stella.stamenova

Subscribers: lldb-commits

Tags: #lldb

Differential Revision: https://reviews.llvm.org/D68951

llvm-svn: 374803
2019-10-14 18:53:27 +00:00

76 lines
2.4 KiB
Python

"""Test the RunCommandInterpreter API."""
import os
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
class CommandRunInterpreterLegacyAPICase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
TestBase.setUp(self)
self.stdin_path = self.getBuildArtifact("stdin.txt")
with open(self.stdin_path, 'w') as input_handle:
input_handle.write("nonexistingcommand\nquit")
# Python will close the file descriptor if all references
# to the filehandle object lapse, so we need to keep one
# around.
self.filehandle = open(self.stdin_path, 'r')
self.dbg.SetInputFileHandle(self.filehandle, False)
# No need to track the output
self.devnull = open(os.devnull, 'w')
self.dbg.SetOutputFileHandle(self.devnull, False)
self.dbg.SetErrorFileHandle (self.devnull, False)
@add_test_categories(['pyapi'])
def test_run_session_with_error_and_quit_legacy(self):
"""Run non-existing and quit command returns appropriate values"""
n_errors, quit_requested, has_crashed = self.dbg.RunCommandInterpreter(
True, False, lldb.SBCommandInterpreterRunOptions(), 0, False,
False)
self.assertGreater(n_errors, 0)
self.assertTrue(quit_requested)
self.assertFalse(has_crashed)
class CommandRunInterpreterAPICase(TestBase):
NO_DEBUG_INFO_TESTCASE = True
mydir = TestBase.compute_mydir(__file__)
def setUp(self):
TestBase.setUp(self)
self.stdin_path = self.getBuildArtifact("stdin.txt")
with open(self.stdin_path, 'w') as input_handle:
input_handle.write("nonexistingcommand\nquit")
self.dbg.SetInputFile(open(self.stdin_path, 'r'))
# No need to track the output
devnull = open(os.devnull, 'w')
self.dbg.SetOutputFile(devnull)
self.dbg.SetErrorFile(devnull)
@add_test_categories(['pyapi'])
def test_run_session_with_error_and_quit(self):
"""Run non-existing and quit command returns appropriate values"""
n_errors, quit_requested, has_crashed = self.dbg.RunCommandInterpreter(
True, False, lldb.SBCommandInterpreterRunOptions(), 0, False,
False)
self.assertGreater(n_errors, 0)
self.assertTrue(quit_requested)
self.assertFalse(has_crashed)