1*99451b44SJordan Rupprecht"""
2*99451b44SJordan RupprechtTest that lldb command "command source" works correctly.
3*99451b44SJordan Rupprecht"""
4*99451b44SJordan Rupprecht
5*99451b44SJordan Rupprecht
6*99451b44SJordan Rupprecht
7*99451b44SJordan Rupprechtimport lldb
8*99451b44SJordan Rupprechtfrom lldbsuite.test.decorators import *
9*99451b44SJordan Rupprechtfrom lldbsuite.test.lldbtest import *
10*99451b44SJordan Rupprechtfrom lldbsuite.test import lldbutil
11*99451b44SJordan Rupprecht
12*99451b44SJordan Rupprecht
13*99451b44SJordan Rupprechtclass CommandSourceTestCase(TestBase):
14*99451b44SJordan Rupprecht
15*99451b44SJordan Rupprecht    mydir = TestBase.compute_mydir(__file__)
16*99451b44SJordan Rupprecht
17*99451b44SJordan Rupprecht    @no_debug_info_test
18*99451b44SJordan Rupprecht    def test_command_source(self):
19*99451b44SJordan Rupprecht        """Test that lldb command "command source" works correctly."""
20*99451b44SJordan Rupprecht
21*99451b44SJordan Rupprecht        # Sourcing .lldb in the current working directory, which in turn imports
22*99451b44SJordan Rupprecht        # the "my" package that defines the date() function.
23*99451b44SJordan Rupprecht        self.runCmd("command source .lldb")
24*99451b44SJordan Rupprecht
25*99451b44SJordan Rupprecht        # Python should evaluate "my.date()" successfully.
26*99451b44SJordan Rupprecht        command_interpreter = self.dbg.GetCommandInterpreter()
27*99451b44SJordan Rupprecht        self.assertTrue(command_interpreter, VALID_COMMAND_INTERPRETER)
28*99451b44SJordan Rupprecht        result = lldb.SBCommandReturnObject()
29*99451b44SJordan Rupprecht        command_interpreter.HandleCommand("script my.date()", result)
30*99451b44SJordan Rupprecht
31*99451b44SJordan Rupprecht        import datetime
32*99451b44SJordan Rupprecht        self.expect(result.GetOutput(), "script my.date() runs successfully",
33*99451b44SJordan Rupprecht                    exe=False,
34*99451b44SJordan Rupprecht                    substrs=[str(datetime.date.today())])
35