Some changes I had still in queue. Using a different test word, that
authorMichael Matz <matz@suse.de>
Wed, 9 Apr 2008 10:14:19 +0000 (10:14 +0000)
committerMichael Matz <matz@suse.de>
Wed, 9 Apr 2008 10:14:19 +0000 (10:14 +0000)
happens to exist sometimes only in names, or summaries or descriptions.
And not accessing the kv.id member (only debug output, but hey).

tests/zypp/PoolQuery_test.cc
zypp/PoolQuery.cc

index cfd94a4..3bf6aa9 100644 (file)
@@ -201,13 +201,18 @@ BOOST_AUTO_TEST_CASE(pool_query_100)
 {
   cout << "****100****"  << endl;
   PoolQuery q;
-  q.addString("mp3");
+  /* This string is found sometimes only in solvable names (e.g. novell-lum),
+     sometimes only in summary (e.g. yast2-casa-ats) and sometimes only
+     in descriptions (e.g. beagle-quickfinder).  novell-lum doesn't exist
+     in our test solv file, but let's ignore this.  I didn't find a string
+     with the same characteristics giving fewer matches :-/  */
+  q.addString("novell");
   q.addAttribute(sat::SolvAttr::name);
   q.addAttribute(sat::SolvAttr::summary);
   q.addAttribute(sat::SolvAttr::description);
 
   std::for_each(q.begin(), q.end(), &result_cb);
-  BOOST_CHECK(q.size() == 73);
+  BOOST_CHECK(q.size() == 74);
 
   cout << endl;
 
index f7f525f..c68f595 100644 (file)
@@ -601,14 +601,14 @@ attremptycheckend:
           {
             const string & sstr =
               _pqimpl->_rcstrings.empty() ? ai->second : _pqimpl->_rcstrings;
-            const IdString & value =
-              IdString(_rdit->kv.id);
 
             //! \todo pass compiled regex if SEARCH_REGEX
-            matches = dataiterator_match(_rdit, _pqimpl->_flags, sstr.c_str());
+            matches = ::dataiterator_match(_rdit, _pqimpl->_flags, sstr.c_str());
 
             if (matches)
-              INT << "value: " << value.asString() << endl
+             /* After calling dataiterator_match (with any string matcher set)
+                the kv.str member will be filled with something sensible.  */
+              INT << "value: " << _rdit->kv.str << endl
                   << " mstr: " <<  sstr << endl; 
           }
         }