[PATCH] D60170: [llvm-objcopy] [llvm-symbolizer] Fix failing tests

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 3 09:53:25 PDT 2019


jhenderson added inline comments.


================
Comment at: llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s:3
 # RUN: llvm-mc --filetype=obj --triple=x86_64-pc-linux %s -o %t.o -g
-# RUN: llvm-symbolizer --obj=%t.o 0 | FileCheck %s --implicit-check-not=bar
+# RUN: llvm-symbolizer --obj=%t.o 0 | FileCheck %s --implicit-check-not="^bar$"
 
----------------
hintonda wrote:
> jhenderson wrote:
> > Is implicit-check-not a regex pattern or just a literal check (I think it's a literal check)? Does this still fail when bar appears instead of foo?
> Yes, you're correct, it's a literal check.  I can reproduce by using my login -- which obviously isn't a symbol:
> 
> ```
> $ bin/llvm-symbolizer --obj=x.o 0 | bin/FileCheck /Users/dhinton/projects/llvm_project/monorepo/llvm-project/llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s --implicit-check-not=dhinton
> command line:1:22: error: CHECK-NOT: excluded string found in input
> -implicit-check-not='dhinton'
>                      ^
> <stdin>:2:8: note: found here
> /Users/dhinton/projects/llvm_project/monorepo/build/Debug/../../llvm-project/llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s:12:0
>        ^~~~~~~
> ```
> 
> I'll see if I can come up with a better solution.
You may be able to use `--implicit-check-not={{^}}bar{{$}}`. I haven't tested that though.


================
Comment at: llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s:3
 # RUN: llvm-mc --filetype=obj --triple=x86_64-pc-linux %s -o %t.o -g
-# RUN: llvm-symbolizer --obj=%t.o 0 | FileCheck %s --implicit-check-not=bar
+# RUN: llvm-symbolizer --obj=%t.o 0 | FileCheck %s --implicit-check-not="^bar$"
 
----------------
hintonda wrote:
> jhenderson wrote:
> > hintonda wrote:
> > > jhenderson wrote:
> > > > Is implicit-check-not a regex pattern or just a literal check (I think it's a literal check)? Does this still fail when bar appears instead of foo?
> > > Yes, you're correct, it's a literal check.  I can reproduce by using my login -- which obviously isn't a symbol:
> > > 
> > > ```
> > > $ bin/llvm-symbolizer --obj=x.o 0 | bin/FileCheck /Users/dhinton/projects/llvm_project/monorepo/llvm-project/llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s --implicit-check-not=dhinton
> > > command line:1:22: error: CHECK-NOT: excluded string found in input
> > > -implicit-check-not='dhinton'
> > >                      ^
> > > <stdin>:2:8: note: found here
> > > /Users/dhinton/projects/llvm_project/monorepo/build/Debug/../../llvm-project/llvm/test/tools/llvm-symbolizer/ignore-undefined-symbols.s:12:0
> > >        ^~~~~~~
> > > ```
> > > 
> > > I'll see if I can come up with a better solution.
> > You may be able to use `--implicit-check-not={{^}}bar{{$}}`. I haven't tested that though.
> Okay, prepending `{{.*}}` to `ignore-undefined-symbols` below fixes the problem.  Will update shortly.  Thanks for the feedback.
I'm not sure I follow how {{.*}} helps fix this? Isn't the problem to do with the use of "foo" without other checks?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D60170/new/

https://reviews.llvm.org/D60170





More information about the llvm-commits mailing list