[Lldb-commits] [PATCH] Get test/types tests passing on remote targets

Zachary Turner zturner at google.com
Wed Jan 28 17:22:27 PST 2015


Would you mind doing the temp file changes too? It wasn't your code that
did it with hardcoded paths, but since you're in there anyway, maybe it's a
quick fix?
On Wed, Jan 28, 2015 at 5:08 PM Vince Harron <vharron at google.com> wrote:

> refactored process_launch_o into separate function
> using os.path.join instead of string.format
> using assertIsNotNone(
>
>   instead of assertNotEqual(None,
>
> using lldb.remote_platform.GetWorkingDirectory()
>
>   instead of using lldb.remote_platform_working_dir
>
>
> http://reviews.llvm.org/D7221
>
> Files:
>   source/Commands/CommandObjectPlatform.cpp
>   test/types/AbstractBase.py
>
> Index: source/Commands/CommandObjectPlatform.cpp
> ===================================================================
> --- source/Commands/CommandObjectPlatform.cpp
> +++ source/Commands/CommandObjectPlatform.cpp
> @@ -2281,19 +2281,16 @@
>      LoadSubCommand ("connect", CommandObjectSP (new
> CommandObjectPlatformConnect (interpreter)));
>      LoadSubCommand ("disconnect", CommandObjectSP (new
> CommandObjectPlatformDisconnect (interpreter)));
>      LoadSubCommand ("settings", CommandObjectSP (new
> CommandObjectPlatformSettings (interpreter)));
> -#ifdef LLDB_CONFIGURATION_DEBUG
>      LoadSubCommand ("mkdir", CommandObjectSP (new
> CommandObjectPlatformMkDir (interpreter)));
>      LoadSubCommand ("file", CommandObjectSP (new
> CommandObjectPlatformFile (interpreter)));
>      LoadSubCommand ("get-file", CommandObjectSP (new
> CommandObjectPlatformGetFile (interpreter)));
>      LoadSubCommand ("get-size", CommandObjectSP (new
> CommandObjectPlatformGetSize (interpreter)));
>      LoadSubCommand ("put-file", CommandObjectSP (new
> CommandObjectPlatformPutFile (interpreter)));
> -#endif
>      LoadSubCommand ("process", CommandObjectSP (new
> CommandObjectPlatformProcess (interpreter)));
>      LoadSubCommand ("shell", CommandObjectSP (new
> CommandObjectPlatformShell (interpreter)));
>      LoadSubCommand ("target-install", CommandObjectSP (new
> CommandObjectPlatformInstall (interpreter)));
>  }
>
> -
>  //----------------------------------------------------------------------
>  // Destructor
>  //----------------------------------------------------------------------
> Index: test/types/AbstractBase.py
> ===================================================================
> --- test/types/AbstractBase.py
> +++ test/types/AbstractBase.py
> @@ -50,7 +50,7 @@
>      #         True: build dSYM file
>       #
>      #         False: build DWARF map
>      #
>      # bc -> blockCaptured (defaulted to False)
>      #
> -    #         True: testing vars of various basic types from isnide a
> block    #
> +    #         True: testing vars of various basic types from inside a
> block    #
>      #         False: testing vars of various basic types from a function
>      #
>      # qd -> quotedDisplay (defaulted to False)
>      #
>      #         True: the output from 'frame var' or 'expr var' contains a
> pair  #
> @@ -81,14 +81,29 @@
>          else:
>              self.generic_type_tester(self.exe_name, atoms,
> blockCaptured=bc, quotedDisplay=qd)
>
> +    def process_launch_o(self, localPath):
> +        # process launch command output redirect always goes to host the
> process is running on
> +        if lldb.remote_platform:
> +            # process launch -o requires a path that is valid on the
> target
> +            self.assertIsNotNone(lldb.remote_platform.
> GetWorkingDirectory())
> +            remote_path = os.path.join(lldb.remote_
> platform.GetWorkingDirectory(), "lldb-stdout-redirect.txt")
> +            self.runCmd('process launch -o {remote}'.format(remote=
> remote_path))
> +            # copy remote_path to local host
> +            self.runCmd('platform get-file {remote} "{local}"'.format(
> +                remote=remote_path, local=self.golden_filename))
> +        else:
> +            self.runCmd('process launch -o "{local}"'.format(local=self.
> golden_filename))
> +
>      def generic_type_tester(self, exe_name, atoms, quotedDisplay=False,
> blockCaptured=False):
>          """Test that variables with basic types are displayed
> correctly."""
>
>          self.runCmd("file %s" % exe_name, CURRENT_EXECUTABLE_SET)
>
>          # First, capture the golden output emitted by the oracle, i.e.,
> the
>          # series of printf statements.
> -        self.runCmd('process launch -o "%s"'%(self.golden_filename))
> +
> +        self.process_launch_o(self.golden_filename)
> +
>          with open(self.golden_filename) as f:
>              go = f.read()
>
> @@ -169,7 +184,9 @@
>
>          # First, capture the golden output emitted by the oracle, i.e.,
> the
>          # series of printf statements.
> -        self.runCmd('process launch -o "%s"'%(self.golden_filename))
> +
> +        self.process_launch_o(self.golden_filename)
> +
>          with open(self.golden_filename) as f:
>              go = f.read()
>
> EMAIL PREFERENCES
>   http://reviews.llvm.org/settings/panel/emailpreferences/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150129/16f23783/attachment.html>


More information about the lldb-commits mailing list