Uniquify test names from gdb.python/{py-objfile.exp,py-pp-registration.exp}

Message ID 1437772393-6739-1-git-send-email-sergiodj@redhat.com
State New, archived
Headers

Commit Message

Sergio Durigan Junior July 24, 2015, 9:13 p.m. UTC
  While running some regression tests, I noticed that the two Python
tests mentioned in the $SUBJECT contain non-unique names.  This is a
violation of our guidelines:

  <https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Make_sure_test_messages_are_unique>

And also makes things harder for BuildBot.  So I hacked both testcases
and made every test name unique.  I guess this could be considered an
obvious patch, but I decided to post it before pushing because others
may have different opinions about the names.

OK to apply?

gdb/testsuite/ChangeLog:
2015-07-24  Sergio Durigan Junior  <sergiodj@redhat.com>

	* gdb.python/py-objfile.exp: Make some tests have unique names.
	* gdb.python/py-pp-registration.exp: Likewise.
---
 gdb/testsuite/gdb.python/py-objfile.exp         | 15 +++++++++------
 gdb/testsuite/gdb.python/py-pp-registration.exp | 11 ++++++++---
 2 files changed, 17 insertions(+), 9 deletions(-)
  

Comments

Sergio Durigan Junior July 28, 2015, 9:40 p.m. UTC | #1
On Friday, July 24 2015, I wrote:

> While running some regression tests, I noticed that the two Python
> tests mentioned in the $SUBJECT contain non-unique names.  This is a
> violation of our guidelines:
>
>   <https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Make_sure_test_messages_are_unique>

I went ahead and pushed this:

  <https://sourceware.org/ml/gdb-cvs/2015-07/msg00195.html>

Let me know if there is any problem.

> And also makes things harder for BuildBot.  So I hacked both testcases
> and made every test name unique.  I guess this could be considered an
> obvious patch, but I decided to post it before pushing because others
> may have different opinions about the names.
>
> OK to apply?
>
> gdb/testsuite/ChangeLog:
> 2015-07-24  Sergio Durigan Junior  <sergiodj@redhat.com>
>
> 	* gdb.python/py-objfile.exp: Make some tests have unique names.
> 	* gdb.python/py-pp-registration.exp: Likewise.
> ---
>  gdb/testsuite/gdb.python/py-objfile.exp         | 15 +++++++++------
>  gdb/testsuite/gdb.python/py-pp-registration.exp | 11 ++++++++---
>  2 files changed, 17 insertions(+), 9 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
> index 4de20c5..7dd094c 100644
> --- a/gdb/testsuite/gdb.python/py-objfile.exp
> +++ b/gdb/testsuite/gdb.python/py-objfile.exp
> @@ -46,7 +46,7 @@ gdb_test "python print (objfile.username)" "${testfile}" \
>    "Get objfile user name"
>  
>  gdb_test "python print (gdb.lookup_objfile (\"${testfile}\").filename)" \
> -    "${testfile}"
> +    "${testfile}" "print lookup_objfile filename"
>  gdb_test "python print (gdb.lookup_objfile (\"junk\"))" \
>      "Objfile not found\\.\r\n${python_error_text}"
>  
> @@ -56,7 +56,7 @@ if [string compare $binfile_build_id ""] {
>      gdb_test "python print (objfile.build_id)" "$binfile_build_id" \
>      "Get objfile build id"
>      gdb_test "python print (gdb.lookup_objfile (\"$binfile_build_id\", by_build_id=True).filename)" \
> -	"${testfile}"
> +	"${testfile}" "print lookup_objfile filename by build-id"
>  } else {
>      unsupported "build-id is not supported by the compiler"
>  }
> @@ -64,9 +64,11 @@ if [string compare $binfile_build_id ""] {
>  # Other lookup_objfile_by_build_id tests we can do, even if compiler doesn't
>  # support them.
>  gdb_test "python print (gdb.lookup_objfile (\"foo\", by_build_id=True))" \
> -    "Not a valid build id\\.\r\n${python_error_text}"
> +    "Not a valid build id\\.\r\n${python_error_text}" \
> +    "print invalid file lookup_objfile by build-id"
>  gdb_test "python print (gdb.lookup_objfile (\"1234abcdef\", by_build_id=True))" \
> -    "Objfile not found\\.\r\n${python_error_text}"
> +    "Objfile not found\\.\r\n${python_error_text}" \
> +    "print invalid file lookup_objfile by build-id 2"
>  
>  gdb_test "python print (objfile.progspace)" "<gdb\.Progspace object at .*>" \
>    "Get objfile program space"
> @@ -104,7 +106,7 @@ if ![runto_main] {
>      return 0
>  }
>  
> -gdb_py_test_silent_cmd "python objfile = gdb.objfiles()\[0\]" \
> +gdb_py_test_silent_cmd "python objfile = gdb.s()\[0\]" \
>      "Get no-debug objfile file" 1
>  
>  gdb_test "python print (objfile.owner)" "None" \
> @@ -131,7 +133,8 @@ gdb_test "p main" "= {int \\(\\)} $hex <main>" \
>  # Separate debug files are not findable.
>  if { [get_python_valueof "sep_objfile.build_id" "None"] != "None" } {
>      gdb_test "python print (gdb.lookup_objfile (sep_objfile.build_id, by_build_id=True))" \
> -	"Objfile not found\\.\r\n${python_error_text}"
> +	"Objfile not found\\.\r\n${python_error_text}" \
> +	"print lookup_objfile of separate debug file"
>  }
>  
>  # An objfile that was a symlink to a differently named file is still
> diff --git a/gdb/testsuite/gdb.python/py-pp-registration.exp b/gdb/testsuite/gdb.python/py-pp-registration.exp
> index 2193407..60f3436 100644
> --- a/gdb/testsuite/gdb.python/py-pp-registration.exp
> +++ b/gdb/testsuite/gdb.python/py-pp-registration.exp
> @@ -46,7 +46,8 @@ proc prepare_test { } {
>  	return 0
>      }
>  
> -    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())"
> +    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
> +	"read file"
>  
>      gdb_test_no_output "py progspace = gdb.current_progspace()"
>      gdb_test_no_output "py my_pretty_printer1 = build_pretty_printer1()"
> @@ -108,9 +109,13 @@ with_test_prefix "replace" {
>      gdb_test "py gdb.printing.register_pretty_printer(progspace, my_pretty_printer2, replace=False)" \
>  	"RuntimeError: pretty-printer already registered: pp-test\r\nError while executing Python code."
>  
> -    test_printers "s1"
> +    with_test_prefix "test printers 1" {
> +	test_printers "s1"
> +    }
>  
>      gdb_test_no_output "py gdb.printing.register_pretty_printer(progspace, my_pretty_printer2, replace=True)"
>  
> -    test_printers "s2"
> +    with_test_prefix "test printers 2" {
> +	test_printers "s2"
> +    }
>  }
> -- 
> 2.4.3
  
