Author: mlandres
Date: Tue Feb 26 13:29:19 2008
New Revision: 8914
URL: http://svn.opensuse.org/viewcvs/zypp?rev=8914&view=rev
Log:
Fixed Capabilites iterator exposing prereq marker.
Modified:
trunk/libzypp/package/libzypp.changes
trunk/libzypp/tests/zypp/Capabilities_test.cc
trunk/libzypp/zypp/Capabilities.h
trunk/libzypp/zypp/sat/detail/PoolImpl.cc
Modified: trunk/libzypp/package/libzypp.changes
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/package/libzypp.changes?rev=8914&r1=8913&r2=8914&view=diff
==============================================================================
--- trunk/libzypp/package/libzypp.changes (original)
+++ trunk/libzypp/package/libzypp.changes Tue Feb 26 13:29:19 2008
@@ -1,4 +1,10 @@
-------------------------------------------------------------------
+Tue Feb 26 13:26:30 CET 2008 - ma@suse.de
+
+- Fixed Capabilites iterator exposing prereq marker.
+- revision 8914
+
+-------------------------------------------------------------------
Tue Feb 26 11:29:05 CET 2008 - schubi@suse.de
- postinstall script fixed
Modified: trunk/libzypp/tests/zypp/Capabilities_test.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/tests/zypp/Capabilities_test.cc?rev=8914&r1=8913&r2=8914&view=diff
==============================================================================
--- trunk/libzypp/tests/zypp/Capabilities_test.cc (original)
+++ trunk/libzypp/tests/zypp/Capabilities_test.cc Tue Feb 26 13:29:19 2008
@@ -2,6 +2,7 @@
//
// tests for Capabilities
//
+#include <iostream>
#include <string>
// Boost.Test
@@ -9,6 +10,7 @@
#include
#include "zypp/Capability.h"
+#include "zypp/Capabilities.h"
using boost::unit_test::test_suite;
using boost::unit_test::test_case;
@@ -78,5 +80,35 @@
BOOST_CHECK_EQUAL( ( c0 == c1 ), false );
BOOST_CHECK_EQUAL( Capability::matches( c0, c1 ), CapMatch::yes );
+
+
+ Capability r( "req" );
+ Capability p( "prereq" );
+
+ sat::detail::IdType caps[10];
+ caps[0] = r.id();
+ caps[1] = sat::detail::solvablePrereqMarker;
+ caps[2] = p.id();
+ caps[3] = 0;
+
+ // Capabilities with and without prereq (skip marker in ++)
+ Capabilities c( caps );
+ cout << c << endl;
+ BOOST_CHECK_EQUAL( c.size(), 2 );
+ Capabilities::const_iterator it( c.begin() );
+ BOOST_CHECK_EQUAL( *it, r );
+ BOOST_CHECK_EQUAL( it.tagged(), false );
+ ++it;
+ BOOST_CHECK_EQUAL( *it, p );
+ BOOST_CHECK_EQUAL( it.tagged(), true );
+
+ // Capabilities with prereq only (skip marker in ctor)
+ c = Capabilities( caps+1 );
+ cout << c << endl;
+ BOOST_CHECK_EQUAL( c.size(), 1 );
+ it = c.begin();
+ BOOST_CHECK_EQUAL( *it, p );
+ BOOST_CHECK_EQUAL( it.tagged(), true );
+
}
Modified: trunk/libzypp/zypp/Capabilities.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/Capabilities.h?rev=8914&r1=8913&r2=8914&view=diff
==============================================================================
--- trunk/libzypp/zypp/Capabilities.h (original)
+++ trunk/libzypp/zypp/Capabilities.h Tue Feb 26 13:29:19 2008
@@ -103,7 +103,13 @@
explicit const_iterator( const sat::detail::IdType * _idx )
: const_iterator::iterator_adaptor_( _idx )
- {}
+ {
+ if ( base_reference() && sat::detail::isDepMarkerId( *base_reference() ) )
+ {
+ _tagged = true;
+ ++base_reference();
+ }
+ }
public:
/** Return \c true if the \ref Capability is \c tagged.
Modified: trunk/libzypp/zypp/sat/detail/PoolImpl.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/sat/detail/PoolImpl.cc?rev=8914&r1=8913&r2=8914&view=diff
==============================================================================
--- trunk/libzypp/zypp/sat/detail/PoolImpl.cc (original)
+++ trunk/libzypp/zypp/sat/detail/PoolImpl.cc Tue Feb 26 13:29:19 2008
@@ -158,7 +158,7 @@
if ( ! _pool->whatprovides )
{
DBG << "pool_createwhatprovides..." << endl;
- ::pool_addfileprovides( _pool, sat::Pool::instance().systemRepo().get());
+ ::pool_addfileprovides( _pool, sat::Pool::instance().systemRepo().get() );
::pool_createwhatprovides( _pool );
}
}
--
To unsubscribe, e-mail: zypp-commit+unsubscribe@opensuse.org
For additional commands, e-mail: zypp-commit+help@opensuse.org