<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Feb 6, 2018 at 8:19 AM Pavel Labath via lldb-dev <<a href="mailto:lldb-dev@lists.llvm.org">lldb-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 6 February 2018 at 15:41, Davide Italiano <<a href="mailto:dccitaliano@gmail.com" target="_blank">dccitaliano@gmail.com</a>> wrote:<br>
> On Tue, Feb 6, 2018 at 7:09 AM, Pavel Labath <<a href="mailto:labath@google.com" target="_blank">labath@google.com</a>> wrote:<br>
>> On 6 February 2018 at 04:11, Davide Italiano via lldb-dev<br>
>><br>
>> So, I guess my question is: are you guys looking into making sure that<br>
>> others are also able to reproduce the 0-fail+0-xpass state? I would<br>
>> love to run the mac test suite locally, as I tend to touch a lot of<br>
>> stuff that impacts all targets, but as it stands now, I have very<br>
>> little confidence that the test I am running reflect in any way the<br>
>> results you will get when you run the test on your end.<br>
>><br>
>> I am ready to supply any test logs or information you need if you want<br>
>> to try to tackle this.<br>
>><br>
><br>
> Yes, I'm definitely interested in making the testusuite<br>
> working/reliable on any configuration.<br>
> I was afraid there were a lot of latent issues, that's why I sent this<br>
> mail in the first place.<br>
> It's also the reason why I started thinking about `lldb-test` as a<br>
> driver for testing, because I found out the testsuite being a little<br>
> inconsistent/brittle depending on the environment it's run on (which,<br>
> FWIW, doesn't happen when you run lit/FileCheck or even the unit tests<br>
> in lldb). I'm not currently claiming switching to a different method<br>
> would improve the situation, but it's worth a shot.<br>
><br>
<br>
Despite Zachary's claims, I do not believe this is caused by the test<br>
driver (dotest). It's definitely not beautiful, but I haven't seen an<br>
issue that would be caused by this in a long time. The issue is that<br>
the tests are doing too much -- even the simplest involves compiling a<br>
fully working executable, which pulls in a lot of stuff from the<br>
environment (runtime libraries, dynamic linker, ...) that we have no<br>
control of. And of course it makes it impossible to test the debugging<br>
functionality of any other platform than what you currently have in<br>
front of you.<br></blockquote><div>I'm not claiming that it's definitely caused by dotest and that moving away from dotest is going to fix all the problems. Rather, I'm claiming that dotest has an unknown amount of flakiness (which may be 0, but may be large), and the alternative has a known amount of flakiness (which is very close to, if not equal to 0). So we should do it because, among other benefits, it replaces an unknown with a known that is at least as good, if not better.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
In this sense, the current setup makes an excellent integration test<br>
suite -- if you run the tests and they pass, you can be fairly<br>
confident that the debugging on your system is setup correctly.<br>
However, it makes a very bad regression test suite, as the tests will<br>
be checking something different on each machine.<br>
<br>
So I believe we need more lightweight tests, and lldb-test can provide<br>
us with that. The main question for me (and that's something I don't<br>
really have an answer to) is how to make writing tests like that easy.<br>
E.g. for these "foreign" language plugins, the only way to make a<br>
self-contained regression test would be to check-in some dwarf which<br>
mimics what the compiler in question would produce. But doing that is<br>
extremely tedious as we don't have any tooling for that. </blockquote><div><br></div><div> Most of these other language plugins are being removed anyway. Which language plugins are going to still remain that aren't some flavor of c/c++?</div></div></div>