Patchwork [testsuite] Fix plugin testsuite, remove uses of TODO_dump_func (PR testsuite/52948)

login
register
mail settings
Submitter Rainer Orth
Date April 16, 2012, 10:24 a.m.
Message ID <yddlilwx9dq.fsf@manam.CeBiTec.Uni-Bielefeld.DE>
Download mbox | patch
Permalink /patch/152779/
State New
Headers show

Comments

Rainer Orth - April 16, 2012, 10:24 a.m.
As reported in PR testsuite/52948, several plugin testcases were failing
since the removal of TODO_dump_func:

UNRESOLVED: selfassign.c compilation, -I. -I/vol/gcc/src/hg/trunk/local/gcc/testsuite -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../gcc -I/var/gcc/regression/trunk/11-gcc/build/gcc/testsuite/g++/../../../gcc  -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../include -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../libcpp/include  -I/vol/gcc/include -I/vol/gcc/include -I/vol/gcc/include  -I/var/gcc/regression/trunk/11-gcc/build/gcc/testsuite/g++/../../../intl -O -DIN_GCC -fPIC -shared

I have no idea why this has been missed when testing the removal patch,
because the failures are very prominent in mail-report.log (maybe
because the incorrectly show up as UNRESOLVED instead of FAIL).

This patch fixes this by removing the uses of TODO_dump_func from the
affected plugins.

At the same time, I'm finally fixing some issues with the plugin tests
that have annoyed me for quite some time:

* The tests should log the full (relative) path to the testcase, not
  only the basenames.

* Using unresolved to report failures to compile the plugins is wrong:
  this should be fail instead, and the pass case needs to be logged as
  well.

* There's no point in logging the options used to compile the plugin:
  they are completely internal to plugin-support.exp and not in any way
  influenced by the testsuite drivers.

There's one issue I didn't fix due to the large number of (bad)
precedents in the testsuite:

* If a plugin fails to compile, the compilations using it should become
  unresolved instead of just returning early.

Bootstrapped without regressions on i386-pc-solaris2.11, installed on
mainline.

	Rainer


2012-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	gcc/testsuite:
	* lib/plugin-support.exp (plugin-test-execute): Properly determine
	testcase name.
	Use fail, pass instead of unresolved.
	Don't log $optstr.

	PR testsuite/52948
	* g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Remove
	TODO_dump_func.
	* g++.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
	* gcc.dg/plugin/one_time_plugin.c (one_pass): Likewise.
	* gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
Xinliang David Li - April 16, 2012, 5:05 p.m.
cc Richard.

thanks,

David

On Mon, Apr 16, 2012 at 3:24 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
> As reported in PR testsuite/52948, several plugin testcases were failing
> since the removal of TODO_dump_func:
>
> UNRESOLVED: selfassign.c compilation, -I. -I/vol/gcc/src/hg/trunk/local/gcc/testsuite -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../gcc -I/var/gcc/regression/trunk/11-gcc/build/gcc/testsuite/g++/../../../gcc  -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../include -I/vol/gcc/src/hg/trunk/local/gcc/testsuite/../../libcpp/include  -I/vol/gcc/include -I/vol/gcc/include -I/vol/gcc/include  -I/var/gcc/regression/trunk/11-gcc/build/gcc/testsuite/g++/../../../intl -O -DIN_GCC -fPIC -shared
>
> I have no idea why this has been missed when testing the removal patch,
> because the failures are very prominent in mail-report.log (maybe
> because the incorrectly show up as UNRESOLVED instead of FAIL).
>
> This patch fixes this by removing the uses of TODO_dump_func from the
> affected plugins.
>
> At the same time, I'm finally fixing some issues with the plugin tests
> that have annoyed me for quite some time:
>
> * The tests should log the full (relative) path to the testcase, not
>  only the basenames.
>
> * Using unresolved to report failures to compile the plugins is wrong:
>  this should be fail instead, and the pass case needs to be logged as
>  well.
>
> * There's no point in logging the options used to compile the plugin:
>  they are completely internal to plugin-support.exp and not in any way
>  influenced by the testsuite drivers.
>
> There's one issue I didn't fix due to the large number of (bad)
> precedents in the testsuite:
>
> * If a plugin fails to compile, the compilations using it should become
>  unresolved instead of just returning early.
>
> Bootstrapped without regressions on i386-pc-solaris2.11, installed on
> mainline.
>
>        Rainer
>
>
> 2012-04-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
>
>        gcc/testsuite:
>        * lib/plugin-support.exp (plugin-test-execute): Properly determine
>        testcase name.
>        Use fail, pass instead of unresolved.
>        Don't log $optstr.
>
>        PR testsuite/52948
>        * g++.dg/plugin/dumb_plugin.c (pass_dumb_plugin_example): Remove
>        TODO_dump_func.
>        * g++.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
>        * gcc.dg/plugin/one_time_plugin.c (one_pass): Likewise.
>        * gcc.dg/plugin/selfassign.c (pass_warn_self_assign): Likewise.
>
>
>
>
> --
> -----------------------------------------------------------------------------
> Rainer Orth, Center for Biotechnology, Bielefeld University
>