Pedro Alves July 28, 2015, 10:25 p.m. UTC | #2
On 07/28/2015 10:40 PM, Sergio Durigan Junior wrote:
> On Friday, July 24 2015, I wrote:
> 
>> While running some regression tests, I noticed that the two Python
>> tests mentioned in the $SUBJECT contain non-unique names.  This is a
>> violation of our guidelines:
>>
>>   <https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Make_sure_test_messages_are_unique>
> 
> I went ahead and pushed this:
> 
>   <https://sourceware.org/ml/gdb-cvs/2015-07/msg00195.html>
> 
> Let me know if there is any problem.

There are a _ton_ of non-unique messages in the testsuite.  We need
to be able to move faster with such fixes if we ever want to
reach the state of full uniqueness.

Off the top of my head, if:

 - the change is done with awareness that with_test_prefix might
   be more appropriate at places than an explicit unique message

 - the new messages conform with usual style: message all in lowercase
   with no period at end

 - the patch follows usual conventions -- ChangeLog, self-contained
   commit log, etc.

then I think people should be able to go ahead and be a
more aggressive in pushing such patches in.

BTW, there's an umbrella bug about it:

  https://sourceware.org/bugzilla/show_bug.cgi?id=13443

Thanks,
Pedro Alves
  
Pedro Alves July 29, 2015, 10:36 a.m. UTC | #3
Hi Sergio,

This unfortunately caused regressions in the testsuite:

Running /home/pedro/gdb/mygit/build/../src/gdb/testsuite/gdb.python/py-objfile.exp ...
FAIL: gdb.python/py-objfile.exp: Get no-debug objfile file
FAIL: gdb.python/py-objfile.exp: Test owner of real objfile.
FAIL: gdb.python/py-objfile.exp: Add separate debug file file
FAIL: gdb.python/py-objfile.exp: Test owner of separate debug file
FAIL: gdb.python/py-objfile.exp: Test user-name of owner of separate debug file
FAIL: gdb.python/py-objfile.exp: print main with debug info
FAIL: gdb.python/py-objfile.exp: print lookup_objfile of separate debug file

> -gdb_py_test_silent_cmd "python objfile = gdb.objfiles()\[0\]" \
> +gdb_py_test_silent_cmd "python objfile = gdb.s()\[0\]" \

Looks like a typo snuck in here.

Breakpoint 1, 0x0000000000400594 in main ()
(gdb) python objfile = gdb.s()[0]
Traceback (most recent call last):
  File "<string>", line 1, in <module>
