Re: [Boost-bugs] [Boost C++ Libraries] #2267: graphml_test broken

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