This is the mail archive of the
mailing list for the libstdc++ project.
Re: ABI regression tester, version 0.0.0pre2.alpha7
On Tue, Aug 20, 2002 at 12:46:30PM -0700, Benjamin Kosnik wrote:
> There's got to be sane output or else g++ hackers and gcc hackers won't
> use it, and the automated regression checkers will just get confused.
> Diff wasn't doing it for me, especially when there is a lot that can
> change between lines of the script output.
I think there would be less difference than you imagine, as long as we
sort the text before diffing. I've added some text to the autocrasher,
next time a variation appears it should be more human-readable.
Anyhow... multiple paths to the same solution. I'll take the low road
and you take the high road, and we'll both get to scotland.
> > The .so swap should be another kind of test, but I haven't automated
> > that one.
> I have no idea how to do this.
Easy to do in my autocrasher, but darn near impossible to generalize enough
for testsuite checkin.
> > The two .sh scripts in your tarball are only different in that one reads
> > libstdc++.so.5.0.0, and the other reads .5.0.1. Since we use symlinks
> > in the build/install directory, you could just read libstdc++.so, or
> > libstdc++.so.5, and need to only maintain a single script.
> Right. Sleepy. Lazy. Also, abi_check.cc has hard-wired string literals
> for baseline_file and test_file, so that should be passed in argv
The first version of this program you posted, I took and added system()
calls to do the readelf-pipe-etc stuff, so that the name of the .so could be
passed in as argv. Have to assume GNU readelf, etc, so that wouldn't work.
> Do you have any ideas on how to work through the testsuite/Makefile.am
> issues? Gak!!! I'm hoping to have something in yesterday, or at least
> before a lot of the pending C++ linkage patches go in...
Off the top of my head, we build your program(s) and then do the testing
work in a script:
noinst_PROGRAMS = abicheck
abicheck_SOURCES = abicheck.cc
$(SHELL) $(srcdir)/testsuite/run_a_sane_script $(builddir)
Pass in the build directory path, and I think the script can figure out
everything else, e.g., call the $(builddir)/testsuite/abicheck, scan the
I would therefore like to posit that computing's central challenge, viz. "How
not to make a mess of it," has /not/ been met.
- Edsger Dijkstra, 1930-2002