<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Dec 8, 2013 at 2:11 AM, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  

    
  
  <div bgcolor="#FFFFFF" text="#000000">
    I'd like to propose deprecating and shortly thereafter removing the
    lit test runner feature that concatenates RUN lines ending in a
    trailing \<br></div></blockquote><div><br></div><div>I'm really opposed to this. Especially for the Clang test suite where run lines are often *very* long and hard to organize, read, and edit without this feature.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    <b>Rationale:</b><b><br>
    </b><br>
    <ul>
      <li>Trailing \ has a special meaning in various language standards
        that we support nowadays. In the C preprocessor, for example,
        it's handled _before_ comments. Various compilers handle this
        differently and it introduces needless incompatibilities.</li></ul></div></blockquote><div>What incompatibilities? I've never had this be an issue.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000"><ul>
      <li>Forgetting the trailing \ between two RUN lines causes the
        lines to be run individually. People have checked in tests which
        they believed were getting run whereas the features being tested
        were actually silently broken. I've been committing fixes for
        some of these but it's exceptionally time-consuming to hunt them
        down after the fact.<br></li></ul></div></blockquote><div>I'd like to understand the rate at which this happens (per RUN-line? per test-file?). It's never been a problem for me, but that is in part because I check that my tests fail without my change in addition to passing with my change. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><ul>
      <li>Removing trailing \ will introduce the neat property that one
        RUN line corresponds precisely to one command that's executed.
        This is good for humans and will enable simplifications in the
        test runner.</li></ul></div></blockquote><div>FWIW, I've never really had a problem that needed this. The RUN: forms a prefix of a shell script in my head, and I know how to read shell scripts including multiple lines.</div>
<div> <br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><ul>
      <li>Eliminating the trailing \ syntax will unblock work on
        improved failure source locations in lit. Right now, when the
        builders encounter a test RUN failure it's a matter of guesswork
        as to which RUN line is failing, and the cycle of
        commit-fix-and-watch-buildbots is laborious. We've all wasted
        time with this at some point and can totally do better.<br></li></ul></div></blockquote><div>While I would very much enjoy better failure reporting, I don't really understand why it needs this. We have a in-python parser for the RUN: lines which understands what lines a "command" spans?<br>
</div><div><br></div><div>Anyways, even though I would *really* like better failure reporting from lit, not at the cost of less readable tests. That's the tail wagging the dog IMO.</div></div></div></div>