AttributeError: 'module' object has no attribute 's'
Error while executing Python code.
(gdb) FAIL: gdb.python/py-objfile.exp: Get no-debug objfile file

>      "Get no-debug objfile file" 1

Thanks,
Pedro Alves
  

Patch

diff --git a/gdb/testsuite/gdb.python/py-objfile.exp b/gdb/testsuite/gdb.python/py-objfile.exp
index 4de20c5..7dd094c 100644
--- a/gdb/testsuite/gdb.python/py-objfile.exp
+++ b/gdb/testsuite/gdb.python/py-objfile.exp
@@ -46,7 +46,7 @@  gdb_test "python print (objfile.username)" "${testfile}" \
   "Get objfile user name"
 
 gdb_test "python print (gdb.lookup_objfile (\"${testfile}\").filename)" \
-    "${testfile}"
+    "${testfile}" "print lookup_objfile filename"
 gdb_test "python print (gdb.lookup_objfile (\"junk\"))" \
     "Objfile not found\\.\r\n${python_error_text}"
 
@@ -56,7 +56,7 @@  if [string compare $binfile_build_id ""] {
     gdb_test "python print (objfile.build_id)" "$binfile_build_id" \
     "Get objfile build id"
     gdb_test "python print (gdb.lookup_objfile (\"$binfile_build_id\", by_build_id=True).filename)" \
-	"${testfile}"
+	"${testfile}" "print lookup_objfile filename by build-id"
 } else {
     unsupported "build-id is not supported by the compiler"
 }
@@ -64,9 +64,11 @@  if [string compare $binfile_build_id ""] {
 # Other lookup_objfile_by_build_id tests we can do, even if compiler doesn't
 # support them.
 gdb_test "python print (gdb.lookup_objfile (\"foo\", by_build_id=True))" \
-    "Not a valid build id\\.\r\n${python_error_text}"
+    "Not a valid build id\\.\r\n${python_error_text}" \
+    "print invalid file lookup_objfile by build-id"
 gdb_test "python print (gdb.lookup_objfile (\"1234abcdef\", by_build_id=True))" \
-    "Objfile not found\\.\r\n${python_error_text}"
+    "Objfile not found\\.\r\n${python_error_text}" \
+    "print invalid file lookup_objfile by build-id 2"
 
 gdb_test "python print (objfile.progspace)" "<gdb\.Progspace object at .*>" \
   "Get objfile program space"
@@ -104,7 +106,7 @@  if ![runto_main] {
     return 0
 }
 
-gdb_py_test_silent_cmd "python objfile = gdb.objfiles()\[0\]" \
+gdb_py_test_silent_cmd "python objfile = gdb.s()\[0\]" \
     "Get no-debug objfile file" 1
 
 gdb_test "python print (objfile.owner)" "None" \
@@ -131,7 +133,8 @@  gdb_test "p main" "= {int \\(\\)} $hex <main>" \
 # Separate debug files are not findable.
 if { [get_python_valueof "sep_objfile.build_id" "None"] != "None" } {
     gdb_test "python print (gdb.lookup_objfile (sep_objfile.build_id, by_build_id=True))" \
-	"Objfile not found\\.\r\n${python_error_text}"
+	"Objfile not found\\.\r\n${python_error_text}" \
+	"print lookup_objfile of separate debug file"
 }
 
 # An objfile that was a symlink to a differently named file is still
diff --git a/gdb/testsuite/gdb.python/py-pp-registration.exp b/gdb/testsuite/gdb.python/py-pp-registration.exp
index 2193407..60f3436 100644
--- a/gdb/testsuite/gdb.python/py-pp-registration.exp
+++ b/gdb/testsuite/gdb.python/py-pp-registration.exp
@@ -46,7 +46,8 @@  proc prepare_test { } {
 	return 0
     }
 
-    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())"
+    gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
+	"read file"
 
     gdb_test_no_output "py progspace = gdb.current_progspace()"
     gdb_test_no_output "py my_pretty_printer1 = build_pretty_printer1()"
@@ -108,9 +109,13 @@  with_test_prefix "replace" {
     gdb_test "py gdb.printing.register_pretty_printer(progspace, my_pretty_printer2, replace=False)" \
 	"RuntimeError: pretty-printer already registered: pp-test\r\nError while executing Python code."
 
-    test_printers "s1"
+    with_test_prefix "test printers 1" {
+	test_printers "s1"
+    }
 
     gdb_test_no_output "py gdb.printing.register_pretty_printer(progspace, my_pretty_printer2, replace=True)"
 
-    test_printers "s2"
+    with_test_prefix "test printers 2" {
+	test_printers "s2"
+    }
 }