Subject: Re: [Boost-bugs] [Boost C++ Libraries] #2267: graphml_test broken
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2008-08-28 06:57:30
#2267: graphml_test broken
---------------------------+------------------------------------------------
Reporter: dave | Owner: dgregor
Type: Bugs | Status: new
Milestone: Boost 1.37.0 | Component: graph
Version: Boost 1.35.0 | Severity: Problem
Resolution: | Keywords:
---------------------------+------------------------------------------------
Description changed by dave:
Old description:
> Problem 1: the test can't work unless bjam is run from the test's
> directory. The minimal fix:
> {{{
> #!diff
> Index: graphml_test.cpp
> ===================================================================
> --- graphml_test.cpp (revision 48407)
> +++ graphml_test.cpp (working copy)
> @@ -43,7 +43,7 @@
> dp.property("foo",get(vertex_color_t(),g));
> dp.property("weight",get(edge_weight_t(),g));
>
> - ifstream ifile("graphml_test.xml");
> + ifstream ifile( argv[1] );
> read_graphml(ifile, g, dp);
> ifile.close();
>
> Index: Jamfile.v2
> ===================================================================
> --- Jamfile.v2 (revision 48407)
> +++ Jamfile.v2 (working copy)
> @@ -17,7 +17,7 @@
>
> if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
> {
> - optional_tests += [ run graphml_test.cpp ../build//boost_graph ] ;
> + optional_tests += [ run graphml_test.cpp ../build//boost_graph : :
> "graphml_test.xml" ] ;
> }
>
> test-suite graph_test :
> }}}
>
> However note that the original code actually yields an XML parse error
> rather than something that indicates the real problem. I suggest setting
> the bit on the ifstream that tells it to throw on failure.
>
> Problem 2: The test still doesn't work.
>
> {{{
> #!sh
> testing.capture-output
> /zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.run
> /bin/sh: line 4: 4887 Aborted
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test"
> "graphml_test.xml"
> >"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> 2>&1
> ====== BEGIN OUTPUT ======
> terminate called after throwing an instance of
> 'boost::undirected_graph_error'
> what(): read_graphviz: Tried to read an undirected graph into a
> directed graph.
>
> EXIT STATUS: 134
> ====== END OUTPUT ======
>
> LD_LIBRARY_PATH=/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:/zorak/sles/build/boost/bin.v2/libs/graph/build/gcc-4.1.0/release:$LD_LIBRARY_PATH
> export LD_LIBRARY_PATH
>
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test"
> "graphml_test.xml" >
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> 2>&1
> status=$?
> echo >>
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> echo EXIT STATUS: $status >>
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> if test $status -eq 0 ; then
> cp
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.run"
> fi
> verbose=0
> if test $status -ne 0 ; then
> verbose=1
> fi
> if test $verbose -eq 1 ; then
> echo ====== BEGIN OUTPUT ======
> cat
> "/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
> echo ====== END OUTPUT ======
> fi
> exit $status
> }}}
New description:
Problem 1: the test can't work unless bjam is run from the test's
directory. That makes it useless as part of the Boost test suite. None
of your testers have libexpat installed/configured. The minimal fix:
{{{
#!diff
Index: graphml_test.cpp
===================================================================
--- graphml_test.cpp (revision 48407)
+++ graphml_test.cpp (working copy)
@@ -43,7 +43,7 @@
dp.property("foo",get(vertex_color_t(),g));
dp.property("weight",get(edge_weight_t(),g));
- ifstream ifile("graphml_test.xml");
+ ifstream ifile( argv[1] );
read_graphml(ifile, g, dp);
ifile.close();
Index: Jamfile.v2
===================================================================
--- Jamfile.v2 (revision 48407)
+++ Jamfile.v2 (working copy)
@@ -17,7 +17,7 @@
if [ modules.peek : EXPAT_INCLUDE ] && [ modules.peek : EXPAT_LIBPATH ]
{
- optional_tests += [ run graphml_test.cpp ../build//boost_graph ] ;
+ optional_tests += [ run graphml_test.cpp ../build//boost_graph : :
"graphml_test.xml" ] ;
}
test-suite graph_test :
}}}
However note that the original code actually yields an XML parse error
rather than something that indicates the real problem. I suggest setting
the bit on the ifstream that tells it to throw on failure.
Problem 2: The test still doesn't work.
{{{
#!sh
testing.capture-output
/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.run
/bin/sh: line 4: 4887 Aborted
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test"
"graphml_test.xml"
>"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
2>&1
====== BEGIN OUTPUT ======
terminate called after throwing an instance of
'boost::undirected_graph_error'
what(): read_graphviz: Tried to read an undirected graph into a
directed graph.
EXIT STATUS: 134
====== END OUTPUT ======
LD_LIBRARY_PATH=/usr/bin:/usr/lib:/usr/lib32:/usr/lib64:/zorak/sles/build/boost/bin.v2/libs/graph/build/gcc-4.1.0/release:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test"
"graphml_test.xml" >
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
2>&1
status=$?
echo >>
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
echo EXIT STATUS: $status >>
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
if test $status -eq 0 ; then
cp
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.run"
fi
verbose=0
if test $status -ne 0 ; then
verbose=1
fi
if test $verbose -eq 1 ; then
echo ====== BEGIN OUTPUT ======
cat
"/zorak/sles/build/boost/bin.v2/libs/graph/test/graphml_test.test/gcc-4.1.0/release/graphml_test.output"
echo ====== END OUTPUT ======
fi
exit $status
}}}
-- -- Ticket URL: <http://svn.boost.org/trac/boost/ticket/2267#comment:2> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:49:58 UTC