Patch

# HG changeset patch
# Parent 12b8d919dd25eba78689a9fef617cc5428a57c33
Fix plugin testsuite, uses of TODO_dump_func

diff --git a/gcc/testsuite/g++.dg/plugin/dumb_plugin.c b/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
--- a/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
+++ b/gcc/testsuite/g++.dg/plugin/dumb_plugin.c
@@ -72,7 +72,7 @@  static struct gimple_opt_pass pass_dumb_
     0,                                    /* properties_provided */
     0,                                    /* properties_destroyed */
     0,                                    /* todo_flags_start */
-    TODO_dump_func                        /* todo_flags_finish */
+    0					  /* todo_flags_finish */
   }
 };
 
diff --git a/gcc/testsuite/g++.dg/plugin/selfassign.c b/gcc/testsuite/g++.dg/plugin/selfassign.c
--- a/gcc/testsuite/g++.dg/plugin/selfassign.c
+++ b/gcc/testsuite/g++.dg/plugin/selfassign.c
@@ -276,7 +276,7 @@  static struct gimple_opt_pass pass_warn_
     0,                                    /* properties_provided */
     0,                                    /* properties_destroyed */
     0,                                    /* todo_flags_start */
-    TODO_dump_func                        /* todo_flags_finish */
+    0					  /* todo_flags_finish */
   }
 };
 
diff --git a/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c b/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
--- a/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
+++ b/gcc/testsuite/gcc.dg/plugin/one_time_plugin.c
@@ -42,7 +42,7 @@  struct gimple_opt_pass one_pass =
   0,                                    /* properties_provided */
   0,                                    /* properties_destroyed */
   0,                                    /* todo_flags_start */
-  TODO_dump_func                        /* todo_flags_finish */
+  0					/* todo_flags_finish */
   }
 };
 
diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c
--- a/gcc/testsuite/gcc.dg/plugin/selfassign.c
+++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c
@@ -276,7 +276,7 @@  static struct gimple_opt_pass pass_warn_
     0,                                    /* properties_provided */
     0,                                    /* properties_destroyed */
     0,                                    /* todo_flags_start */
-    TODO_dump_func                        /* todo_flags_finish */
+    0					  /* todo_flags_finish */
   }
 };
 
diff --git a/gcc/testsuite/lib/plugin-support.exp b/gcc/testsuite/lib/plugin-support.exp
--- a/gcc/testsuite/lib/plugin-support.exp
+++ b/gcc/testsuite/lib/plugin-support.exp
@@ -1,4 +1,4 @@ 
-#   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+#   Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -70,7 +70,8 @@  proc plugin-test-execute { plugin_src pl
     set base [file rootname $basename]
     set plugin_lib $base.so
 
-    verbose "Test the plugin $basename" 1
+    set testcase [dg-trim-dirname $srcdir $plugin_src]
+    verbose "Test the plugin $testcase" 1
 
     # Build the plugin itself
     set extra_flags [plugin-get-options $plugin_src]
@@ -113,8 +114,12 @@  proc plugin-test-execute { plugin_src pl
     set_ld_library_path_env_vars
 
     if { $status != 0 } then {
- 	unresolved "$basename compilation, $optstr"
+ 	fail "$testcase compilation"
+	# Strictly, this is wrong: the tests compiled with the plugin should
+	# become unresolved instead.
  	return
+    } else {
+	pass "$testcase compilation"
     }
 
     # Compile the input source files with the plugin