Branch: refs/heads/master Author: Colomban Wendling ban@herbesfolles.org Committer: Colomban Wendling ban@herbesfolles.org Date: Sun, 08 Mar 2015 21:15:39 UTC Commit: 65a4e6583353ac38a80d156541de48f878a55894 https://github.com/geany/geany-plugins/commit/65a4e6583353ac38a80d156541de48...
Log Message: ----------- debugger/gdb_mi: Add a few tests
Modified Paths: -------------- debugger/src/Makefile.am debugger/src/gdb_mi.c debugger/src/tests/gdb_mi_test.expected debugger/src/tests/gdb_mi_test.input debugger/src/tests/gdb_mi_test.sh
Modified: debugger/src/Makefile.am 10 lines changed, 10 insertions(+), 0 deletions(-) =================================================================== @@ -74,4 +74,14 @@ debugger_la_SOURCES = \ debugger_la_LIBADD = $(COMMONLIBS) $(VTE_LIBS) -lutil debugger_la_CFLAGS = $(AM_CFLAGS) $(VTE_CFLAGS) -DDBGPLUG_DATA_DIR="$(plugindatadir)" -DPLUGIN_NAME="$(plugin)"
+check_PROGRAMS = gdb_mi_test +dist_check_SCRIPTS = tests/gdb_mi_test.sh +dist_check_DATA = tests/gdb_mi_test.input tests/gdb_mi_test.expected +TESTS = $(dist_check_SCRIPTS) + +gdb_mi_test_SOURCES = gdb_mi.c gdb_mi.h +gdb_mi_test_CFLAGS = $(AM_CFLAGS) -DTEST +gdb_mi_test_LDFLAGS = +gdb_mi_test_LDADD = $(COMMONLIBS) + include $(top_srcdir)/build/cppcheck.mk
Modified: debugger/src/gdb_mi.c 2 lines changed, 1 insertions(+), 1 deletions(-) =================================================================== @@ -481,7 +481,7 @@ static void gdb_mi_record_dump(const struct gdb_mi_record *record)
int main(void) { - char buf[256] = {0}; + char buf[1024] = {0};
while (fgets(buf, sizeof buf, stdin)) {
Modified: debugger/src/tests/gdb_mi_test.expected 338 lines changed, 338 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,338 @@ +# (gdb) +record => + type = '0' (0) + token = (null) + class = (null) + results => +# (gdb) +record => + type = '0' (0) + token = (null) + class = (null) + results => +# (gdb) +record => + type = '0' (0) + token = (null) + class = (null) + results => +# ^error,msg="failed" +record => + type = '^' (94) + token = (null) + class = error + results => + var = msg + val => + type = 0 + string = failed +# *stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",frame={addr="0x00000000deadbeef",func="somefunc",args=[],file="somefile.c",fullname="/some/path/somefile.c",line="123"},thread-id="1",stopped-threads="all",core="1" +record => + type = '*' (42) + token = (null) + class = stopped + results => + var = reason + val => + type = 0 + string = signal-received + var = signal-name + val => + type = 0 + string = SIGINT + var = signal-meaning + val => + type = 0 + string = Interrupt + var = frame + val => + type = 1 + list => + var = addr + val => + type = 0 + string = 0x00000000deadbeef + var = func + val => + type = 0 + string = somefunc + var = args + val => + type = 1 + list => + var = file + val => + type = 0 + string = somefile.c + var = fullname + val => + type = 0 + string = /some/path/somefile.c + var = line + val => + type = 0 + string = 123 + var = thread-id + val => + type = 0 + string = 1 + var = stopped-threads + val => + type = 0 + string = all + var = core + val => + type = 0 + string = 1 +# *stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0000000000400c55",func="gdb_mi_record_dump",args=[{name="record",value="0x603010"}],file="gdb_mi.c",fullname="/geany-plugins/debugger/src/gdb_mi.c",line="469"},thread-id="1",stopped-threads="all",core="1" +record => + type = '*' (42) + token = (null) + class = stopped + results => + var = reason + val => + type = 0 + string = breakpoint-hit + var = disp + val => + type = 0 + string = keep + var = bkptno + val => + type = 0 + string = 1 + var = frame + val => + type = 1 + list => + var = addr + val => + type = 0 + string = 0x0000000000400c55 + var = func + val => + type = 0 + string = gdb_mi_record_dump + var = args + val => + type = 1 + list => + var = (null) + val => + type = 1 + list => + var = name + val => + type = 0 + string = record + var = value + val => + type = 0 + string = 0x603010 + var = file + val => + type = 0 + string = gdb_mi.c + var = fullname + val => + type = 0 + string = /geany-plugins/debugger/src/gdb_mi.c + var = line + val => + type = 0 + string = 469 + var = thread-id + val => + type = 0 + string = 1 + var = stopped-threads + val => + type = 0 + string = all + var = core + val => + type = 0 + string = 1 +# =breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400bc0",func="main",file="gdb_mi.c",fullname="/geany-plugins/debugger/src/gdb_mi.c",line="469",thread-groups=["i1"],times="1",original-location="/geany-plugins/debugger/src/gdb_mi.c:469"} +record => + type = '=' (61) + token = (null) + class = breakpoint-modified + results => + var = bkpt + val => + type = 1 + list => + var = number + val => + type = 0 + string = 1 + var = type + val => + type = 0 + string = breakpoint + var = disp + val => + type = 0 + string = keep + var = enabled + val => + type = 0 + string = y + var = addr + val => + type = 0 + string = 0x0000000000400bc0 + var = func + val => + type = 0 + string = main + var = file + val => + type = 0 + string = gdb_mi.c + var = fullname + val => + type = 0 + string = /geany-plugins/debugger/src/gdb_mi.c + var = line + val => + type = 0 + string = 469 + var = thread-groups + val => + type = 1 + list => + var = (null) + val => + type = 0 + string = i1 + var = times + val => + type = 0 + string = 1 + var = original-location + val => + type = 0 + string = /geany-plugins/debugger/src/gdb_mi.c:469 +# =breakpoint-modified,bkpt={number="7",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400414",func="main",file="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c",fullname="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c",line="5",thread-groups=["i1"],times="1",original-location="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c:5"} +record => + type = '=' (61) + token = (null) + class = breakpoint-modified + results => + var = bkpt + val => + type = 1 + list => + var = number + val => + type = 0 + string = 7 + var = type + val => + type = 0 + string = breakpoint + var = disp + val => + type = 0 + string = keep + var = enabled + val => + type = 0 + string = y + var = addr + val => + type = 0 + string = 0x0000000000400414 + var = func + val => + type = 0 + string = main + var = file + val => + type = 0 + string = /tmp/ùñîçāŕš.c + var = fullname + val => + type = 0 + string = /tmp/ùñîçāŕš.c + var = line + val => + type = 0 + string = 5 + var = thread-groups + val => + type = 1 + list => + var = (null) + val => + type = 0 + string = i1 + var = times + val => + type = 0 + string = 1 + var = original-location + val => + type = 0 + string = /tmp/ùñîçāŕš.c:5 +# *stopped,reason="breakpoint-hit",disp="keep",bkptno="7",frame={addr="0x0000000000400414",func="main",args=[],file="/tmp/ùñîçāŕš.c",fullname="/tmp/ùñîçāŕš.c",line="5"},thread-id="1",stopped-threads="all",core="1" +record => + type = '*' (42) + token = (null) + class = stopped + results => + var = reason + val => + type = 0 + string = breakpoint-hit + var = disp + val => + type = 0 + string = keep + var = bkptno + val => + type = 0 + string = 7 + var = frame + val => + type = 1 + list => + var = addr + val => + type = 0 + string = 0x0000000000400414 + var = func + val => + type = 0 + string = main + var = args + val => + type = 1 + list => + var = file + val => + type = 0 + string = /tmp/ùñîçāŕš.c + var = fullname + val => + type = 0 + string = /tmp/ùñîçāŕš.c + var = line + val => + type = 0 + string = 5 + var = thread-id + val => + type = 0 + string = 1 + var = stopped-threads + val => + type = 0 + string = all + var = core + val => + type = 0 + string = 1
Modified: debugger/src/tests/gdb_mi_test.input 14 lines changed, 14 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,14 @@ +# empty prompts +(gdb) +(gdb) +(gdb) +# simple result +^error,msg="failed" +# a bit more subtle records +*stopped,reason="signal-received",signal-name="SIGINT",signal-meaning="Interrupt",frame={addr="0x00000000deadbeef",func="somefunc",args=[],file="somefile.c",fullname="/some/path/somefile.c",line="123"},thread-id="1",stopped-threads="all",core="1" +*stopped,reason="breakpoint-hit",disp="keep",bkptno="1",frame={addr="0x0000000000400c55",func="gdb_mi_record_dump",args=[{name="record",value="0x603010"}],file="gdb_mi.c",fullname="/geany-plugins/debugger/src/gdb_mi.c",line="469"},thread-id="1",stopped-threads="all",core="1" +=breakpoint-modified,bkpt={number="1",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400bc0",func="main",file="gdb_mi.c",fullname="/geany-plugins/debugger/src/gdb_mi.c",line="469",thread-groups=["i1"],times="1",original-location="/geany-plugins/debugger/src/gdb_mi.c:469"} +# escapes for weird filenames +=breakpoint-modified,bkpt={number="7",type="breakpoint",disp="keep",enabled="y",addr="0x0000000000400414",func="main",file="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c",fullname="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c",line="5",thread-groups=["i1"],times="1",original-location="/tmp/\303\271\303\261\303\256\303\247\304\201\305\225\305\241.c:5"} +# for some reason in this output there are unescaped bytes (consistency, anyone?), but it works too +*stopped,reason="breakpoint-hit",disp="keep",bkptno="7",frame={addr="0x0000000000400414",func="main",args=[],file="/tmp/ùñîçāŕš.c",fullname="/tmp/ùñîçāŕš.c",line="5"},thread-id="1",stopped-threads="all",core="1"
Modified: debugger/src/tests/gdb_mi_test.sh 19 lines changed, 19 insertions(+), 0 deletions(-) =================================================================== @@ -0,0 +1,19 @@ +#!/bin/sh + +set -e + +srcdir=${srcdir:-.} + +strip_comments() +{ + ${SED:-sed} -e '/^#/d' +} + +TMPOUT=tests/gdb_mi_test.output.tmp +TMPEXCPT=tests/gdb_mi_test.expected.tmp + +trap 'rm -f "$TMPOUT" "$TMPEXCPT"' EXIT QUIT TERM INT + +strip_comments < "$srcdir/tests/gdb_mi_test.input" | ./gdb_mi_test 2> "$TMPOUT" +strip_comments < "$srcdir/tests/gdb_mi_test.expected" > "$TMPEXCPT" +diff -u "$TMPEXCPT" "$TMPOUT"
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).