This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[testsuite] Fix plugin testsuite, remove uses of TODO_dump_func (PR testsuite/52948)
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Xinliang David Li <davidxl at google dot com>
- Date: Mon, 16 Apr 2012 12:24:01 +0200
- Subject: [testsuite] Fix plugin testsuite, remove uses of TODO_dump_func (PR testsuite/52948)
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.
# 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