polyakov.alex added inline comments.
================ Comment at: lit/tools/lldb-mi/breakpoint/break-insert.test:10 +-file-exec-and-symbols a.out +# CHECK-AFTER: ^done + ---------------- labath wrote: > polyakov.alex wrote: > > labath wrote: > > > polyakov.alex wrote: > > > > labath wrote: > > > > > I'm not familiar with this directive. Are you sure that this actually > > > > > does anything? > > > > I tried to use only CHECK directive, but got errors like pattern not > > > > found, so I decided that it may be caused due to CHECK search features, > > > > for example, as I know, it finds pattern from the start of the file. If > > > > we want to check lldb-mi output, we should follow a specific order. > > > > > > > > In our case, we should find "^done" string directly after -break-insert > > > > command's output. > > > I think you got the FileCheck operation wrong. > > > a `CHECK` should always start matching from the previous match. The > > > reason that this is passing for you now is that CHECK-AFTER is a > > > non-existing directive and FileCheck ignores it (try replacing it with a > > > bogus string and see if it still passes). if `CHECK` is not working for > > > you here then you probably have the pattern wrong. > > You are right about the CHECK-AFTER. I wrote the test using only check and > > found an issue: > > after executing of -exec-run command, we expect to see output like: > > *stopped,reason="breakpoint-hit" > > but, I think, that FileCheck check file for the pattern, while a -exec-run > > hasn't finished yet. It means that there will not be expected output and > > we'll get the error: no such pattern. > > > > Is there a mechanism to add some delay to FileCheck to wait until -exec-run > > finished? > > > There shouldn't be a need for anything like that. FileCheck will wait until > EOF before doing anything. In fact, if you try running the test script > manually (`lldb-mi <break-insert.test`), you will see that lldb-mi in fact > does *not* print out the `*stopped` line. What I expect is happening here is > that lldb-mi reaches EOF, and then decides there is nothing left for it to do > and exits (a somewhat reasonable assumption given that it's expecting to be > talking via an interactive link). > > This sounds like a fairly fundamental problem with the lit+FileCheck testing > strategy. If we're not able to come up with a command to make lldb-mi wait > until the target stops (maybe there is one already? I know very little about > lldb-mi), we may have to revisit the whole testing strategy... I tried to run script manually (!!lldb-mi < break-insert.test!!) and got output which isn't useful for testing !!-break-insert!! command since there isn't any information about hitting breakpoint. ``` ~/workspace/gsoc/build/bin/lldb-mi < ../break-insert.test (gdb) ^done (gdb) ^done (gdb) ^done (gdb) ^done,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0xffffffffffffffff",func="??",file="??",fullname="??/??",line="0",pending=["breakpoint"],times="0",original-location="breakpoint"} (gdb) =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0xffffffffffffffff",func="??",file="??",fullname="??/??",line="0",pending=["breakpoint"],times="0",original-location="breakpoint"} (gdb) ^done (gdb) ^done (gdb) =library-loaded,id="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",target-name="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",host-name="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",symbols-loaded="0",loaded_addr="-",size="0" =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000004004c6",func="breakpoint",file="break-insert.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/break-insert.c",line="2",pending=["breakpoint"],times="0",original-location="breakpoint"} (gdb) ^done (gdb) ^done (gdb) ^running =thread-group-started,id="i1",pid="13757" (gdb) =thread-created,id="1",group-id="i1" =thread-selected,id="1" (gdb) =library-loaded,id="/lib/x86_64-linux-gnu/ld-2.23.so",target-name="/lib/x86_64-linux-gnu/ld-2.23.so",host-name="/lib/x86_64-linux-gnu/ld-2.23.so",symbols-loaded="1",symbols-path="/usr/lib/debug/lib/x86_64-linux-gnu/ld-2.23.so",loaded_addr="-",size="0" (gdb) =library-loaded,id="[vdso]",target-name="[vdso]",host-name="[vdso]",symbols-loaded="1",symbols-path="",loaded_addr="0x00007ffff7ffa000",size="0" =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x00000000004004c6",func="breakpoint",file="break-insert.c",fullname="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/break-insert.c",line="2",pending=["breakpoint"],times="0",original-location="breakpoint"} (gdb) (gdb) =library-loaded,id="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",target-name="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",host-name="/home/alexander/workspace/gsoc/llvm/tools/lldb/lit/tools/lldb-mi/breakpoint/inputs/a.out",symbols-loaded="0",loaded_addr="-",size="0" (gdb) *running,thread-id="all" (gdb) ^done (gdb) ^error,message="error: Process is running. Use 'process interrupt' to pause execution." (gdb) ^done (gdb) ``` Repository: rL LLVM https://reviews.llvm.org/D46588 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits