Files
mckernel/test/issues/771+1179+1143/C771T001.awk
Tomoki Shirasawa ed1edb152b ptrace supports threads
Fujitsu: POSTK_DEBUG_TEMP_FIX_53, POSTK_DEBUG_ARCH_DEP_44
Refs: #771, #1179, #1143
Change-Id: Ie17ece6864f0eeb0c0e550f4e369abb77980a0d0
2018-10-01 03:57:16 +00:00

177 lines
2.1 KiB
Awk

#! /usr/bin/awk -f
BEGIN{
ok = 0
ng = 0
}
/^\(gdb\) b thr/{
print "*** C771T001 gdb start OK"
ok++
st = 2
next
}
/^\(gdb\) r/{
st = 3
next
}
/^\(gdb\) info threads/{
st = 4
next
}
/^\(gdb\) bt/{
st = (bt == 0) ? 5 : 8
bt++
next
}
/^\(gdb\) n/{
st = 6
next
}
/^\(gdb\) thread 1/{
st = 7
next
}
/^\(gdb\) thread 2/{
if (st != 0) {
printf("*** C771T%03d backtrace command NG\n", st)
ng++
}
st = 9
next
}
/^\(gdb\) c/{
st = 10
next
}
/^\(gdb\) q/{
st = 11
next
}
/^\(gdb\)/ {
printf("*** C771T%03d NG\n", st)
ng++
exit(1)
}
st == 2 {
if ($0 ~/^Breakpoint 1 at/) {
print "*** C771T002 breakpoint command OK"
ok++
}
else {
print "*** C771T002 breakpoint command NG"
ng++
}
st = 0
}
st == 3 {
if ($0 ~/^Starting program/) {
print "*** C771T003 run command OK"
ok++
}
else {
print "*** C771T003 run command NG"
ng++
}
st = 0
}
st == 4 {
if ($0 ~/^ Id /) {
print "*** C771T004 info threads command OK"
ok++
}
else {
print "*** C771T004 info threadsrun command NG"
ng++
}
st = 0
}
st == 5 {
if ($0 ~/^#0 thr/) {
print "*** C771T005 backtrace command OK"
ok++
}
else {
print "*** C771T005 backtrace command NG"
ng++
}
st = 0
}
st == 6 {
if ($0 ~/^thread start tid=/) {
print "*** C771T006 next command OK"
ok++
}
else {
print "*** C771T006 next command NG"
ng++
}
st = 0
}
st == 7 {
if ($0 ~/^\[Switching to thread 1/) {
print "*** C771T007 thread command OK"
ok++
}
else {
print "*** C771T007 thread command NG"
ng++
}
st = 0
}
st == 8 {
if ($0 ~/ in main /) {
print "*** C771T008 thread command OK"
ok++
st = 0
}
}
st == 9 {
if ($0 ~/^\[Switching to thread 2/) {
print "*** C771T009 thread command OK"
ok++
}
else {
print "*** C771T009 thread command NG"
ng++
}
st = 0
}
st == 10 {
if ($0 ~/^Continuing/) {
print "*** C771T010 continue command OK"
ok++
}
else {
print "*** C771T010 continue command NG"
ng++
}
st = 0
}
END{
if (st == 11) {
print "*** C771T011 quit command OK"
ok++
}
print "OK=" ok " NG=" ng
exit(ng > 0 ? 1: 0)
}