* [rfa/testsuite] Don't display values in output of pc-fp.exp
@ 2002-11-05 14:14 David Carlton
2002-11-05 14:17 ` Michael Snyder
2002-11-05 14:54 ` Andrew Cagney
0 siblings, 2 replies; 7+ messages in thread
From: David Carlton @ 2002-11-05 14:14 UTC (permalink / raw)
To: gdb-patches; +Cc: Fernando Nasser, cagney
The tests in pc-fp.exp display the actual values of $pc and $fp in
their PASS messages. That makes regression testing a bit more
annoying for me: the value of $fp changes with every change I make to
GDB. Is it okay to tweak the PASS messages not to display those
values?
David Carlton
carlton@math.stanford.edu
2002-11-05 David Carlton <carlton@math.stanford.edu>
* gdb.base/pc-fp.exp (get_valueofx): Don't display 'val' in PASS
message.
Index: pc-fp.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.base/pc-fp.exp,v
retrieving revision 1.1
diff -u -p -r1.1 pc-fp.exp
--- pc-fp.exp 25 Sep 2002 20:30:38 -0000 1.1
+++ pc-fp.exp 5 Nov 2002 22:09:51 -0000
@@ -62,7 +62,7 @@ proc get_valueofx { fmt exp default } {
gdb_expect {
-re "\\$\[0-9\]* = (0x\[0-9a-zA-Z\]+).*$gdb_prompt $" {
set val $expect_out(1,string)
- pass "get value of ${exp} ($val)"
+ pass "get value of ${exp}"
}
timeout {
set size ${default}
^ permalink raw reply [flat|nested] 7+ messages in thread* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp 2002-11-05 14:14 [rfa/testsuite] Don't display values in output of pc-fp.exp David Carlton @ 2002-11-05 14:17 ` Michael Snyder 2002-11-05 14:54 ` Andrew Cagney 1 sibling, 0 replies; 7+ messages in thread From: Michael Snyder @ 2002-11-05 14:17 UTC (permalink / raw) To: David Carlton; +Cc: gdb-patches, Fernando Nasser, cagney David Carlton wrote: > > The tests in pc-fp.exp display the actual values of $pc and $fp in > their PASS messages. That makes regression testing a bit more > annoying for me: the value of $fp changes with every change I make to > GDB. Is it okay to tweak the PASS messages not to display those > values? > > David Carlton I'm not the maintainer, but the suggestion seems sound. > carlton@math.stanford.edu > > 2002-11-05 David Carlton <carlton@math.stanford.edu> > > * gdb.base/pc-fp.exp (get_valueofx): Don't display 'val' in PASS > message. > > Index: pc-fp.exp > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/pc-fp.exp,v > retrieving revision 1.1 > diff -u -p -r1.1 pc-fp.exp > --- pc-fp.exp 25 Sep 2002 20:30:38 -0000 1.1 > +++ pc-fp.exp 5 Nov 2002 22:09:51 -0000 > @@ -62,7 +62,7 @@ proc get_valueofx { fmt exp default } { > gdb_expect { > -re "\\$\[0-9\]* = (0x\[0-9a-zA-Z\]+).*$gdb_prompt $" { > set val $expect_out(1,string) > - pass "get value of ${exp} ($val)" > + pass "get value of ${exp}" > } > timeout { > set size ${default} ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp 2002-11-05 14:14 [rfa/testsuite] Don't display values in output of pc-fp.exp David Carlton 2002-11-05 14:17 ` Michael Snyder @ 2002-11-05 14:54 ` Andrew Cagney 2002-11-05 15:11 ` David Carlton 1 sibling, 1 reply; 7+ messages in thread From: Andrew Cagney @ 2002-11-05 14:54 UTC (permalink / raw) To: David Carlton; +Cc: gdb-patches, Fernando Nasser, cagney [-- Attachment #1: Type: text/plain, Size: 1317 bytes --] > The tests in pc-fp.exp display the actual values of $pc and $fp in > their PASS messages. That makes regression testing a bit more > annoying for me: the value of $fp changes with every change I make to > GDB. Is it okay to tweak the PASS messages not to display those > values? As far as I know, anything in trailing paren should be ignored when comparing test results. You might want to tweak your script (I've attached mine) to do this. Also, why is FP/PC changing? Your GDB changes shouldn't affect the behavior of the target program's $fp / $pc. Andrew > 2002-11-05 David Carlton <carlton@math.stanford.edu> > > * gdb.base/pc-fp.exp (get_valueofx): Don't display 'val' in PASS > message. > > Index: pc-fp.exp > =================================================================== > RCS file: /cvs/src/src/gdb/testsuite/gdb.base/pc-fp.exp,v > retrieving revision 1.1 > diff -u -p -r1.1 pc-fp.exp > --- pc-fp.exp 25 Sep 2002 20:30:38 -0000 1.1 > +++ pc-fp.exp 5 Nov 2002 22:09:51 -0000 > @@ -62,7 +62,7 @@ proc get_valueofx { fmt exp default } { > gdb_expect { > -re "\\$\[0-9\]* = (0x\[0-9a-zA-Z\]+).*$gdb_prompt $" { > set val $expect_out(1,string) > - pass "get value of ${exp} ($val)" > + pass "get value of ${exp}" > } > timeout { > set size ${default} > [-- Attachment #2: do-analize-tests --] [-- Type: text/plain, Size: 6388 bytes --] #!/bin/sh if awk --version < /dev/null 2>&1 | grep -i gnu > /dev/null then AWK=awk else AWK=gawk fi $AWK ' function trace (msg) { print msg >> "/dev/stderr" } # returns a SUPSEP separated list created by sorting TABLE. function qsort (table, middle, tmp, left, nr_left, right, nr_right, result) { middle = "" for (middle in table) { break; } nr_left = 0; nr_right = 0; for (tmp in table) { if (tmp < middle) { nr_left++ left[tmp] = tmp } else if (tmp > middle) { nr_right++ right[tmp] = tmp } } #print "qsort " nr_left " " middle " " nr_right > "/dev/stderr" result = "" if (nr_left > 0) { result = qsort(left) SUBSEP } result = result middle if (nr_right > 0) { result = result SUBSEP qsort(right) } return result } function print_headings (html_p, file, title, target, i) { if (html_p) { printf "<tr><td></td><th>" >> file } printf title >> file if (html_p) { printf "</th>" >> file } for (i = 1; i <= nr_targets; i++) { target = sorted_targets[i] if (html_p) { printf "<th>" i "<br>" target "</th>" >> file } else { printf "\t" i >> file } } if (html_p) { printf "</tr>" >> file } printf "\n" >> file } function print_test (file, test, nr, i) { printf "<tr>" >> file printf "<td>%d</td>", nr >> file printf "<th align=left>%s</th>", test >> file for (i = 1; i <= nr_targets; i++) { target = sorted_targets[i]; result = results[target, test] if (result == "FAIL") { printf "<th>%s</th>", result >> file } else { printf "<td align=center>%s</td>", result >> file } } printf "</tr>\n" >> file } function print_totals (html_p, file, status, target, i, j) { for (i = 1; i <= nr_statuses; i++) { status = sorted_statuses[i]; if (html_p) { printf "<tr><td></td><th align=left>" >> file } printf status >> file if (html_p) { printf "</th>" >> file } for (j = 1; j <= nr_targets; j++) { target = sorted_targets[j]; if (html_p) { printf "<th>" >> file } else { printf "\t" } printf totals[target, status] >> file if (html_p) { printf "</th>" >> file } } if (html_p) { printf "</tr>" >> file } printf "\n" >> file } } function print_table_start (file, title, full_title, i, target) { full_title = "Failure Table: " title; trace("Generating " file " (" full_title ")") print "<html>" >> file print "<head>" >> file print "<title>" full_title "</title>" >> file print "</head>" >> file print "<body>" >> file print "<h1><center>" full_title "</center></h1>" >> file print "<center>" >> file print "<table>" >> file for (i = 1; i <= nr_targets; i++) { target = sorted_targets[i] print "<tr>" >> file print "<td>" i "</td>" >> file print "<td>" target "</td>" >> file print "<td>" target_file[target] "</td>" >> file print "</tr>" >> file } print "</table>" >> file print "</center>" >> file print "<table>" >> file } function print_table_end (file) { print "</table>" >> file print "</body>" >> file print "</html>" >> file } function print_opening (file, title) { printf "" > file print_table_start(file, title); print_headings(1, file, title); print_totals(1, file); } function print_closing (file, title, nr) { trace(title ": " nr); print_totals(1, file); print_headings(1, file, title); print_table_end(file); } BEGIN { nr_runs = 0 } /Running target/ { nr_runs++ sub (/Running target/, ""); gsub (/ /, ""); gsub (/\//, " "); nr = 1; do { target = $0 " (" nr++ ")"; } while (target in targets) targets[target] = target target_file[target] = FILENAME trace("Parsing " nr_runs ": " target " " (target_file[target])); next } # Collect up sizeof??? # Collect the results /^PASS:/ || /^FAIL:/ || /^XFAIL:/ || /^XPASS:/ { # accumulate statuses status = $0 sub (/:.*$/, "", status) statuses[status] = status # accumulate tests test = $0 sub (/^[A-Z]*: /, "", test) gsub (/ *\([^)]*\)/, "", test) tests[test] = test # accumulate result counts totals[target, status] += 1; results[target, test] = status; totals[test, status] += 1; } END { # sort the test names trace("Sorting results") nr_tests = split (qsort(tests), sorted_tests, SUBSEP); trace("Number of tests " nr_tests) # for (i = 0; i < nr_tests; i++) { # print i " " sorted_tests[i] > "/dev/stderr" # } nr_targets = split (qsort(targets), sorted_targets, SUBSEP); nr_statuses = split (qsort(statuses), sorted_statuses, SUBSEP); print_headings(0, "/dev/stderr", "Summary") print_totals(0, "/dev/stderr") for (i = 1; i <= nr_targets; i++) { target = sorted_targets[i] printf "%3d %s %s\n", i, target, target_file[target] >> "/dev/stderr" } #### # heading file = "diff.html" print_opening(file, "Differences"); # body - differences nr = 0 for (i = 1; i <= nr_tests; i++) { test = sorted_tests[i]; different = 0; fail = 0; result = "<uninitialized>"; for (target in targets) { if (result == "<uninitialized>") { result = results[target, test]; } else if (result != results[target, test]) { different = 1 } if (results[target, test] == "FAIL") { fail = 1; } # print "TEST=" test, "different=" different, "fail=" fail, "result=" result > "/dev/stderr" } if (different) { print_test(file, test, ++nr); } } print_closing(file, "Differences", nr); #### file = "fail.html" print_opening(file, "Failures"); # body - failures nr = 0 for (i = 1; i <= nr_tests; i++) { test = sorted_tests[i] if (totals[test, "FAIL"] > 0) { print_test(file, test, ++nr); } } print_closing(file, "Failures", nr); #### file = "pass.html" print_opening(file, "Passes"); # body - passes nr = 0 for (i = 1; i <= nr_tests; i++) { test = sorted_tests[i] if (totals[test, "PASS"] > 0) { print_test(file, test, ++nr); } } print_closing(file, "Passes", nr); } ' "$@" ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp 2002-11-05 14:54 ` Andrew Cagney @ 2002-11-05 15:11 ` David Carlton 2002-11-05 15:20 ` Andrew Cagney ` (2 more replies) 0 siblings, 3 replies; 7+ messages in thread From: David Carlton @ 2002-11-05 15:11 UTC (permalink / raw) To: Andrew Cagney; +Cc: gdb-patches, Fernando Nasser, cagney On Tue, 05 Nov 2002 17:54:27 -0500, Andrew Cagney <ac131313@redhat.com> said: >> The tests in pc-fp.exp display the actual values of $pc and $fp in >> their PASS messages. That makes regression testing a bit more >> annoying for me: the value of $fp changes with every change I make >> to GDB. Is it okay to tweak the PASS messages not to display those >> values? > As far as I know, anything in trailing paren should be ignored when > comparing test results. You might want to tweak your script (I've > attached mine) to do this. Wow: your script is complicated. I just do diff -u (first file) (second file) | grep -v schedlock I could do something more complicated than that, of course; on the other hand, I'm still not convinced that I should. It seems to me that details like the value of the variables in question shouldn't be in gdb.sum: if I want that level of information, I'll look in gdb.log. I think there's a virtue in having gdb.sum in a format that's easily checkable without worrying about parsing issues: the easier it is to do regression testing, the more often it will happen. > Also, why is FP/PC changing? Your GDB changes shouldn't affect the > behavior of the target program's $fp / $pc. That's a good point; I hadn't thought of that. I'm actually not entirely sure what it is that leads to the value of $fp changing from test run to test run. But I will make the empirical observation that it does change from test run to test run, and I'd be shocked if those changes reflected introduction of new bugs into GDB. David Carlton carlton@math.stanford.edu ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp 2002-11-05 15:11 ` David Carlton @ 2002-11-05 15:20 ` Andrew Cagney 2002-11-05 15:41 ` Andrew Cagney [not found] ` <3DC98B56.2861A478@redhat.com> 2 siblings, 0 replies; 7+ messages in thread From: Andrew Cagney @ 2002-11-05 15:20 UTC (permalink / raw) To: David Carlton; +Cc: gdb-patches, Fernando Nasser, cagney > > That's a good point; I hadn't thought of that. I'm actually not > entirely sure what it is that leads to the value of $fp changing from > test run to test run. But I will make the empirical observation that > it does change from test run to test run, and I'd be shocked if those > changes reflected introduction of new bugs into GDB. Hmm, from memory, $fp, is affected by your environment. environ[] is pushed onto the stack before calling main. Andrew ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp 2002-11-05 15:11 ` David Carlton 2002-11-05 15:20 ` Andrew Cagney @ 2002-11-05 15:41 ` Andrew Cagney [not found] ` <3DC98B56.2861A478@redhat.com> 2 siblings, 0 replies; 7+ messages in thread From: Andrew Cagney @ 2002-11-05 15:41 UTC (permalink / raw) To: David Carlton; +Cc: gdb-patches, Fernando Nasser, cagney > On Tue, 05 Nov 2002 17:54:27 -0500, Andrew Cagney <ac131313@redhat.com> said: > > >>> The tests in pc-fp.exp display the actual values of $pc and $fp in >>> their PASS messages. That makes regression testing a bit more >>> annoying for me: the value of $fp changes with every change I make >>> to GDB. Is it okay to tweak the PASS messages not to display those >>> values? > > >> As far as I know, anything in trailing paren should be ignored when >> comparing test results. You might want to tweak your script (I've >> attached mine) to do this. > > > Wow: your script is complicated. I just do > > diff -u (first file) (second file) | grep -v schedlock > > I could do something more complicated than that, of course; on the > other hand, I'm still not convinced that I should. It seems to me > that details like the value of the variables in question shouldn't be > in gdb.sum: if I want that level of information, I'll look in gdb.log. > I think there's a virtue in having gdb.sum in a format that's easily > checkable without worrying about parsing issues: the easier it is to > do regression testing, the more often it will happen. Ah, you've never had to cross compare 64 different targets to check that their results are equivalent :-) Andrew ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <3DC98B56.2861A478@redhat.com>]
* Re: [rfa/testsuite] Don't display values in output of pc-fp.exp [not found] ` <3DC98B56.2861A478@redhat.com> @ 2002-11-06 14:57 ` David Carlton 0 siblings, 0 replies; 7+ messages in thread From: David Carlton @ 2002-11-06 14:57 UTC (permalink / raw) To: Michael Snyder; +Cc: gdb-patches, Fernando Nasser, cagney On Wed, 06 Nov 2002 13:36:22 -0800, Michael Snyder <msnyder@redhat.com> said: [ Michael accidentally replied just to me rather than to the whole list, so others haven't seen his response yet. ] > David Carlton wrote: >> On Tue, 05 Nov 2002 17:54:27 -0500, Andrew Cagney <ac131313@redhat.com> said: >>> As far as I know, anything in trailing paren should be ignored when >>> comparing test results. You might want to tweak your script (I've >>> attached mine) to do this. >> Wow: your script is complicated. I just do >> >> diff -u (first file) (second file) | grep -v schedlock >> >> I could do something more complicated than that, of course; on the >> other hand, I'm still not convinced that I should. > You should. You'll bang your head against this again. It's a > convention [Andrew: is this documented?] that the testsuites may > generate any random output so long as its in parentheses -- scripts > should ignore it. Fair enough. It may well be documented somewhere, actually: I didn't think to look. >> It seems to me that details like the value of the variables in >> question shouldn't be in gdb.sum: if I want that level of >> information, I'll look in gdb.log. > You're right. I don't think they belong there either. Okay. So it seems like, on the one hand, I should be more accepting of stuff in parentheses. But, on the other hand, tests shouldn't go out of their way to add stuff in parentheses, either: if it's something that a human reader is likely to find useful or if it's something where it's interesting if its value changes even if that doesn't count as a regression, then it's probably a good idea for it to be there. But I don't think that applies in this case. >>> Also, why is FP/PC changing? Your GDB changes shouldn't affect the >>> behavior of the target program's $fp / $pc. >> That's a good point; I hadn't thought of that. I'm actually not >> entirely sure what it is that leads to the value of $fp changing from >> test run to test run. > Is this native linux? Yup. >> But I will make the empirical observation that it does change from >> test run to test run, and I'd be shocked if those changes reflected >> introduction of new bugs into GDB. > PROBABLY not... but maybe it's actually a virtue that we've noticed them. > I'm curious what could account for them too. Things I can think of > include: > * running gdb under gdb (or some other debugger-like or prof-like tool) > * changing the size of the inferior's (or possibly gdb's) environment. > * running from the unix shell one time, but from a shell script another time. My guess is that it's the environment. I do 'make check' every once in a while (well, about every 15 minutes these days, but I won't be tinkering with linespec.c forever...), and I compare the resulting gdb.sum against the gdb.sum from the last time that the correct output changed. And that last copy could be days or even weeks old, so my environment could have easily changed in the interim. David Carlton carlton@math.stanford.edu ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2002-11-06 22:57 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-11-05 14:14 [rfa/testsuite] Don't display values in output of pc-fp.exp David Carlton
2002-11-05 14:17 ` Michael Snyder
2002-11-05 14:54 ` Andrew Cagney
2002-11-05 15:11 ` David Carlton
2002-11-05 15:20 ` Andrew Cagney
2002-11-05 15:41 ` Andrew Cagney
[not found] ` <3DC98B56.2861A478@redhat.com>
2002-11-06 14:57 ` David Carlton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox