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  <r...@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.

# 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

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to