> On May 31, 2017, at 4:06 AM, Pavel Labath <lab...@google.com> wrote:
> 
> Thank you all for the pointers. I am going to look at these to see if
> there is anything that we could reuse, and come back. In the mean
> time, I'll reply to Mathiass's comments:
> 
> On 26 May 2017 at 19:11, Matthias Braun <mbr...@apple.com> wrote:
>>> Based on a not-too-detailed examination of the lit codebase, it does
>>> not seem that it would be too difficult to add this capability: During
>>> test discovery phase, we could copy the required files to the remote
>>> host. Then, when we run the test, we could just prefix the run command
>>> similarly to how it is done for running the tests under valgrind. It
>>> would be up to the user to provide a suitable command for copying and
>>> running files on the remote host (using rsync, ssh, telnet or any
>>> other transport he chooses).
>> 
>> This seems to be the crux to me: What does "required files" mean?
>> - All the executables mentioned in the RUN line? What llvm was compiled as a 
>> library, will we copy those too?
> For executables, I was considering just listing them explicitly (in
> lit.local.cfg, I guess), although parsing the RUN line should be
> possible as well. Even with RUN parsing, I expect we would some way to
> explicitly add files to the copy list (e.g. for lldb tests we also
> need to copy the program we are going to debug).
> 
> As for libraries, I see a couple of solutions:
> - declare these configurations unsupported for remote executions
> - copy over ALL shared libraries
> - have automatic tracking of runtime dependencies - all of this
> information should pass through llvm_add_library macro, so it should
> be mostly a matter of exporting this information out of cmake.
> These can be combined in the sense that we can start in the
> "unsupported" state, and then add some support for it once there is a
> need for it (we don't need it right now).
Sounds good. An actively managed list of files to copy in the lit configuration 
is a nice simple solution provided we have some regularily running public bot 
so we can catch missing things. But I assume setting up a bot was your plan 
anyway.

> 
>> - Can tests include other files? Do they need special annotations for that?
> My initial idea was to just copy over all files in the Inputs folder.
> Do you know of any other dependencies that I should consider?
I didn't notice that we had already developed a convention with the "Inputs" 
folders, so I guess all that is left to do is making sure all tests actually 
follow that convention.

> 
>> 
>> As another example: The llvm-testsuite can perform remote runs 
>> (test-suite/litsupport/remote.py if you want to see the implementation) that 
>> code makes the assumption that the remote devices has an NFS mount so the 
>> relevant parts of the filesystem look alike on the host and remote device. 
>> I'm not sure that is the best solution as NFS introduces its own sort of 
>> flakiness and potential skew in I/O heavy benchmarks but it avoids the 
>> question of what to copy to the device.
> 
> Requiring an NFS mount is a non-starter for us (no way to get an
> android device to create one), although if we would be able to hook in
> a custom script which does a copy to simulate the "mount", we might be
> able to work with it. Presently I am mostly thinking about correctness
> tests, and I am not worried about benchmark skews

Sure, I don't think I would end up with an NFS mount strategy if I would start 
fresh today. Also the test-suite benchmarks (esp. the SPEC) ones tend to have 
more complicated harder to track inputs.

- Matthias

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to