[PATCH] D41776: [lit] Implement "-r" option for builtin "diff" command + a test using that.

Max Moroz via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 5 14:49:45 PST 2018


Dor1s added inline comments.


================
Comment at: utils/lit/tests/Inputs/shtest-shell/diff-r.txt:26
+# RUN: not diff -r %t/dir1 %t/dir2 > %t.output
+# RUN: grep "Only in %t/dir1: dir1unique" %t.output
+# RUN: grep "Only in %t/dir2: dir2unique" %t.output
----------------
zturner wrote:
> Dor1s wrote:
> > I was hoping to use `FileCheck --check-prefix` and different prefixes, but for some reason I'm getting weird errors, e.g.:
> > 
> > ```
> > ...
> > $ "not" "diff" "-r" "/usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/Output/diff-r.txt.tmp/dir1" "/usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/Output/diff-r.txt.tmp/dir2"
> > $ "FileCheck" "--check-prefix=ERROR1" "/usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/diff-r.txt"
> > # command stderr:
> > /usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/diff-r.txt:27:11: error: expected string not found in input
> > # ERROR1: Only in %t/dir1: dir1unique
> >           ^
> > <stdin>:1:1: note: scanning from here
> > Only in /usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/Output/diff-r.txt.tmp/dir1: dir1unique
> > ^
> > <stdin>:1:106: note: possible intended match here
> > Only in /usr/local/google/home/mmoroz/Projects/llvm/build/utils/lit/tests/Inputs/shtest-shell/Output/diff-r.txt.tmp/dir1: dir1unique
> >                                                                                                          ^
> > 
> > error: command failed with exit status: 1
> > 
> > ```
> > 
> > I'm fine to proceed with `grep`, if reviewers don't mind.
> You can't use substitutions like `%t` in a check prefix.  Those are expanded only in run lines.  The general solution for this is to wrap that part in a regex.  So for example, instead of this:
> 
> ```
> ERROR1: Only in %t/dir1: dir1unique
> ```
> 
> You would write this:
> 
> ```
> ERROR1: Only in {{.*}}dir1: dir1unique
> ```
> 
> That said, I would really prefer if we could use the check lines instead of grep, since that's the canonical way of writing tests and there are other advantages as well (`CHECK-NEXT`, etc)
That totally works! Thank you, Zachary!

I've tried that before as well, but I put string into double-quotes, so the regex didn't work for me neither :)


https://reviews.llvm.org/D41776





More information about the llvm-commits mailing list