diff options
Diffstat (limited to 'rep/ept/core')
21 files changed, 0 insertions, 4344 deletions
diff --git a/rep/ept/core/apt.cpp.gcov.html b/rep/ept/core/apt.cpp.gcov.html deleted file mode 100644 index 159b490..0000000 --- a/rep/ept/core/apt.cpp.gcov.html +++ /dev/null @@ -1,90 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt.cpp</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - apt.cpp</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">7</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">7</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 3 </span> : #include <wibble/sys/fs.h> -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : namespace wfs = wibble::sys::fs; -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : namespace ept { -<span class="lineNum"> 8 </span> : namespace core { -<span class="lineNum"> 9 </span><span class="lineCov"> 45 : time_t aptTimestamp()</span> -<span class="lineNum"> 10 </span> : { -<span class="lineNum"> 11 </span> : std::auto_ptr<struct stat> st = wfs::stat( -<span class="lineNum"> 12 </span><span class="lineCov"> 45 : _config->FindFile( "Dir::Cache::pkgcache" ) );</span> -<span class="lineNum"> 13 </span><span class="lineCov"> 45 : time_t t1 = st.get() == NULL ? 0 : st->st_mtime;</span> -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span> : std::auto_ptr<struct stat> st1 = wfs::stat( -<span class="lineNum"> 16 </span><span class="lineCov"> 45 : _config->FindFile( "Dir::State::status" ) );</span> -<span class="lineNum"> 17 </span><span class="lineCov"> 45 : time_t t2 = st1.get() == NULL ? 0 : st1->st_mtime;</span> -<span class="lineNum"> 18 </span> : -<span class="lineNum"> 19 </span><span class="lineCov"> 45 : return t1 > t2 ? t1 : t2;</span> -<span class="lineNum"> 20 </span> : } -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span> : } -<span class="lineNum"> 23 </span><span class="lineCov"> 6 : }</span> -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt.h.gcov.html b/rep/ept/core/apt.h.gcov.html deleted file mode 100644 index b8d3ec9..0000000 --- a/rep/ept/core/apt.h.gcov.html +++ /dev/null @@ -1,474 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - apt.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">173</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">79.8 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">138</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <string> -<span class="lineNum"> 4 </span> : #include <wibble/test.h> -<span class="lineNum"> 5 </span> : -<span class="lineNum"> 6 </span> : #include <ept/token.h> -<span class="lineNum"> 7 </span> : #include <ept/core/source.h> -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span> : #include <iostream> -<span class="lineNum"> 10 </span> : #include <wibble/exception.h> -<span class="lineNum"> 11 </span> : -<span class="lineNum"> 12 </span> : #include <apt-pkg/pkgcache.h> -<span class="lineNum"> 13 </span> : #include <apt-pkg/sourcelist.h> -<span class="lineNum"> 14 </span> : #include <apt-pkg/error.h> -<span class="lineNum"> 15 </span> : #include <apt-pkg/policy.h> -<span class="lineNum"> 16 </span> : #include <apt-pkg/cachefile.h> -<span class="lineNum"> 17 </span> : #include <apt-pkg/progress.h> -<span class="lineNum"> 18 </span> : #include <apt-pkg/pkgcachegen.h> -<span class="lineNum"> 19 </span> : #include <apt-pkg/init.h> -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span> : #ifndef EPT_APT_H -<span class="lineNum"> 22 </span> : #define EPT_APT_H -<span class="lineNum"> 23 </span> : -<span class="lineNum"> 24 </span> : namespace ept { -<span class="lineNum"> 25 </span> : namespace core { -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span><span class="lineNoCov"> 0 : struct AptException : wibble::exception::Generic {</span> -<span class="lineNum"> 28 </span><span class="lineNoCov"> 0 : std::string desc() const throw () {</span> -<span class="lineNum"> 29 </span><span class="lineNoCov"> 0 : return "APT Error";</span> -<span class="lineNum"> 30 </span> : } -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span><span class="lineNoCov"> 0 : AptException( const std::string &ctx ) : Generic( ctx ) {</span> -<span class="lineNum"> 33 </span><span class="lineNoCov"> 0 : while ( !_error->empty() ) {</span> -<span class="lineNum"> 34 </span><span class="lineNoCov"> 0 : std::string err;</span> -<span class="lineNum"> 35 </span><span class="lineNoCov"> 0 : _error->PopMessage( err );</span> -<span class="lineNum"> 36 </span><span class="lineNoCov"> 0 : std::cerr << err << std::endl;</span> -<span class="lineNum"> 37 </span><span class="lineNoCov"> 0 : addContext( err );</span> -<span class="lineNum"> 38 </span> : } -<span class="lineNum"> 39 </span><span class="lineNoCov"> 0 : }</span> -<span class="lineNum"> 40 </span> : }; -<span class="lineNum"> 41 </span> : -<span class="lineNum"> 42 </span> : struct PackageState { -<span class="lineNum"> 43 </span> : enum Query { -<span class="lineNum"> 44 </span> : Install = 1 << 0, -<span class="lineNum"> 45 </span> : Upgrade = 1 << 1, -<span class="lineNum"> 46 </span> : Keep = 1 << 2, -<span class="lineNum"> 47 </span> : Remove = 1 << 3, -<span class="lineNum"> 48 </span> : Installed = 1 << 4, -<span class="lineNum"> 49 </span> : Upgradable = 1 << 5, -<span class="lineNum"> 50 </span> : NowBroken = 1 << 6, -<span class="lineNum"> 51 </span> : WillBreak = 1 << 7, -<span class="lineNum"> 52 </span> : ReInstall = 1 << 8, -<span class="lineNum"> 53 </span> : Purge = 1 << 9, -<span class="lineNum"> 54 </span> : Hold = 1 << 10, -<span class="lineNum"> 55 </span> : Valid = 1 << 11 -<span class="lineNum"> 56 </span> : }; -<span class="lineNum"> 57 </span> : -<span class="lineNum"> 58 </span> : typedef unsigned state; -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span><span class="lineCov"> 3786 : operator unsigned() { return m_state; };</span> -<span class="lineNum"> 61 </span> : -<span class="lineNum"> 62 </span> : PackageState &operator=( unsigned i ) { -<span class="lineNum"> 63 </span> : m_state = i; -<span class="lineNum"> 64 </span> : return *this; -<span class="lineNum"> 65 </span> : } -<span class="lineNum"> 66 </span> : -<span class="lineNum"> 67 </span><span class="lineCov"> 5218 : PackageState &operator|=( const PackageState &s ) {</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 5218 : m_state |= s.m_state;</span> -<span class="lineNum"> 69 </span><span class="lineCov"> 5218 : return *this;</span> -<span class="lineNum"> 70 </span> : } -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span><span class="lineCov"> 9003 : PackageState( unsigned a ) {</span> -<span class="lineNum"> 73 </span><span class="lineCov"> 9003 : m_state = a;</span> -<span class="lineNum"> 74 </span><span class="lineCov"> 9003 : }</span> -<span class="lineNum"> 75 </span> : -<span class="lineNum"> 76 </span><span class="lineCov"> 1 : PackageState() : m_state( 0 ) {}</span> -<span class="lineNum"> 77 </span> : -<span class="lineNum"> 78 </span> : // FIXME this probably needs to be used consistently in core and out of core -<span class="lineNum"> 79 </span><span class="lineCov"> 2 : bool isValid() const { return m_state & Valid; }</span> -<span class="lineNum"> 80 </span> : // FIXME compatibility API for non-core apt -<span class="lineNum"> 81 </span><span class="lineCov"> 1 : bool isInstalled() const { return installed(); }</span> -<span class="lineNum"> 82 </span> : -<span class="lineNum"> 83 </span><span class="lineCov"> 2 : bool install() const { return m_state & Install; }</span> -<span class="lineNum"> 84 </span> : // reinstall() implies install() -<span class="lineNum"> 85 </span> : bool reinstall() const { return m_state & ReInstall; } -<span class="lineNum"> 86 </span> : bool remove() const { return m_state & Remove; } -<span class="lineNum"> 87 </span> : // purge() implies remove() -<span class="lineNum"> 88 </span><span class="lineCov"> 3775 : bool purge() const { return m_state & Purge; }</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 3780 : bool keep() const { return m_state & Keep; }</span> -<span class="lineNum"> 90 </span> : bool willBreak() const { return m_state & WillBreak; } -<span class="lineNum"> 91 </span> : // upgrade() implies install() -<span class="lineNum"> 92 </span> : bool upgrade() const { return hasNewVersion() && install(); } -<span class="lineNum"> 93 </span> : // newInsstal() implies install() -<span class="lineNum"> 94 </span> : bool newInstall() const { return !installed() && install(); } -<span class="lineNum"> 95 </span> : bool hold() const { return m_state & Hold; } -<span class="lineNum"> 96 </span> : -<span class="lineNum"> 97 </span><span class="lineCov"> 1 : bool installed() const { return m_state & Installed; }</span> -<span class="lineNum"> 98 </span> : bool hasNewVersion() const { return m_state & Upgradable; } -<span class="lineNum"> 99 </span> : bool upgradable() const { return hasNewVersion() && !hold(); } -<span class="lineNum"> 100 </span> : bool held() const { return hasNewVersion() && hold(); } -<span class="lineNum"> 101 </span> : bool nowBroken() const { return m_state & NowBroken; } -<span class="lineNum"> 102 </span> : -<span class="lineNum"> 103 </span> : bool modify() const { return install() || remove(); } -<span class="lineNum"> 104 </span> : -<span class="lineNum"> 105 </span> : protected: -<span class="lineNum"> 106 </span> : unsigned m_state; -<span class="lineNum"> 107 </span> : }; -<span class="lineNum"> 108 </span> : -<span class="lineNum"> 109 </span> : time_t aptTimestamp(); -<span class="lineNum"> 110 </span> : -<span class="lineNum"> 111 </span> : // wrap the apt's database -<span class="lineNum"> 112 </span> : struct AptDatabase { -<span class="lineNum"> 113 </span><span class="lineCov"> 5093 : pkgCache &cache() {</span> -<span class="lineNum"> 114 </span><span class="lineCov"> 5093 : if ( !m_cache )</span> -<span class="lineNum"> 115 </span><span class="lineCov"> 20 : openCache();</span> -<span class="lineNum"> 116 </span><span class="lineCov"> 5093 : return *m_cache;</span> -<span class="lineNum"> 117 </span> : } -<span class="lineNum"> 118 </span> : -<span class="lineNum"> 119 </span><span class="lineCov"> 3793 : pkgDepCache &state() {</span> -<span class="lineNum"> 120 </span><span class="lineCov"> 3793 : if ( !m_state )</span> -<span class="lineNum"> 121 </span><span class="lineCov"> 5 : openState();</span> -<span class="lineNum"> 122 </span><span class="lineCov"> 3793 : return *m_state;</span> -<span class="lineNum"> 123 </span> : } -<span class="lineNum"> 124 </span> : -<span class="lineNum"> 125 </span><span class="lineCov"> 1436 : pkgPolicy &policy() {</span> -<span class="lineNum"> 126 </span><span class="lineCov"> 1436 : if ( !m_policy )</span> -<span class="lineNum"> 127 </span><span class="lineNoCov"> 0 : openCache();</span> -<span class="lineNum"> 128 </span><span class="lineCov"> 1436 : return *m_policy;</span> -<span class="lineNum"> 129 </span> : } -<span class="lineNum"> 130 </span> : -<span class="lineNum"> 131 </span> : OpProgress *m_progress; -<span class="lineNum"> 132 </span> : bool m_tryWriteable; -<span class="lineNum"> 133 </span> : bool m_writeable; -<span class="lineNum"> 134 </span> : -<span class="lineNum"> 135 </span> : time_t timestamp() { -<span class="lineNum"> 136 </span> : return aptTimestamp(); -<span class="lineNum"> 137 </span> : } -<span class="lineNum"> 138 </span> : -<span class="lineNum"> 139 </span><span class="lineCov"> 73 : AptDatabase() {</span> -<span class="lineNum"> 140 </span><span class="lineCov"> 73 : m_cache = 0;</span> -<span class="lineNum"> 141 </span><span class="lineCov"> 73 : m_state = 0;</span> -<span class="lineNum"> 142 </span><span class="lineCov"> 73 : m_policy = 0;</span> -<span class="lineNum"> 143 </span><span class="lineCov"> 73 : m_progress = new OpProgress();</span> -<span class="lineNum"> 144 </span><span class="lineCov"> 73 : m_tryWriteable = true;</span> -<span class="lineNum"> 145 </span><span class="lineCov"> 73 : m_writeable = false;</span> -<span class="lineNum"> 146 </span><span class="lineCov"> 73 : }</span> -<span class="lineNum"> 147 </span> : -<span class="lineNum"> 148 </span> : void setProgress( OpProgress *p ) { -<span class="lineNum"> 149 </span> : m_progress = p; -<span class="lineNum"> 150 </span> : } -<span class="lineNum"> 151 </span> : -<span class="lineNum"> 152 </span> : bool writeable() { -<span class="lineNum"> 153 </span> : if ( !m_cache ) -<span class="lineNum"> 154 </span> : openCache(); -<span class="lineNum"> 155 </span> : return m_writeable; -<span class="lineNum"> 156 </span> : } -<span class="lineNum"> 157 </span> : -<span class="lineNum"> 158 </span><span class="lineCov"> 5 : void openState() {</span> -<span class="lineNum"> 159 </span><span class="lineCov"> 5 : m_state = new pkgDepCache( &cache(), m_policy );</span> -<span class="lineNum"> 160 </span><span class="lineCov"> 5 : m_state->Init( m_progress );</span> -<span class="lineNum"> 161 </span><span class="lineCov"> 5 : m_progress->Done();</span> -<span class="lineNum"> 162 </span><span class="lineCov"> 5 : }</span> -<span class="lineNum"> 163 </span> : -<span class="lineNum"> 164 </span><span class="lineCov"> 20 : void openCache() {</span> -<span class="lineNum"> 165 </span><span class="lineCov"> 20 : if ( !_config->FindB("Initialized") ) {</span> -<span class="lineNum"> 166 </span><span class="lineNoCov"> 0 : pkgInitConfig(*_config);</span> -<span class="lineNum"> 167 </span><span class="lineNoCov"> 0 : _config->Set("Initialized", 1);</span> -<span class="lineNum"> 168 </span><span class="lineNoCov"> 0 : pkgInitSystem(*_config, _system);</span> -<span class="lineNum"> 169 </span> : } -<span class="lineNum"> 170 </span> : -<span class="lineNum"> 171 </span><span class="lineCov"> 20 : m_writeable = m_tryWriteable;</span> -<span class="lineNum"> 172 </span> : -<span class="lineNum"> 173 </span><span class="lineCov"> 20 : if ( m_tryWriteable ) {</span> -<span class="lineNum"> 174 </span> : try { -<span class="lineNum"> 175 </span><span class="lineCov"> 20 : _system->Lock();</span> -<span class="lineNum"> 176 </span><span class="lineNoCov"> 0 : } catch ( std::exception e ) {</span> -<span class="lineNum"> 177 </span><span class="lineNoCov"> 0 : m_tryWriteable = false;</span> -<span class="lineNum"> 178 </span><span class="lineNoCov"> 0 : openCache();</span> -<span class="lineNum"> 179 </span><span class="lineNoCov"> 0 : m_tryWriteable = true;</span> -<span class="lineNum"> 180 </span><span class="lineNoCov"> 0 : throw;</span> -<span class="lineNum"> 181 </span> : } -<span class="lineNum"> 182 </span> : } -<span class="lineNum"> 183 </span> : -<span class="lineNum"> 184 </span><span class="lineCov"> 20 : pkgSourceList list;</span> -<span class="lineNum"> 185 </span><span class="lineCov"> 20 : if ( list.ReadMainList() == false ) {</span> -<span class="lineNum"> 186 </span><span class="lineNoCov"> 0 : _error->DumpErrors();</span> -<span class="lineNum"> 187 </span> : throw wibble::exception::System( -<span class="lineNum"> 188 </span><span class="lineNoCov"> 0 : "The list of sources could not be read." );</span> -<span class="lineNum"> 189 </span> : } -<span class="lineNum"> 190 </span> : -<span class="lineNum"> 191 </span><span class="lineCov"> 20 : MMap *m = 0;</span> -<span class="lineNum"> 192 </span><span class="lineCov"> 20 : bool Res = pkgMakeStatusCache( list, *m_progress, &m, !m_writeable );</span> -<span class="lineNum"> 193 </span> : -<span class="lineNum"> 194 </span><span class="lineCov"> 20 : if ( !Res ) {</span> -<span class="lineNum"> 195 </span> : std::cerr << "The package lists or status file " -<span class="lineNum"> 196 </span><span class="lineNoCov"> 0 : "could not be parsed or opened." << std::endl;</span> -<span class="lineNum"> 197 </span> : throw AptException( -<span class="lineNum"> 198 </span> : "The package lists or status file " -<span class="lineNum"> 199 </span><span class="lineNoCov"> 0 : "could not be parsed or opened." );</span> -<span class="lineNum"> 200 </span> : } -<span class="lineNum"> 201 </span> : -<span class="lineNum"> 202 </span><span class="lineCov"> 20 : m_cache = new pkgCache( m, true );</span> -<span class="lineNum"> 203 </span><span class="lineCov"> 40 : m_policy = new pkgPolicy( m_cache );</span> -<span class="lineNum"> 204 </span><span class="lineCov"> 40 : if ( ReadPinFile( *m_policy ) == false )</span> -<span class="lineNum"> 205 </span><span class="lineNoCov"> 0 : throw wibble::exception::System( "error reading pin file" );</span> -<span class="lineNum"> 206 </span><span class="lineCov"> 20 : m_progress->Done();</span> -<span class="lineNum"> 207 </span><span class="lineCov"> 20 : }</span> -<span class="lineNum"> 208 </span> : -<span class="lineNum"> 209 </span><span class="lineCov"> 74 : void invalidate() {</span> -<span class="lineNum"> 210 </span><span class="lineCov"> 74 : if ( _config->FindB("Initialized") ) {</span> -<span class="lineNum"> 211 </span><span class="lineCov"> 74 : _system->UnLock();</span> -<span class="lineNum"> 212 </span> : } -<span class="lineNum"> 213 </span> : -<span class="lineNum"> 214 </span><span class="lineCov"> 74 : delete m_state;</span> -<span class="lineNum"> 215 </span><span class="lineCov"> 74 : m_state = 0;</span> -<span class="lineNum"> 216 </span><span class="lineCov"> 74 : delete m_policy;</span> -<span class="lineNum"> 217 </span><span class="lineCov"> 74 : m_policy = 0;</span> -<span class="lineNum"> 218 </span><span class="lineCov"> 74 : delete m_cache;</span> -<span class="lineNum"> 219 </span><span class="lineCov"> 74 : m_cache = 0;</span> -<span class="lineNum"> 220 </span><span class="lineCov"> 74 : }</span> -<span class="lineNum"> 221 </span> : -<span class="lineNum"> 222 </span> : pkgCache::VerIterator anyVersion( pkgCache::PkgIterator pi ) { -<span class="lineNum"> 223 </span> : if ( pi.end() ) return pkgCache::VerIterator(); -<span class="lineNum"> 224 </span> : return pi.VersionList(); -<span class="lineNum"> 225 </span> : } -<span class="lineNum"> 226 </span> : -<span class="lineNum"> 227 </span><span class="lineCov"> 5 : Token candidateVersion( Token p ) {</span> -<span class="lineNum"> 228 </span><span class="lineCov"> 5 : pkgCache::PkgIterator pi = cache().FindPkg( p.package() );</span> -<span class="lineNum"> 229 </span><span class="lineCov"> 6 : if ( pi.end() ) return Token();</span> -<span class="lineNum"> 230 </span><span class="lineCov"> 4 : pkgCache::VerIterator vi = policy().GetCandidateVer( pi );</span> -<span class="lineNum"> 231 </span><span class="lineCov"> 4 : if ( vi.end() ) return Token();</span> -<span class="lineNum"> 232 </span> : -<span class="lineNum"> 233 </span><span class="lineCov"> 4 : Token t; t._id = p.package() + "_" + vi.VerStr();</span> -<span class="lineNum"> 234 </span><span class="lineCov"> 4 : return t;</span> -<span class="lineNum"> 235 </span> : } -<span class="lineNum"> 236 </span> : -<span class="lineNum"> 237 </span><span class="lineCov"> 1432 : pkgCache::VerIterator candidateVersion( pkgCache::PkgIterator pi ) {</span> -<span class="lineNum"> 238 </span><span class="lineCov"> 1432 : if ( pi.end() ) return pkgCache::VerIterator();</span> -<span class="lineNum"> 239 </span><span class="lineCov"> 1432 : pkgCache::VerIterator vi = policy().GetCandidateVer( pi );</span> -<span class="lineNum"> 240 </span><span class="lineCov"> 1432 : if ( vi.end() ) return pkgCache::VerIterator();</span> -<span class="lineNum"> 241 </span><span class="lineCov"> 1432 : return vi;</span> -<span class="lineNum"> 242 </span> : } -<span class="lineNum"> 243 </span> : -<span class="lineNum"> 244 </span><span class="lineCov"> 1432 : pkgCache::VerIterator installedVersion( pkgCache::PkgIterator pi ) {</span> -<span class="lineNum"> 245 </span><span class="lineCov"> 1432 : if ( pi.end() ) return pkgCache::VerIterator();</span> -<span class="lineNum"> 246 </span> : pkgCache::VerIterator vi = pkgCache::VerIterator( cache(), -<span class="lineNum"> 247 </span><span class="lineCov"> 1432 : cache().VerP + pi->CurrentVer );</span> -<span class="lineNum"> 248 </span><span class="lineCov"> 1432 : if ( vi.end() ) return pkgCache::VerIterator();</span> -<span class="lineNum"> 249 </span><span class="lineCov"> 1432 : return vi;</span> -<span class="lineNum"> 250 </span> : } -<span class="lineNum"> 251 </span> : -<span class="lineNum"> 252 </span><span class="lineCov"> 27 : pkgCache::PkgIterator lookupPackage( Token t ) {</span> -<span class="lineNum"> 253 </span><span class="lineCov"> 27 : return cache().FindPkg( t.package() );</span> -<span class="lineNum"> 254 </span> : } -<span class="lineNum"> 255 </span> : -<span class="lineNum"> 256 </span><span class="lineCov"> 5 : pkgCache::VerIterator lookupVersion( Token t ) {</span> -<span class="lineNum"> 257 </span><span class="lineCov"> 5 : if ( !t.hasVersion() )</span> -<span class="lineNum"> 258 </span><span class="lineCov"> 5 : t = candidateVersion( t );</span> -<span class="lineNum"> 259 </span><span class="lineCov"> 5 : pkgCache::PkgIterator pi = lookupPackage( t );</span> -<span class="lineNum"> 260 </span><span class="lineCov"> 5 : if ( pi.end() )</span> -<span class="lineNum"> 261 </span><span class="lineCov"> 1 : return pkgCache::VerIterator();</span> -<span class="lineNum"> 262 </span><span class="lineCov"> 4 : for (pkgCache::VerIterator vi = pi.VersionList(); !vi.end(); ++vi)</span> -<span class="lineNum"> 263 </span><span class="lineCov"> 4 : if ( t.version() == vi.VerStr() )</span> -<span class="lineNum"> 264 </span><span class="lineCov"> 4 : return vi;</span> -<span class="lineNum"> 265 </span><span class="lineNoCov"> 0 : return pkgCache::VerIterator();</span> -<span class="lineNum"> 266 </span> : } -<span class="lineNum"> 267 </span> : -<span class="lineNum"> 268 </span> : static pkgCache::VerFileIterator lookupVersionFile( -<span class="lineNum"> 269 </span><span class="lineCov"> 5 : pkgCache::VerIterator vi )</span> -<span class="lineNum"> 270 </span> : { -<span class="lineNum"> 271 </span><span class="lineCov"> 5 : if ( vi.end() )</span> -<span class="lineNum"> 272 </span><span class="lineCov"> 1 : return pkgCache::VerFileIterator();</span> -<span class="lineNum"> 273 </span><span class="lineCov"> 4 : pkgCache::VerFileIterator vfi = vi.FileList();</span> -<span class="lineNum"> 274 </span><span class="lineCov"> 4 : for ( ; !vfi.end(); vfi++ )</span> -<span class="lineNum"> 275 </span><span class="lineCov"> 4 : if ( ( vfi.File()->Flags & pkgCache::Flag::NotSource ) == 0)</span> -<span class="lineNum"> 276 </span><span class="lineCov"> 4 : break;</span> -<span class="lineNum"> 277 </span><span class="lineCov"> 4 : if ( vfi.end() )</span> -<span class="lineNum"> 278 </span><span class="lineNoCov"> 0 : vfi = vi.FileList();</span> -<span class="lineNum"> 279 </span><span class="lineCov"> 4 : return vfi;</span> -<span class="lineNum"> 280 </span> : } -<span class="lineNum"> 281 </span> : -<span class="lineNum"> 282 </span><span class="lineNoCov"> 0 : PackageState invalidState() {</span> -<span class="lineNum"> 283 </span><span class="lineNoCov"> 0 : return PackageState( PackageState::NowBroken | PackageState::Keep );</span> -<span class="lineNum"> 284 </span> : } -<span class="lineNum"> 285 </span> : -<span class="lineNum"> 286 </span><span class="lineCov"> 3784 : PackageState packageState( pkgCache::PkgIterator P )</span> -<span class="lineNum"> 287 </span> : { -<span class="lineNum"> 288 </span><span class="lineCov"> 3784 : PackageState s = 0;</span> -<span class="lineNum"> 289 </span><span class="lineCov"> 3784 : if ( P.end() )</span> -<span class="lineNum"> 290 </span><span class="lineNoCov"> 0 : return invalidState();</span> -<span class="lineNum"> 291 </span><span class="lineCov"> 3784 : if ( ! ( P->CurrentState == pkgCache::State::ConfigFiles</span> -<span class="lineNum"> 292 </span> : || P->CurrentState == pkgCache::State::NotInstalled ) ) -<span class="lineNum"> 293 </span><span class="lineCov"> 1432 : s |= PackageState::Installed;</span> -<span class="lineNum"> 294 </span><span class="lineCov"> 3784 : if ( s & PackageState::Installed &&</span> -<span class="lineNum"> 295 </span> : candidateVersion( P ) != installedVersion( P ) ) -<span class="lineNum"> 296 </span><span class="lineCov"> 1 : s |= PackageState::Upgradable;</span> -<span class="lineNum"> 297 </span><span class="lineCov"> 3784 : pkgDepCache::StateCache S = state()[ P ];</span> -<span class="lineNum"> 298 </span><span class="lineCov"> 3784 : if ( S.Install() )</span> -<span class="lineNum"> 299 </span><span class="lineCov"> 3 : s |= PackageState::Install;</span> -<span class="lineNum"> 300 </span><span class="lineCov"> 3784 : if ( ( S.iFlags & pkgDepCache::ReInstall )</span> -<span class="lineNum"> 301 </span> : == pkgDepCache::ReInstall ) -<span class="lineNum"> 302 </span><span class="lineNoCov"> 0 : s |= PackageState::ReInstall;</span> -<span class="lineNum"> 303 </span><span class="lineCov"> 3784 : if ( S.Keep() )</span> -<span class="lineNum"> 304 </span><span class="lineCov"> 3780 : s |= PackageState::Keep;</span> -<span class="lineNum"> 305 </span><span class="lineCov"> 3784 : if ( S.Delete() )</span> -<span class="lineNum"> 306 </span><span class="lineCov"> 1 : s |= PackageState::Remove;</span> -<span class="lineNum"> 307 </span><span class="lineCov"> 3784 : if ( ( S.iFlags & pkgDepCache::Purge ) == pkgDepCache::Purge )</span> -<span class="lineNum"> 308 </span><span class="lineNoCov"> 0 : s |= PackageState::Purge;</span> -<span class="lineNum"> 309 </span><span class="lineCov"> 3784 : if ( S.NowBroken() )</span> -<span class="lineNum"> 310 </span><span class="lineCov"> 1 : s |= PackageState::NowBroken;</span> -<span class="lineNum"> 311 </span><span class="lineCov"> 3784 : if ( S.InstBroken() )</span> -<span class="lineNum"> 312 </span><span class="lineNoCov"> 0 : s |= PackageState::WillBreak;</span> -<span class="lineNum"> 313 </span><span class="lineCov"> 3784 : if ( P->SelectedState == pkgCache::State::Hold )</span> -<span class="lineNum"> 314 </span><span class="lineNoCov"> 0 : s |= PackageState::Hold;</span> -<span class="lineNum"> 315 </span><span class="lineCov"> 3784 : return s;</span> -<span class="lineNum"> 316 </span> : } -<span class="lineNum"> 317 </span> : -<span class="lineNum"> 318 </span><span class="lineCov"> 1 : PackageState packageState( Token t ) {</span> -<span class="lineNum"> 319 </span><span class="lineCov"> 1 : t = validate( t );</span> -<span class="lineNum"> 320 </span><span class="lineCov"> 1 : if ( t.valid() )</span> -<span class="lineNum"> 321 </span><span class="lineCov"> 1 : return packageState( lookupPackage( t ) );</span> -<span class="lineNum"> 322 </span><span class="lineNoCov"> 0 : return invalidState();</span> -<span class="lineNum"> 323 </span> : } -<span class="lineNum"> 324 </span> : -<span class="lineNum"> 325 </span><span class="lineCov"> 4 : Token validate( Token t ) {</span> -<span class="lineNum"> 326 </span><span class="lineCov"> 4 : if ( t.hasVersion() )</span> -<span class="lineNum"> 327 </span><span class="lineNoCov"> 0 : return lookupVersion( t ).end() ? Token() : t;</span> -<span class="lineNum"> 328 </span><span class="lineCov"> 4 : return lookupPackage( t ).end() ? Token() : t;</span> -<span class="lineNum"> 329 </span> : } -<span class="lineNum"> 330 </span> : -<span class="lineNum"> 331 </span><span class="lineCov"> 73 : ~AptDatabase() {</span> -<span class="lineNum"> 332 </span><span class="lineCov"> 73 : invalidate();</span> -<span class="lineNum"> 333 </span><span class="lineCov"> 73 : }</span> -<span class="lineNum"> 334 </span> : -<span class="lineNum"> 335 </span> : protected: -<span class="lineNum"> 336 </span> : pkgCache *m_cache; -<span class="lineNum"> 337 </span> : pkgDepCache *m_state; -<span class="lineNum"> 338 </span> : pkgPolicy *m_policy; -<span class="lineNum"> 339 </span> : }; -<span class="lineNum"> 340 </span> : -<span class="lineNum"> 341 </span> : template< typename Internal > -<span class="lineNum"> 342 </span> : struct AptInternalList { -<span class="lineNum"> 343 </span> : Internal m_head; -<span class="lineNum"> 344 </span> : typedef Internal Type; -<span class="lineNum"> 345 </span><span class="lineCov"> 11331 : AptInternalList tail() const {</span> -<span class="lineNum"> 346 </span><span class="lineCov"> 11331 : AptInternalList t = *this;</span> -<span class="lineNum"> 347 </span><span class="lineCov"> 11331 : t.m_head++;</span> -<span class="lineNum"> 348 </span> : return t; -<span class="lineNum"> 349 </span> : } -<span class="lineNum"> 350 </span><span class="lineCov"> 7554 : const Internal &head() const { return m_head; }</span> -<span class="lineNum"> 351 </span><span class="lineCov"> 3781 : Internal &head() { return m_head; }</span> -<span class="lineNum"> 352 </span><span class="lineCov"> 11334 : bool empty() const { return m_head.end(); }</span> -<span class="lineNum"> 353 </span><span class="lineCov"> 3 : AptInternalList( Internal head ) : m_head( head ) {}</span> -<span class="lineNum"> 354 </span> : AptInternalList() {} -<span class="lineNum"> 355 </span> : }; -<span class="lineNum"> 356 </span> : -<span class="lineNum"> 357 </span> : namespace version { -<span class="lineNum"> 358 </span> : -<span class="lineNum"> 359 </span> : typedef enum { Package, VersionString, Section, Architecture, -<span class="lineNum"> 360 </span> : Depends, Recommends, Record } PropertyId; -<span class="lineNum"> 361 </span> : -<span class="lineNum"> 362 </span> : typedef pkgCache::VerIterator Internal; -<span class="lineNum"> 363 </span> : template< PropertyId > struct PropertyType {}; -<span class="lineNum"> 364 </span> : -<span class="lineNum"> 365 </span> : } -<span class="lineNum"> 366 </span> : -<span class="lineNum"> 367 </span> : namespace package { -<span class="lineNum"> 368 </span> : -<span class="lineNum"> 369 </span> : typedef enum { Name, Versions, AnyVersion, State, CandidateVersion, -<span class="lineNum"> 370 </span> : InstalledVersion } PropertyId; -<span class="lineNum"> 371 </span> : typedef pkgCache::PkgIterator Internal; -<span class="lineNum"> 372 </span> : template< PropertyId > struct PropertyType {}; -<span class="lineNum"> 373 </span> : -<span class="lineNum"> 374 </span> : struct VersionList { -<span class="lineNum"> 375 </span> : version::Internal m_head; -<span class="lineNum"> 376 </span> : VersionList tail() const; -<span class="lineNum"> 377 </span> : const version::Internal &head() const { return m_head; } -<span class="lineNum"> 378 </span> : version::Internal &head() { return m_head; } -<span class="lineNum"> 379 </span> : }; -<span class="lineNum"> 380 </span> : -<span class="lineNum"> 381 </span> : typedef AptInternalList< Internal > InternalList; -<span class="lineNum"> 382 </span> : -<span class="lineNum"> 383 </span> : } -<span class="lineNum"> 384 </span> : -<span class="lineNum"> 385 </span> : namespace record { -<span class="lineNum"> 386 </span> : -<span class="lineNum"> 387 </span> : typedef enum { Record, Name, Priority, Section, InstalledSize, Maintainer, -<span class="lineNum"> 388 </span> : Architecture, SourcePackage, Version, Description, -<span class="lineNum"> 389 </span> : ShortDescription, LongDescription, PackageSize } PropertyId; -<span class="lineNum"> 390 </span> : -<span class="lineNum"> 391 </span> : extern const char *fields[]; -<span class="lineNum"> 392 </span> : -<span class="lineNum"> 393 </span> : typedef pkgCache::VerFileIterator Internal; -<span class="lineNum"> 394 </span> : -<span class="lineNum"> 395 </span> : template< PropertyId > struct PropertyType { -<span class="lineNum"> 396 </span> : typedef std::string T; -<span class="lineNum"> 397 </span> : }; -<span class="lineNum"> 398 </span> : -<span class="lineNum"> 399 </span> : } -<span class="lineNum"> 400 </span> : } -<span class="lineNum"> 401 </span> : } -<span class="lineNum"> 402 </span> : -<span class="lineNum"> 403 </span> : #include <ept/core/apt/package.h> -<span class="lineNum"> 404 </span> : #include <ept/core/apt/version.h> -<span class="lineNum"> 405 </span> : #include <ept/core/apt/record.h> -<span class="lineNum"> 406 </span> : -<span class="lineNum"> 407 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt.test.h.gcov.html b/rep/ept/core/apt.test.h.gcov.html deleted file mode 100644 index 8586911..0000000 --- a/rep/ept/core/apt.test.h.gcov.html +++ /dev/null @@ -1,162 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt.test.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - apt.test.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">60</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">60</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/config.h> -<span class="lineNum"> 3 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 4 </span> : #include <ept/core/list.h> -<span class="lineNum"> 5 </span> : #include <ept/test.h> -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : using namespace ept::core; -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span> : struct TestCoreApt : AptTestEnvironment -<span class="lineNum"> 10 </span><span class="lineCov"> 12 : {</span> -<span class="lineNum"> 11 </span> : package::Source pkgs; -<span class="lineNum"> 12 </span> : version::Source vers; -<span class="lineNum"> 13 </span> : ept::Token t; -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span><span class="lineCov"> 12 : TestCoreApt() : pkgs( db ), vers( db ) {</span> -<span class="lineNum"> 16 </span><span class="lineCov"> 12 : t._id = "sp";</span> -<span class="lineNum"> 17 </span><span class="lineCov"> 12 : }</span> -<span class="lineNum"> 18 </span> : -<span class="lineNum"> 19 </span><span class="lineCov"> 1 : Test token() {</span> -<span class="lineNum"> 20 </span><span class="lineCov"> 1 : assert_eq( t.package(), "sp" );</span> -<span class="lineNum"> 21 </span><span class="lineCov"> 2 : assert_eq( t.version(), "" );</span> -<span class="lineNum"> 22 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 23 </span> : -<span class="lineNum"> 24 </span><span class="lineCov"> 1 : Test tokenVersion() {</span> -<span class="lineNum"> 25 </span><span class="lineCov"> 1 : ept::Token t2;</span> -<span class="lineNum"> 26 </span><span class="lineCov"> 1 : t2._id = "libwibble-dev_0.1.10";</span> -<span class="lineNum"> 27 </span><span class="lineCov"> 1 : assert_eq( t2.package(), "libwibble-dev" );</span> -<span class="lineNum"> 28 </span><span class="lineCov"> 1 : assert_eq( t2.version(), "0.1.10" );</span> -<span class="lineNum"> 29 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 30 </span> : -<span class="lineNum"> 31 </span><span class="lineCov"> 1 : Test packageName() {</span> -<span class="lineNum"> 32 </span><span class="lineCov"> 1 : assert_eq( t.package(), pkgs.get< package::Name >( t ) );</span> -<span class="lineNum"> 33 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span> : template< typename List > -<span class="lineNum"> 36 </span><span class="lineCov"> 1 : void checkPackageNameList( List l ) {</span> -<span class="lineNum"> 37 </span><span class="lineCov"> 3779 : while ( !l.empty() ) {</span> -<span class="lineNum"> 38 </span><span class="lineCov"> 3777 : assert_eq( l.token().package(), l.property() );</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 3777 : l = l.tail();</span> -<span class="lineNum"> 40 </span> : } -<span class="lineNum"> 41 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 42 </span> : -<span class="lineNum"> 43 </span> : template< typename List > -<span class="lineNum"> 44 </span><span class="lineCov"> 1 : void checkVersionPackageList( List l ) {</span> -<span class="lineNum"> 45 </span><span class="lineCov"> 1810 : while ( !l.empty() ) {</span> -<span class="lineNum"> 46 </span><span class="lineCov"> 1808 : assert_eq( l.property().package(), l.token().package() );</span> -<span class="lineNum"> 47 </span><span class="lineCov"> 3616 : assert_eq( l.property().version(), "" );</span> -<span class="lineNum"> 48 </span><span class="lineCov"> 1808 : l = l.tail();</span> -<span class="lineNum"> 49 </span> : } -<span class="lineNum"> 50 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span><span class="lineCov"> 1 : Test packageCount() {</span> -<span class="lineNum"> 53 </span> : assert_eq( list::count( pkgs.list< package::Name >() ), -<span class="lineNum"> 54 </span><span class="lineCov"> 1 : 3777 );</span> -<span class="lineNum"> 55 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 56 </span> : -<span class="lineNum"> 57 </span><span class="lineCov"> 1 : Test packageNameList() {</span> -<span class="lineNum"> 58 </span><span class="lineCov"> 1 : checkPackageNameList( pkgs.list< package::Name >() );</span> -<span class="lineNum"> 59 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 60 </span> : -<span class="lineNum"> 61 </span><span class="lineCov"> 1 : Test versionCount() {</span> -<span class="lineNum"> 62 </span> : assert_eq( list::count( vers.list< version::Package >() ), -<span class="lineNum"> 63 </span><span class="lineCov"> 1 : 1808 );</span> -<span class="lineNum"> 64 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span><span class="lineCov"> 1 : Test versionPackage() {</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 1 : checkVersionPackageList( vers.list< version::Package >() );</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 69 </span> : -<span class="lineNum"> 70 </span><span class="lineCov"> 1 : Test validate() {</span> -<span class="lineNum"> 71 </span><span class="lineCov"> 1 : assert_eq( t, db.validate( t ) );</span> -<span class="lineNum"> 72 </span> : assert_neq( ept::Token( "libfoobar" ), -<span class="lineNum"> 73 </span><span class="lineCov"> 2 : db.validate( ept::Token( "libfooar" ) ) );</span> -<span class="lineNum"> 74 </span><span class="lineCov"> 2 : assert_eq( ept::Token(), db.validate( ept::Token( "libfoobar" ) ) );</span> -<span class="lineNum"> 75 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 76 </span> : -<span class="lineNum"> 77 </span><span class="lineCov"> 1 : Test packageState() {</span> -<span class="lineNum"> 78 </span><span class="lineCov"> 1 : assert( db.packageState( t ) & PackageState::Keep );</span> -<span class="lineNum"> 79 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span><span class="lineCov"> 1 : Test packageState2() {</span> -<span class="lineNum"> 82 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ) & PackageState::Keep );</span> -<span class="lineNum"> 83 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span><span class="lineCov"> 1 : Test exists() {</span> -<span class="lineNum"> 86 </span><span class="lineCov"> 1 : assert( pkgs.exists( t ) );</span> -<span class="lineNum"> 87 </span><span class="lineCov"> 2 : assert( !pkgs.exists( ept::Token( "nonexistent-package" ) ) );</span> -<span class="lineNum"> 88 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 89 </span> : -<span class="lineNum"> 90 </span><span class="lineCov"> 1 : Test invalidate() {</span> -<span class="lineNum"> 91 </span><span class="lineCov"> 1 : assert( pkgs.exists( t ) );</span> -<span class="lineNum"> 92 </span><span class="lineCov"> 1 : db.invalidate();</span> -<span class="lineNum"> 93 </span><span class="lineCov"> 2 : assert( pkgs.exists( t ) );</span> -<span class="lineNum"> 94 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 95 </span> : }; -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/action.h.gcov.html b/rep/ept/core/apt/action.h.gcov.html deleted file mode 100644 index 08b2810..0000000 --- a/rep/ept/core/apt/action.h.gcov.html +++ /dev/null @@ -1,202 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/action.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - action.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">48</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">85.4 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">41</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <string> -<span class="lineNum"> 4 </span> : #include <ept/token.h> -<span class="lineNum"> 5 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 6 </span> : #include <apt-pkg/algorithms.h> -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : #ifndef EPT_APT_ACTION_H -<span class="lineNum"> 9 </span> : #define EPT_APT_ACTION_H -<span class="lineNum"> 10 </span> : -<span class="lineNum"> 11 </span> : namespace ept { -<span class="lineNum"> 12 </span> : namespace core { -<span class="lineNum"> 13 </span> : namespace package { -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span><span class="lineCov"> 13 : struct Action {</span> -<span class="lineNum"> 16 </span> : enum Type { Install, ReInstall, Remove, Keep, Purge, SystemUpgrade }; -<span class="lineNum"> 17 </span> : Token m_token; -<span class="lineNum"> 18 </span> : Type m_type; -<span class="lineNum"> 19 </span> : -<span class="lineNum"> 20 </span><span class="lineCov"> 4 : Token token() { return m_token; }</span> -<span class="lineNum"> 21 </span> : Type type() { return m_type; } -<span class="lineNum"> 22 </span> : -<span class="lineNum"> 23 </span><span class="lineCov"> 4 : void apply( package::Source &pkgs )</span> -<span class="lineNum"> 24 </span> : { -<span class="lineNum"> 25 </span><span class="lineCov"> 4 : Type a = m_type;</span> -<span class="lineNum"> 26 </span><span class="lineCov"> 4 : pkgDepCache &dc = pkgs.db().state();</span> -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span><span class="lineCov"> 4 : if ( a == SystemUpgrade ) {</span> -<span class="lineNum"> 29 </span><span class="lineNoCov"> 0 : pkgDistUpgrade( dc );</span> -<span class="lineNum"> 30 </span> : } else { -<span class="lineNum"> 31 </span><span class="lineCov"> 4 : if ( !pkgs.exists( m_token ) )</span> -<span class="lineNum"> 32 </span><span class="lineNoCov"> 0 : return;</span> -<span class="lineNum"> 33 </span><span class="lineCov"> 4 : pkgCache::PkgIterator p = pkgs.lookupToken( m_token );</span> -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span><span class="lineCov"> 4 : pkgProblemResolver fix( &dc );</span> -<span class="lineNum"> 36 </span><span class="lineCov"> 8 : if ( a == Install || a == ReInstall ) {</span> -<span class="lineNum"> 37 </span><span class="lineCov"> 2 : fix.Clear( p );</span> -<span class="lineNum"> 38 </span><span class="lineCov"> 2 : fix.Protect( p );</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 2 : dc.MarkInstall( p, true );</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 2 : fix.InstallProtect();</span> -<span class="lineNum"> 41 </span><span class="lineCov"> 2 : if ( a == ReInstall )</span> -<span class="lineNum"> 42 </span><span class="lineNoCov"> 0 : dc.SetReInstall( p, true );</span> -<span class="lineNum"> 43 </span><span class="lineCov"> 2 : } else if ( a == Remove || a == Purge ) {</span> -<span class="lineNum"> 44 </span><span class="lineNoCov"> 0 : fix.Clear( p );</span> -<span class="lineNum"> 45 </span><span class="lineNoCov"> 0 : fix.Protect( p );</span> -<span class="lineNum"> 46 </span><span class="lineNoCov"> 0 : fix.Remove( p );</span> -<span class="lineNum"> 47 </span><span class="lineNoCov"> 0 : dc.MarkDelete( p, a == Purge ? true : false );</span> -<span class="lineNum"> 48 </span><span class="lineCov"> 2 : } else if ( a == Keep ) {</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 2 : fix.Clear( p );</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 2 : fix.Protect( p );</span> -<span class="lineNum"> 51 </span><span class="lineCov"> 2 : dc.MarkKeep( p, true );</span> -<span class="lineNum"> 52 </span> : } -<span class="lineNum"> 53 </span><span class="lineCov"> 4 : fix.Resolve( true );</span> -<span class="lineNum"> 54 </span> : } -<span class="lineNum"> 55 </span> : } -<span class="lineNum"> 56 </span> : -<span class="lineNum"> 57 </span> : bool redundant( package::Source &pkgs ) { -<span class="lineNum"> 58 </span> : if ( m_type == SystemUpgrade ) { -<span class="lineNum"> 59 </span> : // check whether we have any upgradable packages -<span class="lineNum"> 60 </span> : return false; -<span class="lineNum"> 61 </span> : } -<span class="lineNum"> 62 </span> : if ( !pkgs.exists( m_token ) ) -<span class="lineNum"> 63 </span> : return true; -<span class="lineNum"> 64 </span> : PackageState s = pkgs.db().packageState( m_token ); -<span class="lineNum"> 65 </span> : Type a = m_type; -<span class="lineNum"> 66 </span> : // if ( a == Keep && !s.upgradable() ) -<span class="lineNum"> 67 </span> : // return true; -<span class="lineNum"> 68 </span> : if ( ( a == Install || a == ReInstall ) -<span class="lineNum"> 69 </span> : && ( !s.upgradable() && s.installed() ) ) -<span class="lineNum"> 70 </span> : return true; -<span class="lineNum"> 71 </span> : if ( ( a == Remove || a == Purge ) && !s.installed() ) -<span class="lineNum"> 72 </span> : return true; -<span class="lineNum"> 73 </span> : return false; -<span class="lineNum"> 74 </span> : } -<span class="lineNum"> 75 </span> : -<span class="lineNum"> 76 </span><span class="lineCov"> 6 : Action( Token t, Type a )</span> -<span class="lineNum"> 77 </span><span class="lineCov"> 6 : : m_token( t ), m_type( a )</span> -<span class="lineNum"> 78 </span><span class="lineCov"> 6 : {}</span> -<span class="lineNum"> 79 </span> : }; -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span><span class="lineCov"> 2 : struct ActionList {</span> -<span class="lineNum"> 82 </span> : typedef std::vector< Action > List; -<span class="lineNum"> 83 </span> : List m_list; -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span> : void clear() { -<span class="lineNum"> 86 </span> : m_list.clear(); -<span class="lineNum"> 87 </span> : } -<span class="lineNum"> 88 </span> : -<span class="lineNum"> 89 </span><span class="lineCov"> 1 : bool empty() {</span> -<span class="lineNum"> 90 </span><span class="lineCov"> 1 : return m_list.empty();</span> -<span class="lineNum"> 91 </span> : } -<span class="lineNum"> 92 </span> : -<span class="lineNum"> 93 </span><span class="lineCov"> 3 : void add( Action a ) {</span> -<span class="lineNum"> 94 </span><span class="lineCov"> 3 : List::iterator rm = m_list.end(), i;</span> -<span class="lineNum"> 95 </span><span class="lineCov"> 3 : for ( i = m_list.begin(); i != m_list.end(); ++i ) {</span> -<span class="lineNum"> 96 </span><span class="lineCov"> 2 : if ( i->token() == a.token() ) {</span> -<span class="lineNum"> 97 </span><span class="lineCov"> 2 : rm = i;</span> -<span class="lineNum"> 98 </span><span class="lineCov"> 2 : break;</span> -<span class="lineNum"> 99 </span> : } -<span class="lineNum"> 100 </span> : } -<span class="lineNum"> 101 </span><span class="lineCov"> 3 : if ( rm != m_list.end() )</span> -<span class="lineNum"> 102 </span><span class="lineCov"> 2 : m_list.erase( rm );</span> -<span class="lineNum"> 103 </span> : // if ( a.type() != Action::Keep ) -<span class="lineNum"> 104 </span><span class="lineCov"> 3 : m_list.push_back( a );</span> -<span class="lineNum"> 105 </span><span class="lineCov"> 3 : }</span> -<span class="lineNum"> 106 </span> : -<span class="lineNum"> 107 </span> : Action latest() { -<span class="lineNum"> 108 </span> : return m_list.back(); -<span class="lineNum"> 109 </span> : } -<span class="lineNum"> 110 </span> : -<span class="lineNum"> 111 </span><span class="lineCov"> 1 : void replay( package::Source &pkgs ) {</span> -<span class="lineNum"> 112 </span><span class="lineCov"> 2 : for ( List::iterator i = m_list.begin(); i != m_list.end(); ++i ) {</span> -<span class="lineNum"> 113 </span><span class="lineCov"> 1 : i->apply( pkgs );</span> -<span class="lineNum"> 114 </span> : } -<span class="lineNum"> 115 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 116 </span> : -<span class="lineNum"> 117 </span> : void prune( package::Source &pkgs ) { -<span class="lineNum"> 118 </span> : List l; -<span class="lineNum"> 119 </span> : std::swap( l, m_list ); -<span class="lineNum"> 120 </span> : for ( List::iterator i = m_list.begin(); i != m_list.end(); ++i ) { -<span class="lineNum"> 121 </span> : if ( !i->redundant( pkgs ) ) -<span class="lineNum"> 122 </span> : m_list.push_back( *i ); -<span class="lineNum"> 123 </span> : } -<span class="lineNum"> 124 </span> : /* We want to do but can't bind reference parameters.... (or -<span class="lineNum"> 125 </span> : maybe use remove_copy_if or whatever ... ugly -<span class="lineNum"> 126 </span> : std::remove_if( m_list.begin(), m_list.end(), std::bind2nd( -<span class="lineNum"> 127 </span> : std::mem_fun_ref( &Action::redundant ), pkgs ) ); */ -<span class="lineNum"> 128 </span> : } -<span class="lineNum"> 129 </span> : }; -<span class="lineNum"> 130 </span> : -<span class="lineNum"> 131 </span> : } -<span class="lineNum"> 132 </span> : } -<span class="lineNum"> 133 </span> : } -<span class="lineNum"> 134 </span> : -<span class="lineNum"> 135 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/action.test.h.gcov.html b/rep/ept/core/apt/action.test.h.gcov.html deleted file mode 100644 index 86e5fcc..0000000 --- a/rep/ept/core/apt/action.test.h.gcov.html +++ /dev/null @@ -1,108 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/action.test.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - action.test.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">29</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">29</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/core/apt/action.h> -<span class="lineNum"> 3 </span> : #include <ept/test.h> -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : using namespace ept::core; -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : struct TestAptAction : AptTestEnvironment -<span class="lineNum"> 8 </span><span class="lineCov"> 3 : {</span> -<span class="lineNum"> 9 </span> : package::Source pkgs; -<span class="lineNum"> 10 </span><span class="lineCov"> 3 : TestAptAction() : pkgs( db ) {}</span> -<span class="lineNum"> 11 </span> : -<span class="lineNum"> 12 </span><span class="lineCov"> 1 : Test basic() {</span> -<span class="lineNum"> 13 </span><span class="lineCov"> 1 : ept::Token t( "sp" );</span> -<span class="lineNum"> 14 </span><span class="lineCov"> 2 : package::Action a( t, package::Action::Install );</span> -<span class="lineNum"> 15 </span><span class="lineCov"> 1 : a.apply( pkgs );</span> -<span class="lineNum"> 16 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ).install() );</span> -<span class="lineNum"> 17 </span><span class="lineCov"> 1 : a = package::Action( t, package::Action::Keep );</span> -<span class="lineNum"> 18 </span><span class="lineCov"> 1 : a.apply( pkgs );</span> -<span class="lineNum"> 19 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ).keep() );</span> -<span class="lineNum"> 20 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span><span class="lineCov"> 1 : Test revert() {</span> -<span class="lineNum"> 23 </span><span class="lineCov"> 1 : ept::Token t( "sp" );</span> -<span class="lineNum"> 24 </span><span class="lineCov"> 2 : package::Action a( t, package::Action::Install );</span> -<span class="lineNum"> 25 </span><span class="lineCov"> 1 : a.apply( pkgs );</span> -<span class="lineNum"> 26 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ).install() );</span> -<span class="lineNum"> 27 </span><span class="lineCov"> 1 : pkgs.revertStates();</span> -<span class="lineNum"> 28 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ).keep() );</span> -<span class="lineNum"> 29 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 30 </span> : -<span class="lineNum"> 31 </span><span class="lineCov"> 1 : Test keep() {</span> -<span class="lineNum"> 32 </span><span class="lineCov"> 1 : package::ActionList al;</span> -<span class="lineNum"> 33 </span><span class="lineCov"> 1 : ept::Token t( "sp" );</span> -<span class="lineNum"> 34 </span><span class="lineCov"> 2 : al.add( package::Action( t, package::Action::Install ) );</span> -<span class="lineNum"> 35 </span><span class="lineCov"> 1 : assert( !al.empty() );</span> -<span class="lineNum"> 36 </span><span class="lineCov"> 2 : al.add( package::Action( t, package::Action::Remove ) );</span> -<span class="lineNum"> 37 </span><span class="lineCov"> 1 : al.add( package::Action( t, package::Action::Keep ) );</span> -<span class="lineNum"> 38 </span><span class="lineCov"> 1 : al.replay( pkgs );</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 1 : assert( pkgs.get< package::State >( t ).keep() );</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 41 </span> : }; -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/index.html b/rep/ept/core/apt/index.html deleted file mode 100644 index ebae680..0000000 --- a/rep/ept/core/apt/index.html +++ /dev/null @@ -1,155 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - ept/core/apt</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">334</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">91.9 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">307</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <center> - <table width="80%" cellpadding=2 cellspacing=1 border=0> - - <tr> - <td width="50%"><br></td> - <td width="15%"></td> - <td width="15%"></td> - <td width="20%"></td> - </tr> - - <tr> - <td class="tableHead">Filename</td> - <td class="tableHead" colspan=3>Coverage</td> - </tr> - - <tr> - <td class="coverFile"><a href="action.h.gcov.html">action.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=85 height=10 alt="85.4%"><img src="../../../snow.png" width=15 height=10 alt="85.4%"></td></tr></table> - </td> - <td class="coverPerHi">85.4 %</td> - <td class="coverNumHi">41 / 48 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="action.test.h.gcov.html">action.test.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">29 / 29 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="package.h.gcov.html">package.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=94 height=10 alt="93.9%"><img src="../../../snow.png" width=6 height=10 alt="93.9%"></td></tr></table> - </td> - <td class="coverPerHi">93.9 %</td> - <td class="coverNumHi">31 / 33 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="record.cpp.gcov.html">record.cpp</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">1 / 1 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="record.h.gcov.html">record.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=86 height=10 alt="86.5%"><img src="../../../snow.png" width=14 height=10 alt="86.5%"></td></tr></table> - </td> - <td class="coverPerHi">86.5 %</td> - <td class="coverNumHi">83 / 96 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="record.test.h.gcov.html">record.test.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">29 / 29 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="recordparser.cpp.gcov.html">recordparser.cpp</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=95 height=10 alt="95.2%"><img src="../../../snow.png" width=5 height=10 alt="95.2%"></td></tr></table> - </td> - <td class="coverPerHi">95.2 %</td> - <td class="coverNumHi">59 / 62 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="recordparser.h.gcov.html">recordparser.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">4 / 4 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="version.h.gcov.html">version.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../../emerald.png" width=94 height=10 alt="93.8%"><img src="../../../snow.png" width=6 height=10 alt="93.8%"></td></tr></table> - </td> - <td class="coverPerHi">93.8 %</td> - <td class="coverNumHi">30 / 32 lines</td> - </tr> - - </table> - </center> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/package.h.gcov.html b/rep/ept/core/apt/package.h.gcov.html deleted file mode 100644 index deea250..0000000 --- a/rep/ept/core/apt/package.h.gcov.html +++ /dev/null @@ -1,194 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/package.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - package.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">33</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">93.9 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">31</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #ifndef EPT_APT_PACKAGE_H -<span class="lineNum"> 4 </span> : #define EPT_APT_PACKAGE_H -<span class="lineNum"> 5 </span> : -<span class="lineNum"> 6 </span> : namespace ept { -<span class="lineNum"> 7 </span> : namespace core { -<span class="lineNum"> 8 </span> : namespace package { -<span class="lineNum"> 9 </span> : -<span class="lineNum"> 10 </span> : struct Setup { -<span class="lineNum"> 11 </span> : typedef ept::Token Token; -<span class="lineNum"> 12 </span> : typedef package::Internal Internal; -<span class="lineNum"> 13 </span> : typedef package::PropertyId PropertyId; -<span class="lineNum"> 14 </span> : typedef package::InternalList InternalList; -<span class="lineNum"> 15 </span> : }; -<span class="lineNum"> 16 </span> : -<span class="lineNum"> 17 </span> : template<> struct PropertyType< Name > { typedef std::string T; }; -<span class="lineNum"> 18 </span> : template<> struct PropertyType< Versions > { typedef VersionList T; }; -<span class="lineNum"> 19 </span> : template<> struct PropertyType< AnyVersion > { typedef Token T; }; -<span class="lineNum"> 20 </span> : template<> struct PropertyType< State > { typedef PackageState T; }; -<span class="lineNum"> 21 </span> : template<> struct PropertyType< CandidateVersion > { typedef Token T; }; -<span class="lineNum"> 22 </span> : template<> struct PropertyType< InstalledVersion > { typedef Token T; }; -<span class="lineNum"> 23 </span> : -<span class="lineNum"> 24 </span> : struct Source : core::Source< Source, Setup, PropertyType > -<span class="lineNum"> 25 </span><span class="lineCov"> 15 : {</span> -<span class="lineNum"> 26 </span> : AptDatabase &m_db; -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span><span class="lineCov"> 15 : Source( AptDatabase &db ) : m_db( db ) {}</span> -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span><span class="lineCov"> 3 : InternalList listInternal() {</span> -<span class="lineNum"> 31 </span><span class="lineCov"> 3 : return InternalList( m_db.cache().PkgBegin() );</span> -<span class="lineNum"> 32 </span> : } -<span class="lineNum"> 33 </span> : -<span class="lineNum"> 34 </span><span class="lineCov"> 17 : Internal lookupToken( Token t ) {</span> -<span class="lineNum"> 35 </span><span class="lineCov"> 17 : return m_db.lookupPackage( t );</span> -<span class="lineNum"> 36 </span> : } -<span class="lineNum"> 37 </span> : -<span class="lineNum"> 38 </span><span class="lineCov"> 3777 : Token getToken( Internal i ) {</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 3777 : Token t;</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 3777 : t._id = i.Name();</span> -<span class="lineNum"> 41 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 42 </span> : } -<span class="lineNum"> 43 </span> : -<span class="lineNum"> 44 </span><span class="lineCov"> 8 : bool exists( Token t ) {</span> -<span class="lineNum"> 45 </span><span class="lineCov"> 8 : if ( t.hasVersion() )</span> -<span class="lineNum"> 46 </span><span class="lineNoCov"> 0 : return !m_db.lookupVersion( t ).end();</span> -<span class="lineNum"> 47 </span> : else -<span class="lineNum"> 48 </span><span class="lineCov"> 8 : return !lookupToken( t ).end();</span> -<span class="lineNum"> 49 </span> : } -<span class="lineNum"> 50 </span> : -<span class="lineNum"> 51 </span> : Token versionToken( pkgCache::VerIterator vi ) { -<span class="lineNum"> 52 </span> : if ( vi.end() ) -<span class="lineNum"> 53 </span> : return Token(); -<span class="lineNum"> 54 </span> : return Token( std::string( vi.ParentPkg().Name() ) + "_" + vi.VerStr() ); -<span class="lineNum"> 55 </span> : } -<span class="lineNum"> 56 </span> : -<span class="lineNum"> 57 </span> : template< PropertyId p > -<span class="lineNum"> 58 </span> : typename PropertyType< p >::T getInternal( Internal ); -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span> : template< typename List > -<span class="lineNum"> 61 </span><span class="lineCov"> 1 : void revertState( List l ) {</span> -<span class="lineNum"> 62 </span><span class="lineCov"> 3779 : while ( !l.empty() ) {</span> -<span class="lineNum"> 63 </span><span class="lineCov"> 3777 : PackageState s = getInternal< State >( l.head() );</span> -<span class="lineNum"> 64 </span><span class="lineCov"> 3777 : if ( !s.keep() || s.purge() ) {</span> -<span class="lineNum"> 65 </span><span class="lineCov"> 2 : pkgDepCache::StateCache &S = db().state()[ l.head() ];</span> -<span class="lineNum"> 66 </span><span class="lineCov"> 2 : db().state().MarkKeep( l.head(), false, false );</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 2 : S.iFlags &= ~pkgDepCache::Purge;</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 2 : S.iFlags &= ~pkgDepCache::ReInstall;</span> -<span class="lineNum"> 69 </span> : } -<span class="lineNum"> 70 </span><span class="lineCov"> 3777 : l = l.tail();</span> -<span class="lineNum"> 71 </span> : } -<span class="lineNum"> 72 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 73 </span> : -<span class="lineNum"> 74 </span><span class="lineCov"> 1 : void revertStates() {</span> -<span class="lineNum"> 75 </span><span class="lineCov"> 1 : pkgDepCache::ActionGroup group( db().state() );</span> -<span class="lineNum"> 76 </span><span class="lineCov"> 1 : revertState( listInternal() );</span> -<span class="lineNum"> 77 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 78 </span> : -<span class="lineNum"> 79 </span> : typedef ComposedList< State > ChangeList; -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span> : static bool isChanged( Token t, PackageState s ); -<span class="lineNum"> 82 </span> : static bool isUpgradable( Token t, PackageState s ); -<span class="lineNum"> 83 </span> : -<span class="lineNum"> 84 </span> : PropertyFilter< State, __typeof( &isChanged ) >::T changedList() { -<span class="lineNum"> 85 </span> : return propertyFilter< State >( isChanged ); -<span class="lineNum"> 86 </span> : } -<span class="lineNum"> 87 </span> : -<span class="lineNum"> 88 </span> : PropertyFilter< State, __typeof( &isUpgradable ) >::T upgradableList() { -<span class="lineNum"> 89 </span> : return propertyFilter< State >( isUpgradable ); -<span class="lineNum"> 90 </span> : } -<span class="lineNum"> 91 </span> : -<span class="lineNum"> 92 </span><span class="lineCov"> 9 : AptDatabase &db() { return m_db; }</span> -<span class="lineNum"> 93 </span> : }; -<span class="lineNum"> 94 </span> : -<span class="lineNum"> 95 </span><span class="lineCov"> 3778 : template<> inline std::string Source::getInternal< Name >( Internal i ) {</span> -<span class="lineNum"> 96 </span><span class="lineCov"> 3778 : return i.Name();</span> -<span class="lineNum"> 97 </span> : } -<span class="lineNum"> 98 </span> : -<span class="lineNum"> 99 </span><span class="lineCov"> 3783 : template<> inline PackageState Source::getInternal< State >( Internal i ) {</span> -<span class="lineNum"> 100 </span><span class="lineCov"> 3783 : return m_db.packageState( i );</span> -<span class="lineNum"> 101 </span> : } -<span class="lineNum"> 102 </span> : -<span class="lineNum"> 103 </span> : template<> inline Token Source::getInternal< CandidateVersion >( Internal i ) { -<span class="lineNum"> 104 </span> : return versionToken( m_db.candidateVersion( i ) ); -<span class="lineNum"> 105 </span> : } -<span class="lineNum"> 106 </span> : -<span class="lineNum"> 107 </span> : template<> inline Token Source::getInternal< AnyVersion >( Internal i ) { -<span class="lineNum"> 108 </span> : return versionToken( m_db.candidateVersion( i ) ); -<span class="lineNum"> 109 </span> : } -<span class="lineNum"> 110 </span> : -<span class="lineNum"> 111 </span> : template<> inline Token Source::getInternal< InstalledVersion >( Internal i ) { -<span class="lineNum"> 112 </span> : return versionToken( m_db.installedVersion( i ) ); -<span class="lineNum"> 113 </span> : } -<span class="lineNum"> 114 </span> : -<span class="lineNum"> 115 </span> : inline bool Source::isChanged( Token, PackageState s ) { -<span class="lineNum"> 116 </span> : return s.modify(); -<span class="lineNum"> 117 </span> : } -<span class="lineNum"> 118 </span> : -<span class="lineNum"> 119 </span> : inline bool Source::isUpgradable( Token, PackageState s ) { -<span class="lineNum"> 120 </span> : return s.upgradable(); -<span class="lineNum"> 121 </span> : } -<span class="lineNum"> 122 </span> : -<span class="lineNum"> 123 </span> : } -<span class="lineNum"> 124 </span> : } -<span class="lineNum"> 125 </span> : } -<span class="lineNum"> 126 </span> : -<span class="lineNum"> 127 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/record.cpp.gcov.html b/rep/ept/core/apt/record.cpp.gcov.html deleted file mode 100644 index 453b7a7..0000000 --- a/rep/ept/core/apt/record.cpp.gcov.html +++ /dev/null @@ -1,83 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/record.cpp</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.cpp</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">1</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">1</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : namespace ept { -<span class="lineNum"> 4 </span> : namespace core { -<span class="lineNum"> 5 </span> : namespace record { -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : // needs to be kept in sync with record::PropertyId, see apt.h -<span class="lineNum"> 8 </span> : const char *fields[] = { -<span class="lineNum"> 9 </span> : "", "Package", "Priority", "Section", "Installed-Size", -<span class="lineNum"> 10 </span> : "Maintainer", "Architecture", "Source", "Version", -<span class="lineNum"> 11 </span> : "Description", "", "", "Size" -<span class="lineNum"> 12 </span> : }; -<span class="lineNum"> 13 </span> : -<span class="lineNum"> 14 </span> : } -<span class="lineNum"> 15 </span> : } -<span class="lineNum"> 16 </span><span class="lineCov"> 3 : }</span> -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/record.h.gcov.html b/rep/ept/core/apt/record.h.gcov.html deleted file mode 100644 index 4e0e3a4..0000000 --- a/rep/ept/core/apt/record.h.gcov.html +++ /dev/null @@ -1,355 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/record.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">96</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">86.5 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">83</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <ept/core/apt/recordparser.h> -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : #ifndef EPT_APT_RECORD_H -<span class="lineNum"> 6 </span> : #define EPT_APT_RECORD_H -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : namespace ept { -<span class="lineNum"> 9 </span> : namespace core { -<span class="lineNum"> 10 </span> : namespace record { -<span class="lineNum"> 11 </span> : -<span class="lineNum"> 12 </span> : struct Source; -<span class="lineNum"> 13 </span> : -<span class="lineNum"> 14 </span> : struct InternalList { -<span class="lineNum"> 15 </span> : Source *m_source; -<span class="lineNum"> 16 </span> : size_t m_idx; -<span class="lineNum"> 17 </span> : -<span class="lineNum"> 18 </span> : Internal head(); -<span class="lineNum"> 19 </span> : const Internal head() const; -<span class="lineNum"> 20 </span> : bool empty() const; -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span><span class="lineCov"> 870 : InternalList tail() const {</span> -<span class="lineNum"> 23 </span><span class="lineCov"> 870 : InternalList t = *this;</span> -<span class="lineNum"> 24 </span><span class="lineCov"> 870 : ++ t.m_idx;</span> -<span class="lineNum"> 25 </span> : return t; -<span class="lineNum"> 26 </span> : } -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span><span class="lineCov"> 2 : InternalList( Source &s )</span> -<span class="lineNum"> 29 </span><span class="lineCov"> 2 : : m_source( &s ), m_idx( 0 )</span> -<span class="lineNum"> 30 </span><span class="lineCov"> 2 : {}</span> -<span class="lineNum"> 31 </span> : }; -<span class="lineNum"> 32 </span> : -<span class="lineNum"> 33 </span> : struct Setup { -<span class="lineNum"> 34 </span> : typedef ept::Token Token; -<span class="lineNum"> 35 </span> : typedef record::Internal Internal; -<span class="lineNum"> 36 </span> : typedef record::PropertyId PropertyId; -<span class="lineNum"> 37 </span> : typedef record::InternalList InternalList; -<span class="lineNum"> 38 </span> : }; -<span class="lineNum"> 39 </span> : -<span class="lineNum"> 40 </span> : template<> struct PropertyType< InstalledSize > { typedef int T; }; -<span class="lineNum"> 41 </span> : template<> struct PropertyType< PackageSize > { typedef int T; }; -<span class="lineNum"> 42 </span> : -<span class="lineNum"> 43 </span> : struct Parser: RecordParser -<span class="lineNum"> 44 </span><span class="lineCov"> 1310 : {</span> -<span class="lineNum"> 45 </span> : bool parseBool(bool& def, const std::string& str) const -<span class="lineNum"> 46 </span> : { -<span class="lineNum"> 47 </span> : // Believe it or not, this is what apt does to interpret bool fields -<span class="lineNum"> 48 </span> : if (str == "no" || str == "false" || str == "without" || -<span class="lineNum"> 49 </span> : str == "off" || str == "disable") -<span class="lineNum"> 50 </span> : return false; -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span> : if (str == "yes" || str == "true" || str == "with" || -<span class="lineNum"> 53 </span> : str == "on" || str == "enable") -<span class="lineNum"> 54 </span> : return true; -<span class="lineNum"> 55 </span> : -<span class="lineNum"> 56 </span> : return def; -<span class="lineNum"> 57 </span> : } -<span class="lineNum"> 58 </span> : -<span class="lineNum"> 59 </span> : public: -<span class="lineNum"> 60 </span> : Parser() : RecordParser() {} -<span class="lineNum"> 61 </span><span class="lineCov"> 1310 : Parser(const std::string& str) : RecordParser(str) {}</span> -<span class="lineNum"> 62 </span> : -<span class="lineNum"> 63 </span> : template< PropertyId p > -<span class="lineNum"> 64 </span> : typename PropertyType< p >::T parse( typename PropertyType< p >::T def, -<span class="lineNum"> 65 </span> : std::string data ); -<span class="lineNum"> 66 </span> : -<span class="lineNum"> 67 </span> : template< typename T > -<span class="lineNum"> 68 </span> : struct Default { -<span class="lineNum"> 69 </span> : static T def; -<span class="lineNum"> 70 </span> : }; -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span> : template< typename T > T parse( const T &def, -<span class="lineNum"> 73 </span> : const std::string &field ) const; -<span class="lineNum"> 74 </span> : -<span class="lineNum"> 75 </span> : template< PropertyId p > -<span class="lineNum"> 76 </span> : typename PropertyType< p >::T get( -<span class="lineNum"> 77 </span> : const typename PropertyType< p >::T &def -<span class="lineNum"> 78 </span><span class="lineCov"> 1308 : = Default< typename PropertyType< p >::T >::def ) const</span> -<span class="lineNum"> 79 </span> : { -<span class="lineNum"> 80 </span> : return parse< typename PropertyType< p >::T >( def, -<span class="lineNum"> 81 </span><span class="lineCov"> 1308 : lookup( fields[ p ] ) );</span> -<span class="lineNum"> 82 </span> : } -<span class="lineNum"> 83 </span> : -<span class="lineNum"> 84 </span> : }; -<span class="lineNum"> 85 </span> : -<span class="lineNum"> 86 </span><span class="lineCov"> 25 : template< typename T > T Parser::Default< T >::def = T();</span> -<span class="lineNum"> 87 </span> : -<span class="lineNum"> 88 </span> : template<> inline std::string Parser::get< ShortDescription >( -<span class="lineNum"> 89 </span><span class="lineCov"> 2 : const std::string& def ) const</span> -<span class="lineNum"> 90 </span> : { -<span class="lineNum"> 91 </span><span class="lineCov"> 2 : std::string str = lookup( fields[ Description ] );</span> -<span class="lineNum"> 92 </span><span class="lineCov"> 4 : if (str == std::string())</span> -<span class="lineNum"> 93 </span><span class="lineCov"> 1 : return def;</span> -<span class="lineNum"> 94 </span><span class="lineCov"> 1 : size_t pos = str.find("\n");</span> -<span class="lineNum"> 95 </span><span class="lineCov"> 1 : if (pos == std::string::npos)</span> -<span class="lineNum"> 96 </span><span class="lineNoCov"> 0 : return str;</span> -<span class="lineNum"> 97 </span> : else -<span class="lineNum"> 98 </span><span class="lineCov"> 1 : return str.substr(0, pos);</span> -<span class="lineNum"> 99 </span> : } -<span class="lineNum"> 100 </span> : -<span class="lineNum"> 101 </span> : template<> inline std::string Parser::get< LongDescription >( -<span class="lineNum"> 102 </span> : const std::string& def ) const -<span class="lineNum"> 103 </span> : { -<span class="lineNum"> 104 </span> : std::string str = lookup( fields[ Description ] ); -<span class="lineNum"> 105 </span> : if (str == std::string()) -<span class="lineNum"> 106 </span> : return def; -<span class="lineNum"> 107 </span> : size_t pos = str.find("\n"); -<span class="lineNum"> 108 </span> : if (pos == std::string::npos) -<span class="lineNum"> 109 </span> : return str; -<span class="lineNum"> 110 </span> : else -<span class="lineNum"> 111 </span> : { -<span class="lineNum"> 112 </span> : // Trim trailing spaces -<span class="lineNum"> 113 </span> : for (++pos; pos < str.size() && isspace(str[pos]); ++pos) -<span class="lineNum"> 114 </span> : ; -<span class="lineNum"> 115 </span> : return str.substr(pos); -<span class="lineNum"> 116 </span> : } -<span class="lineNum"> 117 </span> : } -<span class="lineNum"> 118 </span> : -<span class="lineNum"> 119 </span> : template<> inline std::string Parser::parse< std::string >( -<span class="lineNum"> 120 </span><span class="lineCov"> 1307 : const std::string& def, const std::string& str) const</span> -<span class="lineNum"> 121 </span> : { -<span class="lineNum"> 122 </span><span class="lineCov"> 1307 : if (str == std::string())</span> -<span class="lineNum"> 123 </span><span class="lineNoCov"> 0 : return def;</span> -<span class="lineNum"> 124 </span><span class="lineCov"> 1307 : return str;</span> -<span class="lineNum"> 125 </span> : } -<span class="lineNum"> 126 </span> : -<span class="lineNum"> 127 </span> : template<> inline int Parser::parse< int >( -<span class="lineNum"> 128 </span><span class="lineCov"> 1 : const int& def, const std::string& str) const</span> -<span class="lineNum"> 129 </span> : { -<span class="lineNum"> 130 </span><span class="lineCov"> 1 : if (str == string())</span> -<span class="lineNum"> 131 </span><span class="lineNoCov"> 0 : return def;</span> -<span class="lineNum"> 132 </span><span class="lineCov"> 1 : return (size_t)strtoul(str.c_str(), NULL, 10);</span> -<span class="lineNum"> 133 </span> : } -<span class="lineNum"> 134 </span> : -<span class="lineNum"> 135 </span> : struct Source : core::Source< Source, Setup, PropertyType > -<span class="lineNum"> 136 </span><span class="lineCov"> 6 : {</span> -<span class="lineNum"> 137 </span> : AptDatabase &m_db; -<span class="lineNum"> 138 </span> : -<span class="lineNum"> 139 </span> : /* caching */ -<span class="lineNum"> 140 </span> : pkgCache::PkgFileIterator lastFile; -<span class="lineNum"> 141 </span> : FileFd file; -<span class="lineNum"> 142 </span> : size_t lastOffset; -<span class="lineNum"> 143 </span> : -<span class="lineNum"> 144 </span> : /* in-order retrieval of records, for InternalList */ -<span class="lineNum"> 145 </span> : typedef vector< pkgCache::VerFile * > VfList; -<span class="lineNum"> 146 </span> : VfList m_vflist; -<span class="lineNum"> 147 </span> : -<span class="lineNum"> 148 </span><span class="lineCov"> 1742 : VfList &vfList() {</span> -<span class="lineNum"> 149 </span><span class="lineCov"> 1742 : if ( m_vflist.size() > 0 )</span> -<span class="lineNum"> 150 </span><span class="lineCov"> 1741 : return m_vflist;</span> -<span class="lineNum"> 151 </span> : -<span class="lineNum"> 152 </span><span class="lineCov"> 1 : m_vflist.reserve(m_db.cache().HeaderP->PackageCount + 1);</span> -<span class="lineNum"> 153 </span> : -<span class="lineNum"> 154 </span> : // Populate the vector of versions to print -<span class="lineNum"> 155 </span><span class="lineCov"> 3778 : for (pkgCache::PkgIterator pi = m_db.cache().PkgBegin(); !pi.end(); ++pi)</span> -<span class="lineNum"> 156 </span> : { -<span class="lineNum"> 157 </span><span class="lineCov"> 3777 : if (pi->VersionList == 0)</span> -<span class="lineNum"> 158 </span><span class="lineCov"> 1989 : continue;</span> -<span class="lineNum"> 159 </span> : -<span class="lineNum"> 160 </span><span class="lineCov"> 3596 : for( pkgCache::VerIterator vi = pi.VersionList(); !vi.end(); ++vi ) {</span> -<span class="lineNum"> 161 </span> : -<span class="lineNum"> 162 </span> : // Choose a valid file that contains the record for this version -<span class="lineNum"> 163 </span><span class="lineCov"> 1808 : pkgCache::VerFileIterator vfi = vi.FileList();</span> -<span class="lineNum"> 164 </span><span class="lineCov"> 3181 : for ( ; !vfi.end(); ++vfi )</span> -<span class="lineNum"> 165 </span><span class="lineCov"> 1808 : if ((vfi.File()->Flags & pkgCache::Flag::NotSource) == 0)</span> -<span class="lineNum"> 166 </span><span class="lineCov"> 435 : break;</span> -<span class="lineNum"> 167 </span> : -<span class="lineNum"> 168 </span><span class="lineCov"> 1808 : if ( !vfi.end() )</span> -<span class="lineNum"> 169 </span><span class="lineCov"> 435 : m_vflist.push_back( vfi );</span> -<span class="lineNum"> 170 </span> : } -<span class="lineNum"> 171 </span> : } -<span class="lineNum"> 172 </span> : -<span class="lineNum"> 173 </span><span class="lineCov"> 1 : sort(m_vflist.begin(), m_vflist.end(), localityCompare);</span> -<span class="lineNum"> 174 </span><span class="lineCov"> 1 : return m_vflist;</span> -<span class="lineNum"> 175 </span> : } -<span class="lineNum"> 176 </span> : -<span class="lineNum"> 177 </span><span class="lineCov"> 6 : Source( AptDatabase &db ) : m_db( db ) {}</span> -<span class="lineNum"> 178 </span> : -<span class="lineNum"> 179 </span><span class="lineCov"> 2 : InternalList listInternal() {</span> -<span class="lineNum"> 180 </span><span class="lineCov"> 2 : return InternalList( *this );</span> -<span class="lineNum"> 181 </span> : } -<span class="lineNum"> 182 </span> : -<span class="lineNum"> 183 </span><span class="lineCov"> 5 : Internal lookupToken( Token t ) {</span> -<span class="lineNum"> 184 </span><span class="lineCov"> 5 : return m_db.lookupVersionFile( m_db.lookupVersion( t ) );</span> -<span class="lineNum"> 185 </span> : } -<span class="lineNum"> 186 </span> : -<span class="lineNum"> 187 </span> : // Sort a version list by package file locality -<span class="lineNum"> 188 </span> : static bool localityCompare(const pkgCache::VerFile* a, -<span class="lineNum"> 189 </span><span class="lineCov"> 4371 : const pkgCache::VerFile* b)</span> -<span class="lineNum"> 190 </span> : { -<span class="lineNum"> 191 </span><span class="lineCov"> 4371 : if (a == 0 && b == 0)</span> -<span class="lineNum"> 192 </span><span class="lineNoCov"> 0 : return false;</span> -<span class="lineNum"> 193 </span><span class="lineCov"> 4371 : if (a == 0)</span> -<span class="lineNum"> 194 </span><span class="lineNoCov"> 0 : return true;</span> -<span class="lineNum"> 195 </span><span class="lineCov"> 4371 : if (b == 0)</span> -<span class="lineNum"> 196 </span><span class="lineNoCov"> 0 : return false;</span> -<span class="lineNum"> 197 </span> : -<span class="lineNum"> 198 </span><span class="lineCov"> 4371 : if (a->File == b->File)</span> -<span class="lineNum"> 199 </span><span class="lineCov"> 4371 : return a->Offset < b->Offset;</span> -<span class="lineNum"> 200 </span><span class="lineNoCov"> 0 : return a->File < b->File;</span> -<span class="lineNum"> 201 </span> : } -<span class="lineNum"> 202 </span> : -<span class="lineNum"> 203 </span> : void invalidate() { -<span class="lineNum"> 204 </span> : core::Source< Source, Setup, PropertyType >::invalidate(); -<span class="lineNum"> 205 </span> : lastFile = pkgCache::PkgFileIterator(); -<span class="lineNum"> 206 </span> : } -<span class="lineNum"> 207 </span> : -<span class="lineNum"> 208 </span><span class="lineCov"> 1311 : std::string getRecord( Internal vfi ) {</span> -<span class="lineNum"> 209 </span><span class="lineCov"> 1311 : if ( vfi.Cache() == 0 || vfi.end() )</span> -<span class="lineNum"> 210 </span><span class="lineCov"> 1 : return "";</span> -<span class="lineNum"> 211 </span> : -<span class="lineNum"> 212 </span><span class="lineCov"> 1310 : if ((lastFile.Cache() == 0)</span> -<span class="lineNum"> 213 </span> : || vfi->File + m_db.cache().PkgFileP != lastFile) -<span class="lineNum"> 214 </span> : { -<span class="lineNum"> 215 </span> : lastFile = pkgCache::PkgFileIterator( -<span class="lineNum"> 216 </span><span class="lineCov"> 5 : m_db.cache(), vfi->File + m_db.cache().PkgFileP);</span> -<span class="lineNum"> 217 </span><span class="lineCov"> 5 : if (!lastFile.IsOk())</span> -<span class="lineNum"> 218 </span> : throw wibble::exception::System( -<span class="lineNum"> 219 </span> : std::string("Reading the" -<span class="lineNum"> 220 </span> : " data record for a package from file ") -<span class="lineNum"> 221 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span> -<span class="lineNum"> 222 </span><span class="lineCov"> 5 : if (file.IsOpen())</span> -<span class="lineNum"> 223 </span><span class="lineNoCov"> 0 : file.Close();</span> -<span class="lineNum"> 224 </span><span class="lineCov"> 5 : if (!file.Open(lastFile.FileName(), FileFd::ReadOnly))</span> -<span class="lineNum"> 225 </span> : throw wibble::exception::System( std::string("Opening file ") -<span class="lineNum"> 226 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span> -<span class="lineNum"> 227 </span><span class="lineCov"> 5 : lastOffset = 0;</span> -<span class="lineNum"> 228 </span> : } -<span class="lineNum"> 229 </span> : -<span class="lineNum"> 230 </span> : // If we start near were we ended, avoid a seek -<span class="lineNum"> 231 </span> : // and enlarge the read a bit -<span class="lineNum"> 232 </span><span class="lineCov"> 1310 : size_t slack = vfi->Offset - lastOffset;</span> -<span class="lineNum"> 233 </span><span class="lineCov"> 1310 : if ( slack > 128 ) // mornfall: was 8, making it 128</span> -<span class="lineNum"> 234 </span> : { -<span class="lineNum"> 235 </span><span class="lineCov"> 871 : slack = 0;</span> -<span class="lineNum"> 236 </span><span class="lineCov"> 871 : if ( !file.Seek( vfi->Offset ) )</span> -<span class="lineNum"> 237 </span> : throw wibble::exception::System( -<span class="lineNum"> 238 </span> : std::string("Cannot seek to package record in file ") -<span class="lineNum"> 239 </span><span class="lineNoCov"> 0 : + lastFile.FileName() );</span> -<span class="lineNum"> 240 </span> : } -<span class="lineNum"> 241 </span> : -<span class="lineNum"> 242 </span><span class="lineCov"> 1310 : char buffer[vfi->Size + slack + 1];</span> -<span class="lineNum"> 243 </span><span class="lineCov"> 1310 : if (!file.Read(buffer, vfi->Size + slack))</span> -<span class="lineNum"> 244 </span> : throw wibble::exception::System( -<span class="lineNum"> 245 </span> : std::string("Cannot read package " -<span class="lineNum"> 246 </span><span class="lineNoCov"> 0 : "record in file ") + lastFile.FileName() );</span> -<span class="lineNum"> 247 </span> : -<span class="lineNum"> 248 </span><span class="lineCov"> 1310 : buffer[vfi->Size + slack] = '\0';</span> -<span class="lineNum"> 249 </span> : //cerr << "Data read (slack: " << slack << ")" << endl; -<span class="lineNum"> 250 </span> : -<span class="lineNum"> 251 </span><span class="lineCov"> 1310 : lastOffset = vfi->Offset + vfi->Size;</span> -<span class="lineNum"> 252 </span> : -<span class="lineNum"> 253 </span><span class="lineCov"> 1310 : return string(buffer+slack);</span> -<span class="lineNum"> 254 </span> : } -<span class="lineNum"> 255 </span> : -<span class="lineNum"> 256 </span><span class="lineCov"> 435 : Token getToken( Internal i ) {</span> -<span class="lineNum"> 257 </span><span class="lineCov"> 435 : Token t;</span> -<span class="lineNum"> 258 </span><span class="lineCov"> 435 : t._id = getInternal< Name >( i ) + "_" + getInternal< Version >( i );</span> -<span class="lineNum"> 259 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 260 </span> : } -<span class="lineNum"> 261 </span> : -<span class="lineNum"> 262 </span> : template< PropertyId p > -<span class="lineNum"> 263 </span><span class="lineCov"> 1310 : typename PropertyType< p >::T getInternal( Internal i ) {</span> -<span class="lineNum"> 264 </span><span class="lineCov"> 1310 : Parser rec( getRecord( i ) );</span> -<span class="lineNum"> 265 </span><span class="lineCov"> 1310 : return rec.get< p >();</span> -<span class="lineNum"> 266 </span> : } -<span class="lineNum"> 267 </span> : }; -<span class="lineNum"> 268 </span> : -<span class="lineNum"> 269 </span><span class="lineCov"> 1 : template<> inline std::string Source::getInternal< Record >( Internal i ) {</span> -<span class="lineNum"> 270 </span><span class="lineCov"> 1 : assert( !i.end() );</span> -<span class="lineNum"> 271 </span><span class="lineCov"> 1 : return getRecord( i );</span> -<span class="lineNum"> 272 </span> : } -<span class="lineNum"> 273 </span> : -<span class="lineNum"> 274 </span><span class="lineCov"> 870 : inline const Internal InternalList::head() const {</span> -<span class="lineNum"> 275 </span> : return pkgCache::VerFileIterator( m_source->m_db.cache(), -<span class="lineNum"> 276 </span><span class="lineCov"> 870 : m_source->vfList()[ m_idx ] );</span> -<span class="lineNum"> 277 </span> : } -<span class="lineNum"> 278 </span> : -<span class="lineNum"> 279 </span><span class="lineCov"> 872 : inline bool InternalList::empty() const {</span> -<span class="lineNum"> 280 </span><span class="lineCov"> 872 : return m_idx == m_source->vfList().size();</span> -<span class="lineNum"> 281 </span> : } -<span class="lineNum"> 282 </span> : -<span class="lineNum"> 283 </span> : -<span class="lineNum"> 284 </span> : } -<span class="lineNum"> 285 </span> : } -<span class="lineNum"> 286 </span> : } -<span class="lineNum"> 287 </span> : -<span class="lineNum"> 288 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/record.test.h.gcov.html b/rep/ept/core/apt/record.test.h.gcov.html deleted file mode 100644 index afee746..0000000 --- a/rep/ept/core/apt/record.test.h.gcov.html +++ /dev/null @@ -1,123 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/record.test.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - record.test.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">29</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">29</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : #include <ept/test.h> -<span class="lineNum"> 5 </span> : -<span class="lineNum"> 6 </span> : using namespace ept::core; -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : struct TestAptRecord : AptTestEnvironment -<span class="lineNum"> 9 </span><span class="lineCov"> 6 : {</span> -<span class="lineNum"> 10 </span> : record::Source recs; -<span class="lineNum"> 11 </span> : ept::Token t; -<span class="lineNum"> 12 </span> : -<span class="lineNum"> 13 </span><span class="lineCov"> 6 : TestAptRecord() : recs( db ) {</span> -<span class="lineNum"> 14 </span><span class="lineCov"> 6 : t._id = "sp";</span> -<span class="lineNum"> 15 </span><span class="lineCov"> 6 : }</span> -<span class="lineNum"> 16 </span> : -<span class="lineNum"> 17 </span><span class="lineCov"> 1 : Test checkLookup() {</span> -<span class="lineNum"> 18 </span><span class="lineCov"> 1 : recs.get< record::Record >( t );</span> -<span class="lineNum"> 19 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span><span class="lineCov"> 1 : Test checkLookupValue() {</span> -<span class="lineNum"> 22 </span><span class="lineCov"> 1 : assert_eq( recs.get< record::Name >( t ), t.package() );</span> -<span class="lineNum"> 23 </span> : assert_eq( recs.get< record::Maintainer >( t ), -<span class="lineNum"> 24 </span><span class="lineCov"> 2 : "Neil Roeth <neil@debian.org>" );</span> -<span class="lineNum"> 25 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span><span class="lineCov"> 1 : Test checkLookupNumeric() {</span> -<span class="lineNum"> 28 </span> : assert_eq( recs.get< record::InstalledSize >( t ), -<span class="lineNum"> 29 </span><span class="lineCov"> 1 : 600 );</span> -<span class="lineNum"> 30 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span><span class="lineCov"> 1 : Test checkShortDescription() {</span> -<span class="lineNum"> 33 </span> : assert_eq( recs.get< record::ShortDescription >( t ), -<span class="lineNum"> 34 </span><span class="lineCov"> 1 : "James Clark's SGML parsing tools" );</span> -<span class="lineNum"> 35 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span> : template< typename List > -<span class="lineNum"> 38 </span><span class="lineCov"> 1 : void checkRecordNameList( List l ) {</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 437 : while ( !l.empty() ) {</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 435 : assert_eq( l.property(), l.token().package() );</span> -<span class="lineNum"> 41 </span><span class="lineCov"> 435 : l = l.tail();</span> -<span class="lineNum"> 42 </span> : } -<span class="lineNum"> 43 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 44 </span> : -<span class="lineNum"> 45 </span><span class="lineCov"> 1 : Test checkList() {</span> -<span class="lineNum"> 46 </span> : // there are 435 valid records in the list file -<span class="lineNum"> 47 </span> : assert_eq( list::count( recs.list< -<span class="lineNum"> 48 </span><span class="lineCov"> 1 : record::Name >() ), 435 );</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 1 : checkRecordNameList( recs.list< record::Name >() );</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span><span class="lineCov"> 1 : Test nonexistent() {</span> -<span class="lineNum"> 53 </span> : assert_eq( recs.get< record::ShortDescription >( -<span class="lineNum"> 54 </span><span class="lineCov"> 1 : ept::Token( "nonexistent-package" ) ), "" );</span> -<span class="lineNum"> 55 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 56 </span> : }; -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/recordparser.cpp.gcov.html b/rep/ept/core/apt/recordparser.cpp.gcov.html deleted file mode 100644 index de47e25..0000000 --- a/rep/ept/core/apt/recordparser.cpp.gcov.html +++ /dev/null @@ -1,239 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/recordparser.cpp</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - recordparser.cpp</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">62</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">95.2 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">59</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : /** \file -<span class="lineNum"> 2 </span> : * Parser for APT records -<span class="lineNum"> 3 </span> : */ -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : /* -<span class="lineNum"> 6 </span> : * Copyright (C) 2007 Enrico Zini <enrico@enricozini.org> -<span class="lineNum"> 7 </span> : * -<span class="lineNum"> 8 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 9 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 10 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 11 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 12 </span> : * -<span class="lineNum"> 13 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 14 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 15 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 16 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 17 </span> : * -<span class="lineNum"> 18 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 19 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 20 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 21 </span> : */ -<span class="lineNum"> 22 </span> : -<span class="lineNum"> 23 </span> : #include <ept/core/apt/recordparser.h> -<span class="lineNum"> 24 </span> : -<span class="lineNum"> 25 </span> : #include <algorithm> -<span class="lineNum"> 26 </span> : #include <cctype> -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span> : //#include <iostream> -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span> : using namespace std; -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span> : namespace ept { -<span class="lineNum"> 33 </span> : namespace core { -<span class="lineNum"> 34 </span> : namespace record { -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : struct rpcompare -<span class="lineNum"> 37 </span> : { -<span class="lineNum"> 38 </span> : const RecordParser& rp; -<span class="lineNum"> 39 </span><span class="lineCov"> 1310 : rpcompare(const RecordParser& rp) : rp(rp) {}</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 89600 : bool operator()(size_t a, size_t b)</span> -<span class="lineNum"> 41 </span> : { -<span class="lineNum"> 42 </span><span class="lineCov"> 89600 : return rp.name(a) < rp.name(b);</span> -<span class="lineNum"> 43 </span> : } -<span class="lineNum"> 44 </span> : }; -<span class="lineNum"> 45 </span> : -<span class="lineNum"> 46 </span><span class="lineCov"> 1310 : void RecordParser::scan(const std::string& str)</span> -<span class="lineNum"> 47 </span> : { -<span class="lineNum"> 48 </span><span class="lineCov"> 1310 : buffer = str;</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 1310 : ends.clear();</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 1310 : sorted.clear();</span> -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span> : //cerr << "PARSE " << endl << buffer << "*****" << endl; -<span class="lineNum"> 53 </span> : -<span class="lineNum"> 54 </span> : // Scan the buffer, taking note of all ending offsets of the various fields -<span class="lineNum"> 55 </span><span class="lineCov"> 1310 : size_t pos = 0;</span> -<span class="lineNum"> 56 </span><span class="lineCov"> 1310 : size_t idx = 0;</span> -<span class="lineNum"> 57 </span><span class="lineCov"> 29815 : while (pos < buffer.size() - 1)</span> -<span class="lineNum"> 58 </span> : { -<span class="lineNum"> 59 </span> : //cerr << "PREPOS " << pos << " left: " << buffer.substr(pos, 10) << endl; -<span class="lineNum"> 60 </span><span class="lineCov"> 28505 : pos = buffer.find("\n", pos);</span> -<span class="lineNum"> 61 </span> : //cerr << "POSTPOS " << pos << " left: " << (pos == string::npos ? "NONE" : buffer.substr(pos, 10)) << endl; -<span class="lineNum"> 62 </span> : -<span class="lineNum"> 63 </span> : // The buffer does not end with a newline -<span class="lineNum"> 64 </span><span class="lineCov"> 28505 : if (pos == string::npos)</span> -<span class="lineNum"> 65 </span> : { -<span class="lineNum"> 66 </span> : //cerr << "ENDNOTEOL" << endl; -<span class="lineNum"> 67 </span><span class="lineCov"> 1 : pos = buffer.size();</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 1 : ends.push_back(pos);</span> -<span class="lineNum"> 69 </span><span class="lineCov"> 1 : sorted.push_back(idx++);</span> -<span class="lineNum"> 70 </span><span class="lineCov"> 1 : break;</span> -<span class="lineNum"> 71 </span> : } -<span class="lineNum"> 72 </span> : -<span class="lineNum"> 73 </span><span class="lineCov"> 28504 : ++pos;</span> -<span class="lineNum"> 74 </span> : //cerr << "POSTPOSINC " << pos << " left: " << buffer.substr(pos, 10) << endl; -<span class="lineNum"> 75 </span> : -<span class="lineNum"> 76 </span> : // The buffer ends with a newline -<span class="lineNum"> 77 </span><span class="lineCov"> 28504 : if (pos == buffer.size())</span> -<span class="lineNum"> 78 </span> : { -<span class="lineNum"> 79 </span> : //cerr << "ENDEOL" << endl; -<span class="lineNum"> 80 </span><span class="lineCov"> 1309 : ends.push_back(pos);</span> -<span class="lineNum"> 81 </span><span class="lineCov"> 1309 : sorted.push_back(idx++);</span> -<span class="lineNum"> 82 </span><span class="lineCov"> 1309 : break;</span> -<span class="lineNum"> 83 </span> : } -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span> : // Terminate parsing on double newlines -<span class="lineNum"> 86 </span><span class="lineCov"> 27195 : if (buffer[pos] == '\n')</span> -<span class="lineNum"> 87 </span> : { -<span class="lineNum"> 88 </span> : //cerr << "ENDDOUBLENL" << endl; -<span class="lineNum"> 89 </span><span class="lineNoCov"> 0 : ends.push_back(pos);</span> -<span class="lineNum"> 90 </span><span class="lineNoCov"> 0 : sorted.push_back(idx++);</span> -<span class="lineNum"> 91 </span><span class="lineNoCov"> 0 : break;</span> -<span class="lineNum"> 92 </span> : } -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span> : // Mark the end of the field if it's not a continuation line -<span class="lineNum"> 95 </span><span class="lineCov"> 27195 : if (!isspace(buffer[pos]))</span> -<span class="lineNum"> 96 </span> : { -<span class="lineNum"> 97 </span> : //cerr << "INNERFIELD" << endl; -<span class="lineNum"> 98 </span><span class="lineCov"> 17224 : ends.push_back(pos);</span> -<span class="lineNum"> 99 </span><span class="lineCov"> 17224 : sorted.push_back(idx++);</span> -<span class="lineNum"> 100 </span> : } //else -<span class="lineNum"> 101 </span> : //cerr << "CONTLINE" << endl; -<span class="lineNum"> 102 </span> : } -<span class="lineNum"> 103 </span> : -<span class="lineNum"> 104 </span> : // Sort the sorted array -<span class="lineNum"> 105 </span><span class="lineCov"> 1310 : sort(sorted.begin(), sorted.end(), rpcompare(*this));</span> -<span class="lineNum"> 106 </span> : -<span class="lineNum"> 107 </span> : //for (size_t i = 0; i < ends.size(); ++i) -<span class="lineNum"> 108 </span> : // cerr << ends[i] << "\t" << name(i) << "\t" << sorted[i] << "\t" << name(sorted[i]) << endl; -<span class="lineNum"> 109 </span><span class="lineCov"> 1310 : }</span> -<span class="lineNum"> 110 </span> : -<span class="lineNum"> 111 </span><span class="lineCov"> 187124 : std::string RecordParser::field(size_t idx) const</span> -<span class="lineNum"> 112 </span> : { -<span class="lineNum"> 113 </span><span class="lineCov"> 187124 : if (idx >= ends.size())</span> -<span class="lineNum"> 114 </span><span class="lineCov"> 1 : return string();</span> -<span class="lineNum"> 115 </span><span class="lineCov"> 187123 : if (idx == 0)</span> -<span class="lineNum"> 116 </span><span class="lineCov"> 16577 : return buffer.substr(0, ends[0]);</span> -<span class="lineNum"> 117 </span> : else -<span class="lineNum"> 118 </span><span class="lineCov"> 170546 : return buffer.substr(ends[idx-1], ends[idx]-ends[idx-1]);</span> -<span class="lineNum"> 119 </span> : } -<span class="lineNum"> 120 </span> : -<span class="lineNum"> 121 </span><span class="lineCov"> 185814 : std::string RecordParser::name(size_t idx) const</span> -<span class="lineNum"> 122 </span> : { -<span class="lineNum"> 123 </span><span class="lineCov"> 185814 : string res = field(idx);</span> -<span class="lineNum"> 124 </span><span class="lineCov"> 185814 : size_t pos = res.find(":");</span> -<span class="lineNum"> 125 </span><span class="lineCov"> 185814 : if (pos == string::npos)</span> -<span class="lineNum"> 126 </span><span class="lineCov"> 2 : return res;</span> -<span class="lineNum"> 127 </span><span class="lineCov"> 185812 : return res.substr(0, pos);</span> -<span class="lineNum"> 128 </span> : } -<span class="lineNum"> 129 </span> : -<span class="lineNum"> 130 </span><span class="lineCov"> 1310 : std::string RecordParser::lookup(size_t idx) const</span> -<span class="lineNum"> 131 </span> : { -<span class="lineNum"> 132 </span><span class="lineCov"> 1310 : string res = field(idx);</span> -<span class="lineNum"> 133 </span><span class="lineCov"> 1310 : size_t pos = res.find(":");</span> -<span class="lineNum"> 134 </span><span class="lineCov"> 1310 : if (pos == string::npos)</span> -<span class="lineNum"> 135 </span><span class="lineCov"> 1 : return res;</span> -<span class="lineNum"> 136 </span> : // Skip initial whitespace after the : -<span class="lineNum"> 137 </span><span class="lineCov"> 1309 : for (++pos; pos < res.size() && isspace(res[pos]); ++pos)</span> -<span class="lineNum"> 138 </span> : ; -<span class="lineNum"> 139 </span><span class="lineCov"> 1309 : res = res.substr(pos);</span> -<span class="lineNum"> 140 </span> : // Trim spaces at the end -<span class="lineNum"> 141 </span><span class="lineCov"> 3927 : while (!res.empty() && isspace(res[res.size() - 1]))</span> -<span class="lineNum"> 142 </span><span class="lineCov"> 1309 : res.resize(res.size() - 1);</span> -<span class="lineNum"> 143 </span><span class="lineCov"> 1309 : return res;</span> -<span class="lineNum"> 144 </span> : } -<span class="lineNum"> 145 </span> : -<span class="lineNum"> 146 </span><span class="lineCov"> 1310 : size_t RecordParser::index(const std::string& str) const</span> -<span class="lineNum"> 147 </span> : { -<span class="lineNum"> 148 </span> : int begin, end; -<span class="lineNum"> 149 </span> : -<span class="lineNum"> 150 </span> : /* Binary search */ -<span class="lineNum"> 151 </span><span class="lineCov"> 1310 : begin = -1, end = size();</span> -<span class="lineNum"> 152 </span><span class="lineCov"> 7924 : while (end - begin > 1)</span> -<span class="lineNum"> 153 </span> : { -<span class="lineNum"> 154 </span><span class="lineCov"> 5304 : int cur = (end + begin) / 2;</span> -<span class="lineNum"> 155 </span> : //cerr << "Test " << cur << " " << str << " < " << name(cur) << endl; -<span class="lineNum"> 156 </span><span class="lineCov"> 5304 : if (name(sorted[cur]) > str)</span> -<span class="lineNum"> 157 </span><span class="lineCov"> 1724 : end = cur;</span> -<span class="lineNum"> 158 </span> : else -<span class="lineNum"> 159 </span><span class="lineCov"> 3580 : begin = cur;</span> -<span class="lineNum"> 160 </span> : } -<span class="lineNum"> 161 </span> : -<span class="lineNum"> 162 </span><span class="lineCov"> 1310 : if (begin == -1 || name(sorted[begin]) != str)</span> -<span class="lineNum"> 163 </span><span class="lineCov"> 1 : return size();</span> -<span class="lineNum"> 164 </span> : else -<span class="lineNum"> 165 </span><span class="lineCov"> 1309 : return sorted[begin];</span> -<span class="lineNum"> 166 </span> : } -<span class="lineNum"> 167 </span> : -<span class="lineNum"> 168 </span> : } -<span class="lineNum"> 169 </span> : } -<span class="lineNum"> 170 </span> : } -<span class="lineNum"> 171 </span> : -<span class="lineNum"> 172 </span> : // vim:set ts=4 sw=4: -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/recordparser.h.gcov.html b/rep/ept/core/apt/recordparser.h.gcov.html deleted file mode 100644 index 13eb803..0000000 --- a/rep/ept/core/apt/recordparser.h.gcov.html +++ /dev/null @@ -1,165 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/recordparser.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - recordparser.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">4</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">4</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #ifndef EPT_CORE_APT_RECORDPARSER_H -<span class="lineNum"> 3 </span> : #define EPT_CORE_APT_RECORDPARSER_H -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : /** \file -<span class="lineNum"> 6 </span> : * Parser for APT records -<span class="lineNum"> 7 </span> : */ -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span> : /* -<span class="lineNum"> 10 </span> : * Copyright (C) 2007 Enrico Zini <enrico@enricozini.org> -<span class="lineNum"> 11 </span> : * -<span class="lineNum"> 12 </span> : * This library is free software; you can redistribute it and/or -<span class="lineNum"> 13 </span> : * modify it under the terms of the GNU Lesser General Public -<span class="lineNum"> 14 </span> : * License as published by the Free Software Foundation; either -<span class="lineNum"> 15 </span> : * version 2.1 of the License, or (at your option) any later version. -<span class="lineNum"> 16 </span> : * -<span class="lineNum"> 17 </span> : * This library is distributed in the hope that it will be useful, -<span class="lineNum"> 18 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 19 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -<span class="lineNum"> 20 </span> : * Lesser General Public License for more details. -<span class="lineNum"> 21 </span> : * -<span class="lineNum"> 22 </span> : * You should have received a copy of the GNU Lesser General Public -<span class="lineNum"> 23 </span> : * License along with this library; if not, write to the Free Software -<span class="lineNum"> 24 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 25 </span> : */ -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span> : #include <vector> -<span class="lineNum"> 28 </span> : #include <string> -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span> : namespace ept { -<span class="lineNum"> 31 </span> : namespace core { -<span class="lineNum"> 32 </span> : namespace record { -<span class="lineNum"> 33 </span> : -<span class="lineNum"> 34 </span> : /** -<span class="lineNum"> 35 </span> : * Access the fields of a package record contained inside a std::string. -<span class="lineNum"> 36 </span> : * -<span class="lineNum"> 37 </span> : * Implementation note: this implementation should take advantage of -<span class="lineNum"> 38 </span> : * std::string sharing buffer space among them. -<span class="lineNum"> 39 </span> : */ -<span class="lineNum"> 40 </span> : class RecordParser -<span class="lineNum"> 41 </span><span class="lineCov"> 1310 : {</span> -<span class="lineNum"> 42 </span> : /// Buffer containing the whole record -<span class="lineNum"> 43 </span> : std::string buffer; -<span class="lineNum"> 44 </span> : -<span class="lineNum"> 45 </span> : /// End offsets of the various fields in the record -<span class="lineNum"> 46 </span> : std::vector<size_t> ends; -<span class="lineNum"> 47 </span> : -<span class="lineNum"> 48 </span> : /// Indexes on the ends vector, sorted by field name -<span class="lineNum"> 49 </span> : std::vector<size_t> sorted; -<span class="lineNum"> 50 </span> : -<span class="lineNum"> 51 </span> : public: -<span class="lineNum"> 52 </span> : RecordParser() {} -<span class="lineNum"> 53 </span><span class="lineCov"> 1310 : RecordParser(const std::string& str) { scan(str); }</span> -<span class="lineNum"> 54 </span> : -<span class="lineNum"> 55 </span> : /// Index a new record -<span class="lineNum"> 56 </span> : void scan(const std::string& str); -<span class="lineNum"> 57 </span> : -<span class="lineNum"> 58 </span> : /** -<span class="lineNum"> 59 </span> : * Get the index of the field with the given name. -<span class="lineNum"> 60 </span> : * -<span class="lineNum"> 61 </span> : * size() is returned if not found -<span class="lineNum"> 62 </span> : */ -<span class="lineNum"> 63 </span> : size_t index(const std::string& str) const; -<span class="lineNum"> 64 </span> : -<span class="lineNum"> 65 </span> : /// Return the field by its index -<span class="lineNum"> 66 </span> : std::string field(size_t idx) const; -<span class="lineNum"> 67 </span> : -<span class="lineNum"> 68 </span> : /// Return the name of a field by its index -<span class="lineNum"> 69 </span> : std::string name(size_t idx) const; -<span class="lineNum"> 70 </span> : -<span class="lineNum"> 71 </span> : /// Return the content of a field by its index -<span class="lineNum"> 72 </span> : std::string lookup(size_t idx) const; -<span class="lineNum"> 73 </span> : -<span class="lineNum"> 74 </span> : /// Return the content of a field by its name -<span class="lineNum"> 75 </span><span class="lineCov"> 1310 : std::string lookup(const std::string& name) const { return lookup(index(name)); }</span> -<span class="lineNum"> 76 </span> : -<span class="lineNum"> 77 </span> : /// Return the content of a field by its index -<span class="lineNum"> 78 </span> : std::string operator[](size_t idx) const { return lookup(idx); } -<span class="lineNum"> 79 </span> : -<span class="lineNum"> 80 </span> : /// Return the content of a field by its name -<span class="lineNum"> 81 </span> : std::string operator[](const std::string& name) const { return lookup(name); } -<span class="lineNum"> 82 </span> : -<span class="lineNum"> 83 </span> : /// Return the entire record -<span class="lineNum"> 84 </span> : const std::string& record() const { return buffer; } -<span class="lineNum"> 85 </span> : -<span class="lineNum"> 86 </span> : /// Return the entire record -<span class="lineNum"> 87 </span> : std::string record() { return buffer; } -<span class="lineNum"> 88 </span> : -<span class="lineNum"> 89 </span> : /// Return the number of fields in the record -<span class="lineNum"> 90 </span><span class="lineCov"> 1311 : size_t size() const { return ends.size(); }</span> -<span class="lineNum"> 91 </span> : }; -<span class="lineNum"> 92 </span> : -<span class="lineNum"> 93 </span> : } -<span class="lineNum"> 94 </span> : } -<span class="lineNum"> 95 </span> : } -<span class="lineNum"> 96 </span> : -<span class="lineNum"> 97 </span> : // vim:set ts=4 sw=4: -<span class="lineNum"> 98 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/apt/version.h.gcov.html b/rep/ept/core/apt/version.h.gcov.html deleted file mode 100644 index b17fdfb..0000000 --- a/rep/ept/core/apt/version.h.gcov.html +++ /dev/null @@ -1,160 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/apt/version.h</title> - <link rel="stylesheet" type="text/css" href="../../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">ept/core/apt</a> - version.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">32</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">93.8 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">30</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #ifndef EPT_CORE_APT_VERSION_H -<span class="lineNum"> 3 </span> : #define EPT_CORE_APT_VERSION_H -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : namespace ept { -<span class="lineNum"> 6 </span> : namespace core { -<span class="lineNum"> 7 </span> : namespace version { -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span><span class="lineCov"> 3616 : struct InternalList {</span> -<span class="lineNum"> 10 </span> : package::Internal m_pkg; -<span class="lineNum"> 11 </span> : Internal m_ver; -<span class="lineNum"> 12 </span> : -<span class="lineNum"> 13 </span> : typedef Internal Type; -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span><span class="lineCov"> 3616 : InternalList tail() const {</span> -<span class="lineNum"> 16 </span><span class="lineCov"> 3616 : InternalList t = *this;</span> -<span class="lineNum"> 17 </span><span class="lineCov"> 3616 : t.m_ver ++;</span> -<span class="lineNum"> 18 </span><span class="lineCov"> 3616 : t.seek();</span> -<span class="lineNum"> 19 </span> : return t; -<span class="lineNum"> 20 </span> : } -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span><span class="lineCov"> 5424 : const Internal head() const {</span> -<span class="lineNum"> 23 </span><span class="lineCov"> 5424 : return m_ver;</span> -<span class="lineNum"> 24 </span> : } -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : Internal head() { -<span class="lineNum"> 27 </span> : return m_ver; -<span class="lineNum"> 28 </span> : } -<span class="lineNum"> 29 </span> : -<span class="lineNum"> 30 </span><span class="lineCov"> 3618 : bool empty() const {</span> -<span class="lineNum"> 31 </span><span class="lineCov"> 3618 : return m_pkg.end();</span> -<span class="lineNum"> 32 </span> : } -<span class="lineNum"> 33 </span> : -<span class="lineNum"> 34 </span><span class="lineCov"> 3618 : void seek()</span> -<span class="lineNum"> 35 </span> : { -<span class="lineNum"> 36 </span><span class="lineCov"> 14790 : while ( m_ver.end() && !m_pkg.end() ) {</span> -<span class="lineNum"> 37 </span><span class="lineCov"> 7554 : m_pkg ++;</span> -<span class="lineNum"> 38 </span><span class="lineCov"> 7554 : m_ver = m_pkg.VersionList();</span> -<span class="lineNum"> 39 </span> : } -<span class="lineNum"> 40 </span><span class="lineCov"> 3618 : }</span> -<span class="lineNum"> 41 </span> : -<span class="lineNum"> 42 </span><span class="lineCov"> 2 : InternalList( package::Internal i )</span> -<span class="lineNum"> 43 </span><span class="lineCov"> 2 : : m_pkg( i )</span> -<span class="lineNum"> 44 </span> : { -<span class="lineNum"> 45 </span><span class="lineCov"> 2 : m_ver = m_pkg.VersionList();</span> -<span class="lineNum"> 46 </span><span class="lineCov"> 2 : seek();</span> -<span class="lineNum"> 47 </span><span class="lineCov"> 2 : }</span> -<span class="lineNum"> 48 </span> : }; -<span class="lineNum"> 49 </span> : -<span class="lineNum"> 50 </span> : struct Setup { -<span class="lineNum"> 51 </span> : typedef ept::Token Token; -<span class="lineNum"> 52 </span> : typedef version::Internal Internal; -<span class="lineNum"> 53 </span> : typedef version::PropertyId PropertyId; -<span class="lineNum"> 54 </span> : typedef version::InternalList InternalList; -<span class="lineNum"> 55 </span> : }; -<span class="lineNum"> 56 </span> : -<span class="lineNum"> 57 </span> : struct Source : core::Source< Source, Setup, PropertyType > -<span class="lineNum"> 58 </span><span class="lineCov"> 12 : {</span> -<span class="lineNum"> 59 </span> : AptDatabase &m_db; -<span class="lineNum"> 60 </span><span class="lineCov"> 12 : Source( AptDatabase &db ) : m_db( db ) {}</span> -<span class="lineNum"> 61 </span> : -<span class="lineNum"> 62 </span><span class="lineCov"> 2 : InternalList listInternal() {</span> -<span class="lineNum"> 63 </span><span class="lineCov"> 2 : return InternalList( m_db.cache().PkgBegin() );</span> -<span class="lineNum"> 64 </span> : } -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span><span class="lineCov"> 1808 : Token getToken( Internal i ) {</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 1808 : Token t;</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 1808 : t._id = std::string( i.ParentPkg().Name() ) + "_" + i.VerStr();</span> -<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 70 </span> : } -<span class="lineNum"> 71 </span> : -<span class="lineNum"> 72 </span> : Internal lookupToken( Token t ) { -<span class="lineNum"> 73 </span> : return m_db.lookupVersion( t ); -<span class="lineNum"> 74 </span> : } -<span class="lineNum"> 75 </span> : -<span class="lineNum"> 76 </span> : template< PropertyId p > -<span class="lineNum"> 77 </span> : typename PropertyType< p >::T getInternal( Internal ); -<span class="lineNum"> 78 </span> : }; -<span class="lineNum"> 79 </span> : -<span class="lineNum"> 80 </span> : template<> struct PropertyType< Package > { typedef Token T; }; -<span class="lineNum"> 81 </span> : -<span class="lineNum"> 82 </span><span class="lineCov"> 3616 : template<> inline Token Source::getInternal< Package >( Internal i ) {</span> -<span class="lineNum"> 83 </span><span class="lineCov"> 3616 : assert( !i.end() );</span> -<span class="lineNum"> 84 </span><span class="lineCov"> 3616 : Token t;</span> -<span class="lineNum"> 85 </span><span class="lineCov"> 7232 : t._id = i.ParentPkg().Name();</span> -<span class="lineNum"> 86 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 87 </span> : } -<span class="lineNum"> 88 </span> : -<span class="lineNum"> 89 </span> : } -<span class="lineNum"> 90 </span> : } -<span class="lineNum"> 91 </span> : } -<span class="lineNum"> 92 </span> : -<span class="lineNum"> 93 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/desktop.h.gcov.html b/rep/ept/core/desktop.h.gcov.html deleted file mode 100644 index 27d0be3..0000000 --- a/rep/ept/core/desktop.h.gcov.html +++ /dev/null @@ -1,344 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/desktop.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - desktop.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">103</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">94.2 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">97</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : /// -*- C++ -*- (c) 2006, 2007 Petr Rockai <me@mornfall.net> -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <wibble/string.h> -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : #include <ept/token.h> -<span class="lineNum"> 6 </span> : #include <ept/core/desktopfile.h> -<span class="lineNum"> 7 </span> : #include <ept/core/source.h> -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span> : #include <set> -<span class="lineNum"> 10 </span> : #include <vector> -<span class="lineNum"> 11 </span> : #include <fstream> -<span class="lineNum"> 12 </span> : #include <sstream> -<span class="lineNum"> 13 </span> : #include <iterator> -<span class="lineNum"> 14 </span> : #include <functional> -<span class="lineNum"> 15 </span> : -<span class="lineNum"> 16 </span> : #include <dirent.h> -<span class="lineNum"> 17 </span> : -<span class="lineNum"> 18 </span> : #ifndef EPT_CORE_DESKTOP_H -<span class="lineNum"> 19 </span> : #define EPT_CORE_DESKTOP_H -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span> : namespace ept { -<span class="lineNum"> 22 </span> : namespace core { -<span class="lineNum"> 23 </span> : namespace desktop { -<span class="lineNum"> 24 </span> : -<span class="lineNum"> 25 </span> : typedef enum { Name, Group, ShortDescription, Package, Icon } PropertyId; -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span> : template< PropertyId > struct PropertyType {}; -<span class="lineNum"> 28 </span> : template<> struct PropertyType< Name > { typedef std::string T; }; -<span class="lineNum"> 29 </span> : template<> struct PropertyType< Group > { typedef std::string T; }; -<span class="lineNum"> 30 </span> : template<> struct PropertyType< ShortDescription > { typedef std::string T; }; -<span class="lineNum"> 31 </span> : template<> struct PropertyType< Package > { typedef ept::Token T; }; -<span class="lineNum"> 32 </span> : template<> struct PropertyType< Icon > { typedef std::string T; }; -<span class="lineNum"> 33 </span> : -<span class="lineNum"> 34 </span> : typedef std::set< std::string > Categories; -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span><span class="lineCov"> 64 : struct Category {</span> -<span class="lineNum"> 37 </span> : std::string name; -<span class="lineNum"> 38 </span><span class="lineCov"> 112 : operator std::string() const { return name; }</span> -<span class="lineNum"> 39 </span> : }; -<span class="lineNum"> 40 </span> : -<span class="lineNum"> 41 </span><span class="lineCov"> 80 : inline std::istream &operator >>( std::istream &i, Category &cat ) {</span> -<span class="lineNum"> 42 </span> : char c; -<span class="lineNum"> 43 </span><span class="lineCov"> 80 : cat.name = "";</span> -<span class="lineNum"> 44 </span><span class="lineCov"> 468 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 45 </span><span class="lineCov"> 356 : c = i.get();</span> -<span class="lineNum"> 46 </span><span class="lineCov"> 356 : if ( c == ';' ) return i;</span> -<span class="lineNum"> 47 </span><span class="lineCov"> 308 : cat.name += c;</span> -<span class="lineNum"> 48 </span> : } -<span class="lineNum"> 49 </span><span class="lineCov"> 32 : return i;</span> -<span class="lineNum"> 50 </span> : } -<span class="lineNum"> 51 </span> : -<span class="lineNum"> 52 </span><span class="lineCov"> 567 : struct Entry : wibble::mixin::Comparable< Entry > {</span> -<span class="lineNum"> 53 </span><span class="lineCov"> 18 : Entry() {}</span> -<span class="lineNum"> 54 </span> : Entry( std::string n, std::string g, -<span class="lineNum"> 55 </span> : std::string p, std::string d , std::string i ) -<span class="lineNum"> 56 </span> : : m_name( n ), -<span class="lineNum"> 57 </span> : m_package( p ), -<span class="lineNum"> 58 </span> : m_description( d ), -<span class="lineNum"> 59 </span> : m_icon( i ) -<span class="lineNum"> 60 </span> : { setCategories( g ); } -<span class="lineNum"> 61 </span> : -<span class="lineNum"> 62 </span><span class="lineCov"> 16 : void load( std::string file ) {</span> -<span class="lineNum"> 63 </span><span class="lineCov"> 16 : m_id = file;</span> -<span class="lineNum"> 64 </span><span class="lineCov"> 16 : std::ifstream i( file.c_str() );</span> -<span class="lineNum"> 65 </span><span class="lineCov"> 16 : if ( !i.is_open() )</span> -<span class="lineNum"> 66 </span><span class="lineNoCov"> 0 : return; // throw?</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 16 : desktop::File e;</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 16 : i >> e;</span> -<span class="lineNum"> 69 </span><span class="lineCov"> 16 : i.close();</span> -<span class="lineNum"> 70 </span><span class="lineCov"> 16 : desktop::File::Group &g = e.group( "Desktop Entry" );</span> -<span class="lineNum"> 71 </span><span class="lineCov"> 32 : m_name = g.entry( "Name" ).value;</span> -<span class="lineNum"> 72 </span><span class="lineCov"> 32 : m_description = g.entry( "Comment" ).value;</span> -<span class="lineNum"> 73 </span><span class="lineCov"> 32 : if ( m_description == "" )</span> -<span class="lineNum"> 74 </span><span class="lineCov"> 8 : m_description = g.entry( "GenericName" ).value;</span> -<span class="lineNum"> 75 </span><span class="lineCov"> 16 : m_package = g.entry( "X-AppInstall-Package" ).value;</span> -<span class="lineNum"> 76 </span> : // m_group = g.entry( "Categories" ).value; -<span class="lineNum"> 77 </span><span class="lineCov"> 32 : m_icon = g.entry( "Icon" ).value;</span> -<span class="lineNum"> 78 </span><span class="lineCov"> 32 : setCategories( g.entry( "Categories" ).value );</span> -<span class="lineNum"> 79 </span> : } -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span><span class="lineCov"> 16 : void setCategories( std::string s ) {</span> -<span class="lineNum"> 82 </span><span class="lineCov"> 16 : std::istringstream i( s );</span> -<span class="lineNum"> 83 </span><span class="lineCov"> 16 : m_categories.clear();</span> -<span class="lineNum"> 84 </span> : std::remove_copy_if( -<span class="lineNum"> 85 </span> : std::istream_iterator< Category >( i ), -<span class="lineNum"> 86 </span> : std::istream_iterator< Category >(), -<span class="lineNum"> 87 </span> : std::inserter( m_categories, m_categories.begin() ), -<span class="lineNum"> 88 </span><span class="lineCov"> 16 : std::bind1st( std::equal_to< std::string >(), "" ) );</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 16 : }</span> -<span class="lineNum"> 90 </span> : -<span class="lineNum"> 91 </span><span class="lineCov"> 16 : Categories categories() const { return m_categories; }</span> -<span class="lineNum"> 92 </span> : bool inCategory( std::string c ) const { -<span class="lineNum"> 93 </span> : return m_categories.find( c ) != m_categories.end(); -<span class="lineNum"> 94 </span> : } -<span class="lineNum"> 95 </span><span class="lineCov"> 34 : std::string id() const { return m_id; }</span> -<span class="lineNum"> 96 </span><span class="lineCov"> 6 : std::string name() const { return m_name; }</span> -<span class="lineNum"> 97 </span> : std::string package() const { return m_package; } -<span class="lineNum"> 98 </span> : std::string description() const { return m_description; } -<span class="lineNum"> 99 </span> : std::string icon() const { return m_icon; } -<span class="lineNum"> 100 </span> : bool operator< ( const Entry &o ) const { -<span class="lineNum"> 101 </span> : if ( m_name < o.m_name ) return true; -<span class="lineNum"> 102 </span> : if ( m_name == o.m_name ) -<span class="lineNum"> 103 </span> : if ( m_package < o.m_package ) return true; -<span class="lineNum"> 104 </span> : return false; -<span class="lineNum"> 105 </span> : } -<span class="lineNum"> 106 </span> : protected: -<span class="lineNum"> 107 </span> : std::string m_name, m_package, m_description, m_icon, m_id; -<span class="lineNum"> 108 </span> : bool m_supported, m_free; -<span class="lineNum"> 109 </span> : Categories m_categories; -<span class="lineNum"> 110 </span> : }; -<span class="lineNum"> 111 </span> : -<span class="lineNum"> 112 </span><span class="lineCov"> 450 : struct InternalList {</span> -<span class="lineNum"> 113 </span> : std::string dir; -<span class="lineNum"> 114 </span> : std::string current; -<span class="lineNum"> 115 </span> : mutable Entry entry; -<span class="lineNum"> 116 </span> : off_t offset; -<span class="lineNum"> 117 </span> : mutable bool loaded; -<span class="lineNum"> 118 </span> : -<span class="lineNum"> 119 </span><span class="lineCov"> 9 : InternalList() : dir( "" ), offset( -2 ), loaded( false ) {}</span> -<span class="lineNum"> 120 </span><span class="lineCov"> 4 : InternalList( std::string d ) : dir( d ), offset( -1 ), loaded( false )</span> -<span class="lineNum"> 121 </span> : { -<span class="lineNum"> 122 </span><span class="lineCov"> 4 : firstFile();</span> -<span class="lineNum"> 123 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 124 </span> : -<span class="lineNum"> 125 </span><span class="lineCov"> 56 : Entry head() const {</span> -<span class="lineNum"> 126 </span><span class="lineCov"> 56 : if (!loaded)</span> -<span class="lineNum"> 127 </span><span class="lineCov"> 16 : entry.load( current );</span> -<span class="lineNum"> 128 </span><span class="lineCov"> 56 : loaded = true;</span> -<span class="lineNum"> 129 </span><span class="lineCov"> 56 : return entry;</span> -<span class="lineNum"> 130 </span> : } -<span class="lineNum"> 131 </span> : -<span class="lineNum"> 132 </span><span class="lineCov"> 33 : bool empty() const {</span> -<span class="lineNum"> 133 </span><span class="lineCov"> 33 : return (offset == -2);</span> -<span class="lineNum"> 134 </span> : } -<span class="lineNum"> 135 </span> : -<span class="lineNum"> 136 </span><span class="lineCov"> 4 : void firstFile() {</span> -<span class="lineNum"> 137 </span><span class="lineCov"> 4 : offset = -1;</span> -<span class="lineNum"> 138 </span><span class="lineCov"> 4 : nextFile();</span> -<span class="lineNum"> 139 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 140 </span> : -<span class="lineNum"> 141 </span><span class="lineCov"> 16 : InternalList tail() const {</span> -<span class="lineNum"> 142 </span><span class="lineCov"> 16 : InternalList r = *this;</span> -<span class="lineNum"> 143 </span><span class="lineCov"> 16 : r.nextFile();</span> -<span class="lineNum"> 144 </span><span class="lineNoCov"> 0 : return r;</span> -<span class="lineNum"> 145 </span> : } -<span class="lineNum"> 146 </span> : -<span class="lineNum"> 147 </span><span class="lineCov"> 20 : void nextFile() {</span> -<span class="lineNum"> 148 </span><span class="lineCov"> 20 : loaded = false;</span> -<span class="lineNum"> 149 </span><span class="lineCov"> 20 : DIR *d = opendir( dir.c_str() );</span> -<span class="lineNum"> 150 </span><span class="lineCov"> 20 : if ( !d ) {</span> -<span class="lineNum"> 151 </span><span class="lineNoCov"> 0 : offset = -2;</span> -<span class="lineNum"> 152 </span><span class="lineNoCov"> 0 : closedir( d );</span> -<span class="lineNum"> 153 </span><span class="lineNoCov"> 0 : return;</span> -<span class="lineNum"> 154 </span> : } -<span class="lineNum"> 155 </span> : -<span class="lineNum"> 156 </span><span class="lineCov"> 20 : if ( offset != -1 )</span> -<span class="lineNum"> 157 </span><span class="lineCov"> 16 : seekdir( d, offset );</span> -<span class="lineNum"> 158 </span> : -<span class="lineNum"> 159 </span><span class="lineCov"> 20 : dirent *ent = 0;</span> -<span class="lineNum"> 160 </span><span class="lineCov"> 48 : while ( ( ent = readdir( d ) ) != 0 ) {</span> -<span class="lineNum"> 161 </span><span class="lineCov"> 24 : std::string name( ent->d_name );</span> -<span class="lineNum"> 162 </span><span class="lineCov"> 48 : if ( name == "." || name == ".." )</span> -<span class="lineNum"> 163 </span><span class="lineCov"> 8 : continue;</span> -<span class="lineNum"> 164 </span><span class="lineCov"> 16 : if ( !wibble::str::endsWith( name, ".desktop" ) )</span> -<span class="lineNum"> 165 </span> : continue; -<span class="lineNum"> 166 </span><span class="lineCov"> 16 : current = dir + "/" + name;</span> -<span class="lineNum"> 167 </span><span class="lineCov"> 16 : offset = telldir( d );</span> -<span class="lineNum"> 168 </span><span class="lineCov"> 16 : closedir( d );</span> -<span class="lineNum"> 169 </span><span class="lineCov"> 16 : return;</span> -<span class="lineNum"> 170 </span> : } -<span class="lineNum"> 171 </span><span class="lineCov"> 4 : closedir( d );</span> -<span class="lineNum"> 172 </span><span class="lineCov"> 4 : offset = -2;</span> -<span class="lineNum"> 173 </span> : } -<span class="lineNum"> 174 </span> : }; -<span class="lineNum"> 175 </span> : -<span class="lineNum"> 176 </span> : struct Setup { -<span class="lineNum"> 177 </span> : typedef ept::Token Token; -<span class="lineNum"> 178 </span> : typedef Entry Internal; -<span class="lineNum"> 179 </span> : typedef desktop::PropertyId PropertyId; -<span class="lineNum"> 180 </span> : typedef desktop::InternalList InternalList; -<span class="lineNum"> 181 </span> : }; -<span class="lineNum"> 182 </span> : -<span class="lineNum"> 183 </span><span class="lineCov"> 5 : struct GroupPolicy {</span> -<span class="lineNum"> 184 </span><span class="lineCov"> 16 : virtual std::string group( const Entry &e )</span> -<span class="lineNum"> 185 </span> : { -<span class="lineNum"> 186 </span><span class="lineCov"> 16 : return wibble::str::fmt( e.categories() );</span> -<span class="lineNum"> 187 </span> : } -<span class="lineNum"> 188 </span><span class="lineCov"> 5 : virtual ~GroupPolicy() {}</span> -<span class="lineNum"> 189 </span> : }; -<span class="lineNum"> 190 </span> : -<span class="lineNum"> 191 </span> : struct Source : core::Source< Source, Setup, PropertyType > -<span class="lineNum"> 192 </span><span class="lineCov"> 5 : {</span> -<span class="lineNum"> 193 </span> : std::string m_dir; -<span class="lineNum"> 194 </span> : -<span class="lineNum"> 195 </span> : GroupPolicy m_defaultPolicy; -<span class="lineNum"> 196 </span> : GroupPolicy *m_policy; -<span class="lineNum"> 197 </span> : -<span class="lineNum"> 198 </span><span class="lineCov"> 5 : Source( std::string dir ) : m_dir( dir ),</span> -<span class="lineNum"> 199 </span><span class="lineCov"> 5 : m_policy( &m_defaultPolicy ) {}</span> -<span class="lineNum"> 200 </span> : -<span class="lineNum"> 201 </span><span class="lineCov"> 4 : InternalList listInternal() {</span> -<span class="lineNum"> 202 </span><span class="lineCov"> 4 : return InternalList( m_dir );</span> -<span class="lineNum"> 203 </span> : } -<span class="lineNum"> 204 </span> : -<span class="lineNum"> 205 </span><span class="lineCov"> 34 : Token getToken( Entry i ) {</span> -<span class="lineNum"> 206 </span><span class="lineCov"> 34 : Token t;</span> -<span class="lineNum"> 207 </span><span class="lineCov"> 34 : t._id = std::string( "desktop:" ) + i.id();</span> -<span class="lineNum"> 208 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 209 </span> : } -<span class="lineNum"> 210 </span> : -<span class="lineNum"> 211 </span> : Entry lookupToken( Token t ) { -<span class="lineNum"> 212 </span> : Entry e; -<span class="lineNum"> 213 </span> : e.load( t.desktop() ); -<span class="lineNum"> 214 </span> : return e; -<span class="lineNum"> 215 </span> : } -<span class="lineNum"> 216 </span> : -<span class="lineNum"> 217 </span> : void setGroupPolicy( GroupPolicy *p ) { -<span class="lineNum"> 218 </span> : m_policy = p; -<span class="lineNum"> 219 </span> : } -<span class="lineNum"> 220 </span> : -<span class="lineNum"> 221 </span> : template< PropertyId p > -<span class="lineNum"> 222 </span> : typename PropertyType< p >::T getInternal( Entry ); -<span class="lineNum"> 223 </span> : -<span class="lineNum"> 224 </span><span class="lineCov"> 56 : struct IsInGroup {</span> -<span class="lineNum"> 225 </span> : std::string g; -<span class="lineNum"> 226 </span><span class="lineCov"> 2 : IsInGroup( std::string _g = "" ) : g( _g ) {}</span> -<span class="lineNum"> 227 </span><span class="lineCov"> 8 : bool operator()( Token, std::string gr ) const {</span> -<span class="lineNum"> 228 </span><span class="lineCov"> 8 : return gr == g;</span> -<span class="lineNum"> 229 </span> : } -<span class="lineNum"> 230 </span> : }; -<span class="lineNum"> 231 </span> : -<span class="lineNum"> 232 </span><span class="lineCov"> 1 : PropertyFilter< Group, IsInGroup >::T group( std::string id )</span> -<span class="lineNum"> 233 </span> : { -<span class="lineNum"> 234 </span><span class="lineCov"> 1 : return propertyFilter< Group >( IsInGroup( id ) );</span> -<span class="lineNum"> 235 </span> : } -<span class="lineNum"> 236 </span> : -<span class="lineNum"> 237 </span><span class="lineCov"> 4 : static std::string projectGroup( ComposedList< Name > t ) {</span> -<span class="lineNum"> 238 </span><span class="lineCov"> 4 : return t.get< Group >();</span> -<span class="lineNum"> 239 </span> : } -<span class="lineNum"> 240 </span> : -<span class="lineNum"> 241 </span> : list::Unique< list::Sorted< -<span class="lineNum"> 242 </span> : list::Map< ComposedList< Name >, -<span class="lineNum"> 243 </span> : __typeof( std::ptr_fun( &projectGroup ) ) > > > -<span class="lineNum"> 244 </span><span class="lineCov"> 1 : groupList() {</span> -<span class="lineNum"> 245 </span> : return list::unique( -<span class="lineNum"> 246 </span> : list::sort( list::map( list< Name >(), -<span class="lineNum"> 247 </span><span class="lineCov"> 1 : std::ptr_fun( &projectGroup ) ) ) );</span> -<span class="lineNum"> 248 </span> : } -<span class="lineNum"> 249 </span> : }; -<span class="lineNum"> 250 </span> : -<span class="lineNum"> 251 </span><span class="lineCov"> 6 : template<> inline std::string Source::getInternal< Name >( Entry e ) {</span> -<span class="lineNum"> 252 </span><span class="lineCov"> 6 : return e.name();</span> -<span class="lineNum"> 253 </span> : } -<span class="lineNum"> 254 </span> : -<span class="lineNum"> 255 </span> : template<> inline std::string Source::getInternal< Icon >( Entry e ) { -<span class="lineNum"> 256 </span> : return e.icon(); -<span class="lineNum"> 257 </span> : } -<span class="lineNum"> 258 </span> : -<span class="lineNum"> 259 </span> : template<> inline ept::Token Source::getInternal< Package >( Entry e ) { -<span class="lineNum"> 260 </span> : ept::Token t; -<span class="lineNum"> 261 </span> : t._id = e.package(); -<span class="lineNum"> 262 </span> : return t; -<span class="lineNum"> 263 </span> : } -<span class="lineNum"> 264 </span> : -<span class="lineNum"> 265 </span><span class="lineCov"> 16 : template<> inline std::string Source::getInternal< Group >( Entry e ) {</span> -<span class="lineNum"> 266 </span><span class="lineCov"> 16 : return m_policy->group( e );</span> -<span class="lineNum"> 267 </span> : } -<span class="lineNum"> 268 </span> : -<span class="lineNum"> 269 </span> : template<> inline std::string Source::getInternal< ShortDescription >( Entry e ) { -<span class="lineNum"> 270 </span> : return e.description(); -<span class="lineNum"> 271 </span> : } -<span class="lineNum"> 272 </span> : -<span class="lineNum"> 273 </span> : } -<span class="lineNum"> 274 </span> : } -<span class="lineNum"> 275 </span> : } -<span class="lineNum"> 276 </span> : -<span class="lineNum"> 277 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/desktop.test.h.gcov.html b/rep/ept/core/desktop.test.h.gcov.html deleted file mode 100644 index 0d08106..0000000 --- a/rep/ept/core/desktop.test.h.gcov.html +++ /dev/null @@ -1,135 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/desktop.test.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - desktop.test.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">33</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">33</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/config.h> -<span class="lineNum"> 3 </span> : #include <ept/core/desktop.h> -<span class="lineNum"> 4 </span> : #include <ept/core/list.h> -<span class="lineNum"> 5 </span> : #include <ept/test.h> -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : using namespace ept::core; -<span class="lineNum"> 8 </span> : -<span class="lineNum"> 9 </span><span class="lineCov"> 5 : struct TestDesktop {</span> -<span class="lineNum"> 10 </span> : desktop::Source desk; -<span class="lineNum"> 11 </span> : ept::Token t; -<span class="lineNum"> 12 </span> : -<span class="lineNum"> 13 </span><span class="lineCov"> 5 : TestDesktop() : desk( TEST_ENV_DIR "desktop" ) {}</span> -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span> : template< desktop::PropertyId P, typename L > -<span class="lineNum"> 16 </span><span class="lineCov"> 3 : void checkIteration2( int c, const char **check, L l ) {</span> -<span class="lineNum"> 17 </span><span class="lineCov"> 3 : int i = 0;</span> -<span class="lineNum"> 18 </span><span class="lineCov"> 16 : while ( !l.empty() ) {</span> -<span class="lineNum"> 19 </span><span class="lineCov"> 10 : assert_eq( l.head().template get< P >(), check[ i ] );</span> -<span class="lineNum"> 20 </span><span class="lineCov"> 20 : l = l.tail();</span> -<span class="lineNum"> 21 </span><span class="lineCov"> 10 : ++ i;</span> -<span class="lineNum"> 22 </span> : } -<span class="lineNum"> 23 </span><span class="lineCov"> 3 : assert_eq( i, c );</span> -<span class="lineNum"> 24 </span><span class="lineCov"> 3 : }</span> -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : template< desktop::PropertyId P, typename L > -<span class="lineNum"> 27 </span><span class="lineCov"> 3 : void checkIteration( int c, const char **check, L l ) {</span> -<span class="lineNum"> 28 </span><span class="lineCov"> 3 : checkIteration2< P >( c, check, list::sort( l ) );</span> -<span class="lineNum"> 29 </span><span class="lineCov"> 3 : }</span> -<span class="lineNum"> 30 </span> : -<span class="lineNum"> 31 </span><span class="lineCov"> 1 : Test iteration() {</span> -<span class="lineNum"> 32 </span><span class="lineCov"> 1 : const char *check[] = { "Kdict", "foo", "XQF", "X-Server" };</span> -<span class="lineNum"> 33 </span> : checkIteration< desktop::Name >( -<span class="lineNum"> 34 </span><span class="lineCov"> 1 : 4, check, desk.list< desktop::Name >() );</span> -<span class="lineNum"> 35 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span><span class="lineCov"> 1 : Test groupProperty() {</span> -<span class="lineNum"> 38 </span> : const char *check[] = { -<span class="lineNum"> 39 </span> : "{ KDE, Qt, Utility }", -<span class="lineNum"> 40 </span> : "{ KDE, Qt, Utility }", -<span class="lineNum"> 41 </span> : "{ Application, Game, X-SuSE-Core-Game }", -<span class="lineNum"> 42 </span> : "{ KDE, Qt, X-KDE-information }", -<span class="lineNum"> 43 </span><span class="lineCov"> 1 : };</span> -<span class="lineNum"> 44 </span> : checkIteration< desktop::Group >( -<span class="lineNum"> 45 </span><span class="lineCov"> 1 : 4, check, desk.list< desktop::Name >() );</span> -<span class="lineNum"> 46 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 47 </span> : -<span class="lineNum"> 48 </span><span class="lineCov"> 1 : Test groups() {</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 1 : const char *check[] = { "Kdict", "foo" };</span> -<span class="lineNum"> 50 </span> : checkIteration< desktop::Name >( -<span class="lineNum"> 51 </span><span class="lineCov"> 1 : 2, check, desk.group( "{ KDE, Qt, Utility }" ) );</span> -<span class="lineNum"> 52 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 53 </span> : -<span class="lineNum"> 54 </span><span class="lineCov"> 1 : Test groupList() {</span> -<span class="lineNum"> 55 </span> : std::string check[] = { -<span class="lineNum"> 56 </span> : "{ Application, Game, X-SuSE-Core-Game }", -<span class="lineNum"> 57 </span> : "{ KDE, Qt, Utility }", -<span class="lineNum"> 58 </span> : "{ KDE, Qt, X-KDE-information }", -<span class="lineNum"> 59 </span><span class="lineCov"> 1 : };</span> -<span class="lineNum"> 60 </span> : -<span class="lineNum"> 61 </span><span class="lineCov"> 2 : assert_list_eq( desk.groupList(), check );</span> -<span class="lineNum"> 62 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 63 </span> : -<span class="lineNum"> 64 </span><span class="lineCov"> 1 : Test emptyGroupList() {</span> -<span class="lineNum"> 65 </span><span class="lineCov"> 1 : desktop::InternalList l;</span> -<span class="lineNum"> 66 </span><span class="lineCov"> 1 : assert( l.empty() );</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 68 </span> : }; -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/desktopfile.h.gcov.html b/rep/ept/core/desktopfile.h.gcov.html deleted file mode 100644 index 9ed8552..0000000 --- a/rep/ept/core/desktopfile.h.gcov.html +++ /dev/null @@ -1,205 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/desktopfile.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - desktopfile.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">77</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">75.3 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">58</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : /// -*- C++ -*- (c) 2006, 2007 Petr Rockai <me@mornfall.net> -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <iostream> -<span class="lineNum"> 4 </span> : #include <string> -<span class="lineNum"> 5 </span> : #include <map> -<span class="lineNum"> 6 </span> : -<span class="lineNum"> 7 </span> : #ifndef EPT_CORE_DESKTOPFILE_H -<span class="lineNum"> 8 </span> : #define EPT_CORE_DESKTOPFILE_H -<span class="lineNum"> 9 </span> : -<span class="lineNum"> 10 </span> : namespace ept { -<span class="lineNum"> 11 </span> : namespace core { -<span class="lineNum"> 12 </span> : namespace desktop { -<span class="lineNum"> 13 </span> : -<span class="lineNum"> 14 </span><span class="lineCov"> 32 : struct File {</span> -<span class="lineNum"> 15 </span><span class="lineCov"> 13540 : struct Entry {</span> -<span class="lineNum"> 16 </span> : std::string key; -<span class="lineNum"> 17 </span> : std::string value; -<span class="lineNum"> 18 </span> : }; -<span class="lineNum"> 19 </span> : typedef std::map< std::string, Entry > EntryMap; -<span class="lineNum"> 20 </span> : -<span class="lineNum"> 21 </span><span class="lineCov"> 144 : struct Group {</span> -<span class="lineNum"> 22 </span> : std::string name; -<span class="lineNum"> 23 </span> : EntryMap entries; -<span class="lineNum"> 24 </span><span class="lineCov"> 88 : Entry &entry( std::string k ) { return entries[ k ]; }</span> -<span class="lineNum"> 25 </span> : }; -<span class="lineNum"> 26 </span> : -<span class="lineNum"> 27 </span> : typedef std::map< std::string, Group > GroupMap; -<span class="lineNum"> 28 </span> : GroupMap groups; -<span class="lineNum"> 29 </span><span class="lineCov"> 16 : Group &group( std::string k ) { return groups[ k ]; }</span> -<span class="lineNum"> 30 </span> : }; -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span><span class="lineCov"> 1228 : inline std::istream &operator >>( std::istream &i, File::Entry &e )</span> -<span class="lineNum"> 33 </span> : { -<span class="lineNum"> 34 </span><span class="lineCov"> 1228 : std::string spaces = ""; char c; bool started = false;</span> -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span><span class="lineCov"> 1228 : e.key = "";</span> -<span class="lineNum"> 37 </span> : // read key -<span class="lineNum"> 38 </span><span class="lineCov"> 16056 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 14820 : c = i.get();</span> -<span class="lineNum"> 40 </span><span class="lineCov"> 14820 : if ( !started && c == '\n' )</span> -<span class="lineNum"> 41 </span><span class="lineCov"> 8 : return i >> e;</span> -<span class="lineNum"> 42 </span><span class="lineCov"> 14812 : if ( isspace( c ) ) {</span> -<span class="lineNum"> 43 </span><span class="lineNoCov"> 0 : spaces += c;</span> -<span class="lineNum"> 44 </span><span class="lineNoCov"> 0 : continue;</span> -<span class="lineNum"> 45 </span> : } -<span class="lineNum"> 46 </span><span class="lineCov"> 14812 : if ( !started && c == '#' ) {</span> -<span class="lineNum"> 47 </span><span class="lineNoCov"> 0 : while ( i.peek() != EOF && i.get() != '\n' )</span> -<span class="lineNum"> 48 </span> : ; // read till eol -<span class="lineNum"> 49 </span><span class="lineNoCov"> 0 : return i >> e; // restart reading</span> -<span class="lineNum"> 50 </span> : } -<span class="lineNum"> 51 </span><span class="lineCov"> 14812 : started = true;</span> -<span class="lineNum"> 52 </span><span class="lineCov"> 14812 : if ( c == '=' )</span> -<span class="lineNum"> 53 </span><span class="lineCov"> 1212 : break;</span> -<span class="lineNum"> 54 </span><span class="lineCov"> 13600 : e.key += spaces;</span> -<span class="lineNum"> 55 </span><span class="lineCov"> 13600 : e.key += c;</span> -<span class="lineNum"> 56 </span><span class="lineCov"> 13600 : spaces = "";</span> -<span class="lineNum"> 57 </span> : } -<span class="lineNum"> 58 </span> : // std::cerr << "read key: " << e.key << std::endl; -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span><span class="lineCov"> 1220 : started = false;</span> -<span class="lineNum"> 61 </span><span class="lineCov"> 1220 : bool backslash = false;</span> -<span class="lineNum"> 62 </span> : // read value -<span class="lineNum"> 63 </span><span class="lineCov"> 37496 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 64 </span><span class="lineCov"> 36268 : c = i.get();</span> -<span class="lineNum"> 65 </span><span class="lineCov"> 36268 : if ( c == '\n' ) {</span> -<span class="lineNum"> 66 </span><span class="lineCov"> 1212 : if ( backslash )</span> -<span class="lineNum"> 67 </span><span class="lineNoCov"> 0 : e.value += '\\';</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 1212 : return i;</span> -<span class="lineNum"> 69 </span> : } -<span class="lineNum"> 70 </span><span class="lineCov"> 35056 : if ( !started && isspace( c ) )</span> -<span class="lineNum"> 71 </span><span class="lineNoCov"> 0 : continue;</span> -<span class="lineNum"> 72 </span><span class="lineCov"> 35056 : started = true;</span> -<span class="lineNum"> 73 </span><span class="lineCov"> 35056 : if ( backslash ) { // interpret escape sequences</span> -<span class="lineNum"> 74 </span><span class="lineNoCov"> 0 : if ( c == '\\' ) e.value += '\\';</span> -<span class="lineNum"> 75 </span><span class="lineNoCov"> 0 : else if ( c == 'n' ) e.value += '\n';</span> -<span class="lineNum"> 76 </span><span class="lineNoCov"> 0 : else if ( c == 't' ) e.value += '\t';</span> -<span class="lineNum"> 77 </span><span class="lineNoCov"> 0 : else if ( c == 'r' ) e.value += '\r';</span> -<span class="lineNum"> 78 </span><span class="lineNoCov"> 0 : else if ( c == 's' ) e.value += ' ';</span> -<span class="lineNum"> 79 </span><span class="lineNoCov"> 0 : else { e.value += '\\'; e.value += c; }</span> -<span class="lineNum"> 80 </span><span class="lineNoCov"> 0 : backslash = false;</span> -<span class="lineNum"> 81 </span><span class="lineNoCov"> 0 : continue;</span> -<span class="lineNum"> 82 </span> : } -<span class="lineNum"> 83 </span><span class="lineCov"> 35056 : if ( c == '\\' ) {</span> -<span class="lineNum"> 84 </span><span class="lineNoCov"> 0 : backslash = true;</span> -<span class="lineNum"> 85 </span><span class="lineNoCov"> 0 : continue;</span> -<span class="lineNum"> 86 </span> : } -<span class="lineNum"> 87 </span><span class="lineCov"> 35056 : e.value += c;</span> -<span class="lineNum"> 88 </span> : } -<span class="lineNum"> 89 </span><span class="lineCov"> 8 : return i;</span> -<span class="lineNum"> 90 </span> : } -<span class="lineNum"> 91 </span> : -<span class="lineNum"> 92 </span><span class="lineCov"> 16 : inline std::istream &operator >>( std::istream &i, File::Group &g )</span> -<span class="lineNum"> 93 </span> : { -<span class="lineNum"> 94 </span><span class="lineCov"> 16 : bool started = false; char c;</span> -<span class="lineNum"> 95 </span><span class="lineCov"> 16 : g.name = "";</span> -<span class="lineNum"> 96 </span><span class="lineCov"> 256 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 97 </span><span class="lineCov"> 240 : c = i.get();</span> -<span class="lineNum"> 98 </span><span class="lineCov"> 240 : if ( !started && isspace( c ) )</span> -<span class="lineNum"> 99 </span><span class="lineNoCov"> 0 : continue;</span> -<span class="lineNum"> 100 </span><span class="lineCov"> 240 : if ( !started && c == '#' ) {</span> -<span class="lineNum"> 101 </span><span class="lineNoCov"> 0 : while( i.peek() != EOF && i.get() != '\n' )</span> -<span class="lineNum"> 102 </span> : ; // read till eol -<span class="lineNum"> 103 </span><span class="lineNoCov"> 0 : return i >> g; // restart reading</span> -<span class="lineNum"> 104 </span> : } -<span class="lineNum"> 105 </span><span class="lineCov"> 240 : if ( !started && c == '[' ) {</span> -<span class="lineNum"> 106 </span><span class="lineCov"> 16 : started = true;</span> -<span class="lineNum"> 107 </span><span class="lineCov"> 16 : continue;</span> -<span class="lineNum"> 108 </span> : } -<span class="lineNum"> 109 </span><span class="lineCov"> 224 : if ( started && c == ']' ) {</span> -<span class="lineNum"> 110 </span><span class="lineCov"> 16 : while( i.peek() != EOF && i.get() != '\n' )</span> -<span class="lineNum"> 111 </span> : ; // read till eol -<span class="lineNum"> 112 </span><span class="lineCov"> 16 : break;</span> -<span class="lineNum"> 113 </span> : } -<span class="lineNum"> 114 </span><span class="lineCov"> 208 : g.name += c;</span> -<span class="lineNum"> 115 </span> : } -<span class="lineNum"> 116 </span><span class="lineCov"> 1236 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 117 </span><span class="lineCov"> 1220 : File::Entry e;</span> -<span class="lineNum"> 118 </span><span class="lineCov"> 1220 : i >> e;</span> -<span class="lineNum"> 119 </span><span class="lineCov"> 1220 : g.entries[ e.key ] = e;</span> -<span class="lineNum"> 120 </span> : } -<span class="lineNum"> 121 </span><span class="lineCov"> 16 : return i;</span> -<span class="lineNum"> 122 </span> : } -<span class="lineNum"> 123 </span> : -<span class="lineNum"> 124 </span><span class="lineCov"> 16 : inline std::istream &operator >>( std::istream &i, File &f )</span> -<span class="lineNum"> 125 </span> : { -<span class="lineNum"> 126 </span><span class="lineCov"> 32 : while ( i.peek() != EOF ) {</span> -<span class="lineNum"> 127 </span><span class="lineCov"> 16 : File::Group g;</span> -<span class="lineNum"> 128 </span><span class="lineCov"> 16 : i >> g;</span> -<span class="lineNum"> 129 </span><span class="lineCov"> 16 : f.groups[ g.name ] = g;</span> -<span class="lineNum"> 130 </span> : } -<span class="lineNum"> 131 </span><span class="lineCov"> 16 : return i;</span> -<span class="lineNum"> 132 </span> : } -<span class="lineNum"> 133 </span> : -<span class="lineNum"> 134 </span> : } -<span class="lineNum"> 135 </span> : } -<span class="lineNum"> 136 </span> : } -<span class="lineNum"> 137 </span> : -<span class="lineNum"> 138 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/index.html b/rep/ept/core/index.html deleted file mode 100644 index bec608b..0000000 --- a/rep/ept/core/index.html +++ /dev/null @@ -1,164 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - ept/core</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">688</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">82.8 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">570</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <center> - <table width="80%" cellpadding=2 cellspacing=1 border=0> - - <tr> - <td width="50%"><br></td> - <td width="15%"></td> - <td width="15%"></td> - <td width="20%"></td> - </tr> - - <tr> - <td class="tableHead">Filename</td> - <td class="tableHead" colspan=3>Coverage</td> - </tr> - - <tr> - <td class="coverFile"><a href="apt.cpp.gcov.html">apt.cpp</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">7 / 7 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="apt.h.gcov.html">apt.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=80 height=10 alt="79.8%"><img src="../../snow.png" width=20 height=10 alt="79.8%"></td></tr></table> - </td> - <td class="coverPerHi">79.8 %</td> - <td class="coverNumHi">138 / 173 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="apt.test.h.gcov.html">apt.test.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">60 / 60 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="desktop.h.gcov.html">desktop.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=94 height=10 alt="94.2%"><img src="../../snow.png" width=6 height=10 alt="94.2%"></td></tr></table> - </td> - <td class="coverPerHi">94.2 %</td> - <td class="coverNumHi">97 / 103 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="desktop.test.h.gcov.html">desktop.test.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">33 / 33 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="desktopfile.h.gcov.html">desktopfile.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=75 height=10 alt="75.3%"><img src="../../snow.png" width=25 height=10 alt="75.3%"></td></tr></table> - </td> - <td class="coverPerHi">75.3 %</td> - <td class="coverNumHi">58 / 77 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="source.h.gcov.html">source.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">34 / 34 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="xapian.cpp.gcov.html">xapian.cpp</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../amber.png" width=21 height=10 alt="21.4%"><img src="../../snow.png" width=79 height=10 alt="21.4%"></td></tr></table> - </td> - <td class="coverPerMed">21.4 %</td> - <td class="coverNumMed">12 / 56 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="xapian.h.gcov.html">xapian.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=87 height=10 alt="87.2%"><img src="../../snow.png" width=13 height=10 alt="87.2%"></td></tr></table> - </td> - <td class="coverPerHi">87.2 %</td> - <td class="coverNumHi">95 / 109 lines</td> - </tr> - - <tr> - <td class="coverFile"><a href="xapian.test.h.gcov.html">xapian.test.h</a></td> - <td class="coverBar" align="center"> - <table border=0 cellspacing=0 cellpadding=1><tr><td class="coverBarOutline"><img src="../../emerald.png" width=100 height=10 alt="100.0%"></td></tr></table> - </td> - <td class="coverPerHi">100.0 %</td> - <td class="coverNumHi">36 / 36 lines</td> - </tr> - - </table> - </center> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/source.h.gcov.html b/rep/ept/core/source.h.gcov.html deleted file mode 100644 index 2c2d8e5..0000000 --- a/rep/ept/core/source.h.gcov.html +++ /dev/null @@ -1,181 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/source.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - source.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">34</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">34</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : -<span class="lineNum"> 3 </span> : #include <ept/core/list.h> -<span class="lineNum"> 4 </span> : -<span class="lineNum"> 5 </span> : #ifndef EPT_CORE_SOURCE_H -<span class="lineNum"> 6 </span> : #define EPT_CORE_SOURCE_H -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : namespace ept { -<span class="lineNum"> 9 </span> : namespace core { -<span class="lineNum"> 10 </span> : -<span class="lineNum"> 11 </span> : template< typename Self, typename Setup, -<span class="lineNum"> 12 </span> : template< typename Setup::PropertyId > class PType > -<span class="lineNum"> 13 </span><span class="lineCov"> 38 : struct Source {</span> -<span class="lineNum"> 14 </span> : typedef typename Setup::PropertyId PropertyId; -<span class="lineNum"> 15 </span> : typedef typename Setup::Token Token; -<span class="lineNum"> 16 </span> : -<span class="lineNum"> 17 </span> : Token m_cachedToken; -<span class="lineNum"> 18 </span> : typename Setup::Internal m_cached; -<span class="lineNum"> 19 </span> : -<span class="lineNum"> 20 </span><span class="lineCov"> 43 : Self &self() { return *static_cast< Self * >( this ); }</span> -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span> : template< PropertyId property > -<span class="lineNum"> 23 </span><span class="lineCov"> 13 : typename PType< property >::T get( Token t ) {</span> -<span class="lineNum"> 24 </span><span class="lineCov"> 13 : if ( m_cachedToken != t ) {</span> -<span class="lineNum"> 25 </span><span class="lineCov"> 10 : m_cachedToken = t;</span> -<span class="lineNum"> 26 </span><span class="lineCov"> 10 : m_cached = self().lookupToken( t );</span> -<span class="lineNum"> 27 </span> : } -<span class="lineNum"> 28 </span><span class="lineCov"> 13 : return self().template getInternal< property >( m_cached );</span> -<span class="lineNum"> 29 </span> : } -<span class="lineNum"> 30 </span> : -<span class="lineNum"> 31 </span> : void invalidate() { -<span class="lineNum"> 32 </span> : m_cachedToken = ept::Token(); -<span class="lineNum"> 33 </span> : m_cached = typename Setup::Internal(); -<span class="lineNum"> 34 </span> : } -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span> : template< PropertyId _property > -<span class="lineNum"> 37 </span> : struct ComposedList : wibble::mixin::Comparable< ComposedList< _property > > -<span class="lineNum"> 38 </span><span class="lineCov"> 4009 : {</span> -<span class="lineNum"> 39 </span> : typedef Self Origin; -<span class="lineNum"> 40 </span> : typedef typename Setup::Token Token; -<span class="lineNum"> 41 </span> : typedef typename PType< _property >::T Property; -<span class="lineNum"> 42 </span> : typedef ComposedList Type; -<span class="lineNum"> 43 </span> : -<span class="lineNum"> 44 </span> : Origin *origin; -<span class="lineNum"> 45 </span> : typename Setup::InternalList internal; -<span class="lineNum"> 46 </span> : -<span class="lineNum"> 47 </span><span class="lineCov"> 12056 : ComposedList tail() const {</span> -<span class="lineNum"> 48 </span><span class="lineCov"> 12056 : return ComposedList< _property >( *origin, internal.tail() );</span> -<span class="lineNum"> 49 </span> : } -<span class="lineNum"> 50 </span> : -<span class="lineNum"> 51 </span><span class="lineCov"> 12078 : bool empty() const { return internal.empty(); }</span> -<span class="lineNum"> 52 </span> : -<span class="lineNum"> 53 </span><span class="lineCov"> 13 : bool operator<( const ComposedList &o ) const {</span> -<span class="lineNum"> 54 </span><span class="lineCov"> 13 : return token() < o.token();</span> -<span class="lineNum"> 55 </span> : } -<span class="lineNum"> 56 </span> : -<span class="lineNum"> 57 </span><span class="lineCov"> 18 : ComposedList &head() { return *this; }</span> -<span class="lineNum"> 58 </span><span class="lineCov"> 4 : const ComposedList &head() const { return *this; }</span> -<span class="lineNum"> 59 </span> : -<span class="lineNum"> 60 </span><span class="lineCov"> 6054 : Token token() const { return origin->getToken( internal.head() ); }</span> -<span class="lineNum"> 61 </span> : -<span class="lineNum"> 62 </span><span class="lineCov"> 7836 : Property property() const {</span> -<span class="lineNum"> 63 </span> : return origin->template getInternal< _property >( -<span class="lineNum"> 64 </span><span class="lineCov"> 7836 : internal.head() );</span> -<span class="lineNum"> 65 </span> : } -<span class="lineNum"> 66 </span> : -<span class="lineNum"> 67 </span> : template< PropertyId P > -<span class="lineNum"> 68 </span> : typename PType< P >::T -<span class="lineNum"> 69 </span><span class="lineCov"> 14 : get() const {</span> -<span class="lineNum"> 70 </span><span class="lineCov"> 14 : return origin->template getInternal< P >( internal.head() );</span> -<span class="lineNum"> 71 </span> : } -<span class="lineNum"> 72 </span> : -<span class="lineNum"> 73 </span><span class="lineCov"> 8 : ComposedList() : origin( 0 ) {}</span> -<span class="lineNum"> 74 </span> : -<span class="lineNum"> 75 </span><span class="lineCov"> 12066 : ComposedList( Origin &o, typename Setup::InternalList i )</span> -<span class="lineNum"> 76 </span><span class="lineCov"> 12066 : : origin( &o ), internal( i ) {}</span> -<span class="lineNum"> 77 </span> : }; -<span class="lineNum"> 78 </span> : -<span class="lineNum"> 79 </span> : template< PropertyId property > -<span class="lineNum"> 80 </span><span class="lineCov"> 10 : ComposedList< property > list()</span> -<span class="lineNum"> 81 </span> : { -<span class="lineNum"> 82 </span><span class="lineCov"> 10 : return ComposedList< property >( self(), self().listInternal() );</span> -<span class="lineNum"> 83 </span> : } -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span> : template< PropertyId P, typename F > -<span class="lineNum"> 86 </span><span class="lineCov"> 50 : struct Propertify {</span> -<span class="lineNum"> 87 </span> : F f; -<span class="lineNum"> 88 </span><span class="lineCov"> 2 : Propertify( F _f = F() ) : f( _f ) {}</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 8 : bool operator()( const ComposedList< P > &x ) const {</span> -<span class="lineNum"> 90 </span><span class="lineCov"> 8 : return f( x.token(), x.property() );</span> -<span class="lineNum"> 91 </span> : } -<span class="lineNum"> 92 </span> : }; -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span> : template< PropertyId P, typename F > -<span class="lineNum"> 95 </span> : struct PropertyFilter { -<span class="lineNum"> 96 </span> : typedef typename list::Filtered< -<span class="lineNum"> 97 </span> : ComposedList< P >, Propertify< P, F > > T; -<span class="lineNum"> 98 </span> : }; -<span class="lineNum"> 99 </span> : -<span class="lineNum"> 100 </span> : template< PropertyId P, typename F > -<span class="lineNum"> 101 </span> : typename PropertyFilter< P, F >::T -<span class="lineNum"> 102 </span><span class="lineCov"> 1 : propertyFilter( F f ) {</span> -<span class="lineNum"> 103 </span><span class="lineCov"> 1 : return list::filter( list< P >(), Propertify< P, F >( f ) );</span> -<span class="lineNum"> 104 </span> : } -<span class="lineNum"> 105 </span> : -<span class="lineNum"> 106 </span><span class="lineCov"> 38 : Source()</span> -<span class="lineNum"> 107 </span><span class="lineCov"> 38 : {</span> -<span class="lineNum"> 108 </span><span class="lineCov"> 38 : }</span> -<span class="lineNum"> 109 </span> : }; -<span class="lineNum"> 110 </span> : -<span class="lineNum"> 111 </span> : } -<span class="lineNum"> 112 </span> : } -<span class="lineNum"> 113 </span> : -<span class="lineNum"> 114 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/xapian.cpp.gcov.html b/rep/ept/core/xapian.cpp.gcov.html deleted file mode 100644 index fdd7a16..0000000 --- a/rep/ept/core/xapian.cpp.gcov.html +++ /dev/null @@ -1,208 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/xapian.cpp</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - xapian.cpp</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">56</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">21.4 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">12</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- (c) 2007 Enrico Zini <enrico@enricozini.org> -<span class="lineNum"> 2 </span> : // Petr Rockai <me@mornfall.net> -<span class="lineNum"> 3 </span> : -<span class="lineNum"> 4 </span> : /* -<span class="lineNum"> 5 </span> : * Copyright (C) 2007 Enrico Zini <enrico@debian.org> -<span class="lineNum"> 6 </span> : * -<span class="lineNum"> 7 </span> : * This program is free software; you can redistribute it and/or modify -<span class="lineNum"> 8 </span> : * it under the terms of the GNU General Public License as published by -<span class="lineNum"> 9 </span> : * the Free Software Foundation; either version 2 of the License, or -<span class="lineNum"> 10 </span> : * (at your option) any later version. -<span class="lineNum"> 11 </span> : * -<span class="lineNum"> 12 </span> : * This program is distributed in the hope that it will be useful, -<span class="lineNum"> 13 </span> : * but WITHOUT ANY WARRANTY; without even the implied warranty of -<span class="lineNum"> 14 </span> : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -<span class="lineNum"> 15 </span> : * GNU General Public License for more details. -<span class="lineNum"> 16 </span> : * -<span class="lineNum"> 17 </span> : * You should have received a copy of the GNU General Public License -<span class="lineNum"> 18 </span> : * along with this program; if not, write to the Free Software -<span class="lineNum"> 19 </span> : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -<span class="lineNum"> 20 </span> : */ -<span class="lineNum"> 21 </span> : -<span class="lineNum"> 22 </span> : #include <ept/core/xapian.h> -<span class="lineNum"> 23 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 24 </span> : #include <ept/core/apt/record.h> -<span class="lineNum"> 25 </span> : -<span class="lineNum"> 26 </span> : #include <ept/textsearch/maint/path.h> -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span> : #include <wibble/regexp.h> -<span class="lineNum"> 29 </span> : #include <cctype> -<span class="lineNum"> 30 </span> : #include <cmath> -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span> : #include <xapian/queryparser.h> -<span class="lineNum"> 33 </span> : #include <xapian/base.h> -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span> : #include <algorithm> -<span class="lineNum"> 36 </span> : -<span class="lineNum"> 37 </span> : #include <iostream> -<span class="lineNum"> 38 </span> : -<span class="lineNum"> 39 </span> : using namespace std; -<span class="lineNum"> 40 </span> : using namespace ept; -<span class="lineNum"> 41 </span> : // using namespace ept::debtags; -<span class="lineNum"> 42 </span> : -<span class="lineNum"> 43 </span> : namespace ept { -<span class="lineNum"> 44 </span> : namespace core { -<span class="lineNum"> 45 </span> : namespace xapian { -<span class="lineNum"> 46 </span> : -<span class="lineNum"> 47 </span> : size_t max_index = 0; -<span class="lineNum"> 48 </span> : -<span class="lineNum"> 49 </span><span class="lineCov"> 4 : Source::Source()</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 4 : : m_stem("en"), m_opened( false )</span> -<span class="lineNum"> 51 </span> : { -<span class="lineNum"> 52 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 53 </span> : -<span class="lineNum"> 54 </span><span class="lineCov"> 9 : time_t Source::timestamp() const {</span> -<span class="lineNum"> 55 </span><span class="lineCov"> 9 : return textsearch::Path::indexTimestamp();</span> -<span class="lineNum"> 56 </span> : } -<span class="lineNum"> 57 </span> : -<span class="lineNum"> 58 </span><span class="lineCov"> 9 : void Source::open() const {</span> -<span class="lineNum"> 59 </span><span class="lineCov"> 9 : if (timestamp()) {</span> -<span class="lineNum"> 60 </span><span class="lineCov"> 9 : std::string path = textsearch::Path::index();</span> -<span class="lineNum"> 61 </span><span class="lineCov"> 9 : m_db = Xapian::Database( path );</span> -<span class="lineNum"> 62 </span><span class="lineCov"> 9 : m_opened = true;</span> -<span class="lineNum"> 63 </span> : } -<span class="lineNum"> 64 </span><span class="lineCov"> 9 : }</span> -<span class="lineNum"> 65 </span> : -<span class="lineNum"> 66 </span><span class="lineNoCov"> 0 : std::string Source::toLower(const std::string& str)</span> -<span class="lineNum"> 67 </span> : { -<span class="lineNum"> 68 </span><span class="lineNoCov"> 0 : std::string res;</span> -<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : res.reserve(str.size());</span> -<span class="lineNum"> 70 </span><span class="lineNoCov"> 0 : for (std::string::const_iterator i = str.begin(); i != str.end(); ++i)</span> -<span class="lineNum"> 71 </span><span class="lineNoCov"> 0 : res += tolower(*i);</span> -<span class="lineNum"> 72 </span><span class="lineNoCov"> 0 : return res;</span> -<span class="lineNum"> 73 </span> : } -<span class="lineNum"> 74 </span> : -<span class="lineNum"> 75 </span> : void Source::normalize_and_add(Xapian::Document& doc, const std::string& term, -<span class="lineNum"> 76 </span><span class="lineNoCov"> 0 : int& /* pos */) const</span> -<span class="lineNum"> 77 </span> : { -<span class="lineNum"> 78 </span><span class="lineNoCov"> 0 : string t = Source::toLower(term);</span> -<span class="lineNum"> 79 </span><span class="lineNoCov"> 0 : string s = m_stem(t);</span> -<span class="lineNum"> 80 </span><span class="lineNoCov"> 0 : doc.add_term(t);</span> -<span class="lineNum"> 81 </span><span class="lineNoCov"> 0 : if (s != t)</span> -<span class="lineNum"> 82 </span><span class="lineNoCov"> 0 : doc.add_term(s);</span> -<span class="lineNum"> 83 </span><span class="lineNoCov"> 0 : }</span> -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span><span class="lineNoCov"> 0 : Xapian::docid Source::docidByName(const std::string& pkgname) const</span> -<span class="lineNum"> 86 </span> : { -<span class="lineNum"> 87 </span><span class="lineNoCov"> 0 : Xapian::PostingIterator i = m_db.postlist_begin("pkg:"+pkgname);</span> -<span class="lineNum"> 88 </span><span class="lineNoCov"> 0 : if (i == m_db.postlist_end("pkg:"+pkgname))</span> -<span class="lineNum"> 89 </span><span class="lineNoCov"> 0 : return 0;</span> -<span class="lineNum"> 90 </span> : else -<span class="lineNum"> 91 </span><span class="lineNoCov"> 0 : return *i;</span> -<span class="lineNum"> 92 </span> : } -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span><span class="lineNoCov"> 0 : Xapian::Query Source::makeRelatedQuery(const std::string& pkgname) const</span> -<span class="lineNum"> 95 </span> : { -<span class="lineNum"> 96 </span><span class="lineNoCov"> 0 : Xapian::Enquire enquire(db());</span> -<span class="lineNum"> 97 </span> : -<span class="lineNum"> 98 </span> : // Retrieve the document for the given package -<span class="lineNum"> 99 </span><span class="lineNoCov"> 0 : enquire.set_query(Xapian::Query("pkg:"+pkgname));</span> -<span class="lineNum"> 100 </span><span class="lineNoCov"> 0 : Xapian::MSet matches = enquire.get_mset(0, 1);</span> -<span class="lineNum"> 101 </span><span class="lineNoCov"> 0 : Xapian::MSetIterator mi = matches.begin();</span> -<span class="lineNum"> 102 </span><span class="lineNoCov"> 0 : if (mi == matches.end()) return Xapian::Query();</span> -<span class="lineNum"> 103 </span><span class="lineNoCov"> 0 : Xapian::Document doc = mi.get_document();</span> -<span class="lineNum"> 104 </span> : -<span class="lineNum"> 105 </span> : // Return the query to get the list of similar documents -<span class="lineNum"> 106 </span><span class="lineNoCov"> 0 : return Xapian::Query(Xapian::Query::OP_OR, doc.termlist_begin(), doc.termlist_end());</span> -<span class="lineNum"> 107 </span> : } -<span class="lineNum"> 108 </span> : -<span class="lineNum"> 109 </span> : double Source::getDoubleValue(const std::string& pkgname, -<span class="lineNum"> 110 </span><span class="lineNoCov"> 0 : Xapian::valueno val_id) const</span> -<span class="lineNum"> 111 </span> : { -<span class="lineNum"> 112 </span><span class="lineNoCov"> 0 : Xapian::docid id = docidByName(pkgname);</span> -<span class="lineNum"> 113 </span><span class="lineNoCov"> 0 : if (id == 0)</span> -<span class="lineNum"> 114 </span><span class="lineNoCov"> 0 : return 0.0;</span> -<span class="lineNum"> 115 </span><span class="lineNoCov"> 0 : Xapian::Document doc = db().get_document(id);</span> -<span class="lineNum"> 116 </span><span class="lineNoCov"> 0 : string val = doc.get_value(val_id);</span> -<span class="lineNum"> 117 </span><span class="lineNoCov"> 0 : if (val.empty())</span> -<span class="lineNum"> 118 </span><span class="lineNoCov"> 0 : return 0.0;</span> -<span class="lineNum"> 119 </span> : else -<span class="lineNum"> 120 </span><span class="lineNoCov"> 0 : return Xapian::sortable_unserialise(val);</span> -<span class="lineNum"> 121 </span> : } -<span class="lineNum"> 122 </span> : -<span class="lineNum"> 123 </span> : int Source::getIntValue(const std::string& pkgname, -<span class="lineNum"> 124 </span><span class="lineNoCov"> 0 : Xapian::valueno val_id) const</span> -<span class="lineNum"> 125 </span> : { -<span class="lineNum"> 126 </span><span class="lineNoCov"> 0 : Xapian::docid id = docidByName(pkgname);</span> -<span class="lineNum"> 127 </span><span class="lineNoCov"> 0 : if (id == 0)</span> -<span class="lineNum"> 128 </span><span class="lineNoCov"> 0 : return 0;</span> -<span class="lineNum"> 129 </span><span class="lineNoCov"> 0 : Xapian::Document doc = db().get_document(id);</span> -<span class="lineNum"> 130 </span><span class="lineNoCov"> 0 : string val = doc.get_value(val_id);</span> -<span class="lineNum"> 131 </span><span class="lineNoCov"> 0 : if (val.empty())</span> -<span class="lineNum"> 132 </span><span class="lineNoCov"> 0 : return 0;</span> -<span class="lineNum"> 133 </span> : else -<span class="lineNum"> 134 </span><span class="lineNoCov"> 0 : return (int)nearbyint(Xapian::sortable_unserialise(val));</span> -<span class="lineNum"> 135 </span> : } -<span class="lineNum"> 136 </span> : -<span class="lineNum"> 137 </span> : } -<span class="lineNum"> 138 </span> : } -<span class="lineNum"> 139 </span><span class="lineCov"> 3 : }</span> -<span class="lineNum"> 140 </span> : -<span class="lineNum"> 141 </span> : // vim:set ts=4 sw=4: -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/xapian.h.gcov.html b/rep/ept/core/xapian.h.gcov.html deleted file mode 100644 index d38457e..0000000 --- a/rep/ept/core/xapian.h.gcov.html +++ /dev/null @@ -1,456 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/xapian.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - xapian.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">109</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">87.2 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">95</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <xapian.h> -<span class="lineNum"> 3 </span> : #include <ept/core/apt.h> -<span class="lineNum"> 4 </span> : #include <wibble/regexp.h> -<span class="lineNum"> 5 </span> : #include <wibble/sys/pipe.h> -<span class="lineNum"> 6 </span> : #include <wibble/sys/exec.h> -<span class="lineNum"> 7 </span> : -<span class="lineNum"> 8 </span> : #ifndef EPT_XAPIAN_H -<span class="lineNum"> 9 </span> : #define EPT_XAPIAN_H -<span class="lineNum"> 10 </span> : -<span class="lineNum"> 11 </span> : namespace ept { -<span class="lineNum"> 12 </span> : namespace core { -<span class="lineNum"> 13 </span> : namespace xapian { -<span class="lineNum"> 14 </span> : -<span class="lineNum"> 15 </span> : // Allocate value indexes for known values -<span class="lineNum"> 16 </span> : const Xapian::valueno VAL_APT_INSTALLED_SIZE = 1; -<span class="lineNum"> 17 </span> : const Xapian::valueno VAL_APT_PACKAGE_SIZE = 2; -<span class="lineNum"> 18 </span> : const Xapian::valueno VAL_POPCON = 10; -<span class="lineNum"> 19 </span> : const Xapian::valueno VAL_ITERATING_RATING = 20; -<span class="lineNum"> 20 </span> : const Xapian::valueno VAL_ITERATING_FUNCTIONALITY = 21; -<span class="lineNum"> 21 </span> : const Xapian::valueno VAL_ITERATING_USABILITY = 22; -<span class="lineNum"> 22 </span> : const Xapian::valueno VAL_ITERATING_SECURITY = 23; -<span class="lineNum"> 23 </span> : const Xapian::valueno VAL_ITERATING_PERFORMANCE = 24; -<span class="lineNum"> 24 </span> : const Xapian::valueno VAL_ITERATING_QUALITY = 25; -<span class="lineNum"> 25 </span> : const Xapian::valueno VAL_ITERATING_SUPPORT = 26; -<span class="lineNum"> 26 </span> : const Xapian::valueno VAL_ITERATING_ADOPTION = 27; -<span class="lineNum"> 27 </span> : -<span class="lineNum"> 28 </span> : struct TagFilter : public Xapian::ExpandDecider -<span class="lineNum"> 29 </span><span class="lineCov"> 8 : {</span> -<span class="lineNum"> 30 </span><span class="lineCov"> 1760 : virtual bool operator()(const std::string &term) const {</span> -<span class="lineNum"> 31 </span><span class="lineCov"> 1760 : return term[0] == 'X' && term[1] == 'T';</span> -<span class="lineNum"> 32 </span> : } -<span class="lineNum"> 33 </span> : }; -<span class="lineNum"> 34 </span> : -<span class="lineNum"> 35 </span><span class="lineCov"> 91 : struct List {</span> -<span class="lineNum"> 36 </span> : char m_enqPlace[sizeof(Xapian::Enquire)]; -<span class="lineNum"> 37 </span> : mutable Xapian::MSet m_matches; -<span class="lineNum"> 38 </span> : mutable Xapian::MSet::const_iterator m_iter; -<span class="lineNum"> 39 </span> : mutable int m_pos; -<span class="lineNum"> 40 </span> : typedef List Type; -<span class="lineNum"> 41 </span> : -<span class="lineNum"> 42 </span> : static const size_t chunkSize = 20; -<span class="lineNum"> 43 </span> : -<span class="lineNum"> 44 </span> : List head() const { -<span class="lineNum"> 45 </span> : seek(); -<span class="lineNum"> 46 </span> : return *this; -<span class="lineNum"> 47 </span> : } -<span class="lineNum"> 48 </span> : -<span class="lineNum"> 49 </span><span class="lineCov"> 15 : Token token() const {</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 15 : Token t;</span> -<span class="lineNum"> 51 </span><span class="lineCov"> 15 : t._id = m_iter.get_document().get_data();</span> -<span class="lineNum"> 52 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 53 </span> : } -<span class="lineNum"> 54 </span> : -<span class="lineNum"> 55 </span> : bool operator<( const List &o ) const { -<span class="lineNum"> 56 </span> : return token() < o.token(); -<span class="lineNum"> 57 </span> : } -<span class="lineNum"> 58 </span> : -<span class="lineNum"> 59 </span><span class="lineCov"> 58 : void seek() const {</span> -<span class="lineNum"> 60 </span><span class="lineCov"> 58 : if ( m_matches.size() == chunkSize && m_iter == m_matches.end() ) {</span> -<span class="lineNum"> 61 </span><span class="lineNoCov"> 0 : m_matches = enq().get_mset( m_pos, chunkSize );</span> -<span class="lineNum"> 62 </span><span class="lineNoCov"> 0 : m_iter = m_matches.begin();</span> -<span class="lineNum"> 63 </span><span class="lineNoCov"> 0 : m_pos += chunkSize;</span> -<span class="lineNum"> 64 </span> : } -<span class="lineNum"> 65 </span><span class="lineCov"> 58 : }</span> -<span class="lineNum"> 66 </span> : -<span class="lineNum"> 67 </span><span class="lineCov"> 30 : bool empty() const {</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 30 : if ( m_pos == -1 )</span> -<span class="lineNum"> 69 </span><span class="lineNoCov"> 0 : return true;</span> -<span class="lineNum"> 70 </span><span class="lineCov"> 30 : seek();</span> -<span class="lineNum"> 71 </span><span class="lineCov"> 30 : return m_matches.size() < 30 && m_iter == m_matches.end();</span> -<span class="lineNum"> 72 </span> : } -<span class="lineNum"> 73 </span> : -<span class="lineNum"> 74 </span><span class="lineCov"> 28 : List tail() const {</span> -<span class="lineNum"> 75 </span><span class="lineCov"> 28 : List t = *this;</span> -<span class="lineNum"> 76 </span><span class="lineCov"> 28 : t.seek();</span> -<span class="lineNum"> 77 </span><span class="lineCov"> 28 : t.m_iter ++;</span> -<span class="lineNum"> 78 </span><span class="lineNoCov"> 0 : return t;</span> -<span class="lineNum"> 79 </span> : } -<span class="lineNum"> 80 </span> : -<span class="lineNum"> 81 </span><span class="lineCov"> 6 : Xapian::Enquire const &enq() const {</span> -<span class="lineNum"> 82 </span><span class="lineCov"> 6 : return *reinterpret_cast< Xapian::Enquire const * >( m_enqPlace );</span> -<span class="lineNum"> 83 </span> : } -<span class="lineNum"> 84 </span> : -<span class="lineNum"> 85 </span><span class="lineCov"> 3 : List( Xapian::Enquire _enq )</span> -<span class="lineNum"> 86 </span><span class="lineCov"> 3 : {</span> -<span class="lineNum"> 87 </span><span class="lineCov"> 3 : Xapian::Enquire *e = new (m_enqPlace) Xapian::Enquire( _enq );</span> -<span class="lineNum"> 88 </span><span class="lineCov"> 3 : assert_eq( e, &enq() );</span> -<span class="lineNum"> 89 </span><span class="lineCov"> 6 : m_matches = enq().get_mset( 0, chunkSize );</span> -<span class="lineNum"> 90 </span><span class="lineCov"> 3 : m_iter = m_matches.begin();</span> -<span class="lineNum"> 91 </span><span class="lineCov"> 3 : m_pos = chunkSize;</span> -<span class="lineNum"> 92 </span><span class="lineCov"> 3 : }</span> -<span class="lineNum"> 93 </span> : -<span class="lineNum"> 94 </span> : List() {} -<span class="lineNum"> 95 </span> : }; -<span class="lineNum"> 96 </span> : -<span class="lineNum"> 97 </span><span class="lineCov"> 13 : struct Query {</span> -<span class="lineNum"> 98 </span> : Xapian::Database *m_db; -<span class="lineNum"> 99 </span> : Xapian::Enquire m_enq; -<span class="lineNum"> 100 </span> : Xapian::Stem m_stem; -<span class="lineNum"> 101 </span> : typedef std::set< std::string > Terms; -<span class="lineNum"> 102 </span> : Terms m_include, m_exclude; -<span class="lineNum"> 103 </span> : int m_cutoff; -<span class="lineNum"> 104 </span> : bool m_expand; -<span class="lineNum"> 105 </span> : -<span class="lineNum"> 106 </span><span class="lineCov"> 5 : void setQualityCutoff( int c ) {</span> -<span class="lineNum"> 107 </span><span class="lineCov"> 5 : m_cutoff = c;</span> -<span class="lineNum"> 108 </span><span class="lineCov"> 5 : }</span> -<span class="lineNum"> 109 </span> : -<span class="lineNum"> 110 </span><span class="lineCov"> 5 : void setExpand( bool e ) { m_expand = e; }</span> -<span class="lineNum"> 111 </span> : -<span class="lineNum"> 112 </span><span class="lineCov"> 9 : Query( Xapian::Database &e ) : m_db( &e ), m_enq( e ) {</span> -<span class="lineNum"> 113 </span><span class="lineCov"> 9 : m_cutoff = 50;</span> -<span class="lineNum"> 114 </span><span class="lineCov"> 9 : m_expand = true;</span> -<span class="lineNum"> 115 </span><span class="lineCov"> 9 : }</span> -<span class="lineNum"> 116 </span> : -<span class="lineNum"> 117 </span><span class="lineCov"> 5 : wibble::Tokenizer queryTokenizer( std::string q ) const {</span> -<span class="lineNum"> 118 </span><span class="lineCov"> 5 : return wibble::Tokenizer( q, "[A-Za-z0-9_+:-]+", REG_EXTENDED );</span> -<span class="lineNum"> 119 </span> : } -<span class="lineNum"> 120 </span> : -<span class="lineNum"> 121 </span> : template< typename Out > -<span class="lineNum"> 122 </span><span class="lineCov"> 5 : void tokenizeQuery( std::string q, Out o ) const</span> -<span class="lineNum"> 123 </span> : { -<span class="lineNum"> 124 </span><span class="lineCov"> 5 : wibble::Tokenizer tok = queryTokenizer( q );</span> -<span class="lineNum"> 125 </span><span class="lineCov"> 15 : for (wibble::Tokenizer::const_iterator i = tok.begin(); i != tok.end(); ++i )</span> -<span class="lineNum"> 126 </span> : { -<span class="lineNum"> 127 </span><span class="lineCov"> 10 : if ( (*i).find( "::" ) != std::string::npos ) { // assume tag</span> -<span class="lineNum"> 128 </span><span class="lineNoCov"> 0 : *o++ = ("XT" + *i);</span> -<span class="lineNum"> 129 </span> : } else { -<span class="lineNum"> 130 </span><span class="lineCov"> 10 : std::string t = wibble::str::tolower(*i);</span> -<span class="lineNum"> 131 </span><span class="lineCov"> 10 : std::string s = m_stem(t);</span> -<span class="lineNum"> 132 </span><span class="lineCov"> 10 : *o++ = t;</span> -<span class="lineNum"> 133 </span><span class="lineCov"> 10 : if (s != t)</span> -<span class="lineNum"> 134 </span><span class="lineCov"> 5 : *o++ = ("Z" + s);</span> -<span class="lineNum"> 135 </span> : } -<span class="lineNum"> 136 </span> : } -<span class="lineNum"> 137 </span><span class="lineCov"> 5 : }</span> -<span class="lineNum"> 138 </span> : -<span class="lineNum"> 139 </span> : template< typename Out > -<span class="lineNum"> 140 </span><span class="lineCov"> 4 : void expand( Out o ) const</span> -<span class="lineNum"> 141 </span> : { -<span class="lineNum"> 142 </span><span class="lineCov"> 4 : Xapian::RSet rset;</span> -<span class="lineNum"> 143 </span> : // Get the top 5 results as 'good ones' to compute the search expansion -<span class="lineNum"> 144 </span><span class="lineCov"> 4 : Xapian::MSet mset = m_enq.get_mset(0, 5);</span> -<span class="lineNum"> 145 </span><span class="lineCov"> 24 : for ( Xapian::MSet::iterator i = mset.begin(); i != mset.end(); ++i )</span> -<span class="lineNum"> 146 </span><span class="lineCov"> 24 : rset.add_document(i);</span> -<span class="lineNum"> 147 </span> : // Get the expanded set, only expanding the query with tag names -<span class="lineNum"> 148 </span><span class="lineCov"> 4 : TagFilter tagf;</span> -<span class="lineNum"> 149 </span><span class="lineCov"> 4 : Xapian::ESet eset = m_enq.get_eset(5, rset, &tagf);</span> -<span class="lineNum"> 150 </span><span class="lineCov"> 4 : for ( Xapian::ESetIterator i = eset.begin(); i != eset.end(); ++i )</span> -<span class="lineNum"> 151 </span><span class="lineCov"> 4 : *o++ = *i;</span> -<span class="lineNum"> 152 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 153 </span> : -<span class="lineNum"> 154 </span><span class="lineCov"> 8 : void updateEnquire() {</span> -<span class="lineNum"> 155 </span> : // set up query now -<span class="lineNum"> 156 </span> : Xapian::Query inc( Xapian::Query::OP_OR, -<span class="lineNum"> 157 </span> : m_include.begin(), -<span class="lineNum"> 158 </span><span class="lineCov"> 8 : m_include.end() ),</span> -<span class="lineNum"> 159 </span> : exc( Xapian::Query::OP_OR, -<span class="lineNum"> 160 </span> : m_exclude.begin(), -<span class="lineNum"> 161 </span><span class="lineCov"> 8 : m_exclude.end() ),</span> -<span class="lineNum"> 162 </span><span class="lineCov"> 8 : query( Xapian::Query::OP_AND_NOT, inc, exc );</span> -<span class="lineNum"> 163 </span> : -<span class="lineNum"> 164 </span><span class="lineCov"> 8 : m_enq.set_query( query );</span> -<span class="lineNum"> 165 </span> : -<span class="lineNum"> 166 </span><span class="lineCov"> 8 : if ( m_expand ) {</span> -<span class="lineNum"> 167 </span><span class="lineCov"> 4 : m_expand = false;</span> -<span class="lineNum"> 168 </span><span class="lineCov"> 4 : expand( std::inserter( m_include, m_include.begin() ) );</span> -<span class="lineNum"> 169 </span><span class="lineCov"> 4 : updateEnquire();</span> -<span class="lineNum"> 170 </span><span class="lineCov"> 4 : m_expand = true;</span> -<span class="lineNum"> 171 </span><span class="lineCov"> 4 : return;</span> -<span class="lineNum"> 172 </span> : } -<span class="lineNum"> 173 </span> : -<span class="lineNum"> 174 </span><span class="lineCov"> 4 : Xapian::MSet first = m_enq.get_mset(0, 1, 0, 0, 0);</span> -<span class="lineNum"> 175 </span><span class="lineCov"> 4 : Xapian::MSetIterator ifirst = first.begin();</span> -<span class="lineNum"> 176 </span><span class="lineCov"> 4 : if ( ifirst != first.end() ) {</span> -<span class="lineNum"> 177 </span><span class="lineCov"> 4 : Xapian::percent cutoff = ifirst.get_percent() * m_cutoff / 100;</span> -<span class="lineNum"> 178 </span><span class="lineCov"> 4 : m_enq.set_cutoff(cutoff);</span> -<span class="lineNum"> 179 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 180 </span> : } -<span class="lineNum"> 181 </span> : -<span class="lineNum"> 182 </span><span class="lineCov"> 3 : List results() {</span> -<span class="lineNum"> 183 </span><span class="lineCov"> 3 : updateEnquire();</span> -<span class="lineNum"> 184 </span><span class="lineCov"> 3 : return List( m_enq );</span> -<span class="lineNum"> 185 </span> : } -<span class="lineNum"> 186 </span> : -<span class="lineNum"> 187 </span> : std::map< std::string, int > relevantTags( int n = 30 ) { -<span class="lineNum"> 188 </span> : updateEnquire(); -<span class="lineNum"> 189 </span> : std::map< std::string, int > relev; -<span class="lineNum"> 190 </span> : Xapian::RSet rset; -<span class="lineNum"> 191 </span> : Xapian::MSet mset = m_enq.get_mset(0, 100); -<span class="lineNum"> 192 </span> : for ( Xapian::MSet::iterator i = mset.begin(); i != mset.end(); ++i ) -<span class="lineNum"> 193 </span> : rset.add_document(i); -<span class="lineNum"> 194 </span> : // Get the expanded set, only expanding the query with tag names -<span class="lineNum"> 195 </span> : TagFilter tagf; -<span class="lineNum"> 196 </span> : Xapian::ESet eset = m_enq.get_eset(n, rset, &tagf); -<span class="lineNum"> 197 </span> : for ( Xapian::ESetIterator i = eset.begin(); i != eset.end(); ++i ) -<span class="lineNum"> 198 </span> : relev.insert( relev.begin(), -<span class="lineNum"> 199 </span> : std::make_pair( -<span class="lineNum"> 200 </span> : std::string( *i, 2, std::string::npos ), -<span class="lineNum"> 201 </span> : i.get_weight() ) ); -<span class="lineNum"> 202 </span> : return relev; -<span class="lineNum"> 203 </span> : } -<span class="lineNum"> 204 </span> : -<span class="lineNum"> 205 </span><span class="lineCov"> 5 : void addTerms( std::string t, bool partial = false, bool exclude = false ) {</span> -<span class="lineNum"> 206 </span><span class="lineCov"> 5 : Terms &to = exclude ? m_exclude : m_include;</span> -<span class="lineNum"> 207 </span><span class="lineCov"> 5 : std::vector< std::string > tok;</span> -<span class="lineNum"> 208 </span><span class="lineCov"> 5 : tokenizeQuery( t, std::back_inserter( tok ) );</span> -<span class="lineNum"> 209 </span><span class="lineCov"> 5 : if ( partial ) {</span> -<span class="lineNum"> 210 </span><span class="lineNoCov"> 0 : if ( tok.back().size() == 1 ) {</span> -<span class="lineNum"> 211 </span><span class="lineNoCov"> 0 : tok.pop_back();</span> -<span class="lineNum"> 212 </span> : } else { -<span class="lineNum"> 213 </span> : std::copy( -<span class="lineNum"> 214 </span> : m_db->allterms_begin( tok.back() ), -<span class="lineNum"> 215 </span> : m_db->allterms_end( tok.back() ), -<span class="lineNum"> 216 </span><span class="lineNoCov"> 0 : std::back_inserter( tok ) );</span> -<span class="lineNum"> 217 </span> : } -<span class="lineNum"> 218 </span> : } -<span class="lineNum"> 219 </span><span class="lineCov"> 5 : std::copy( tok.begin(), tok.end(), std::inserter( to, to.begin() ) );</span> -<span class="lineNum"> 220 </span><span class="lineCov"> 5 : }</span> -<span class="lineNum"> 221 </span> : -<span class="lineNum"> 222 </span> : void addTerms( const Terms &t, bool exclude = false ) { -<span class="lineNum"> 223 </span> : Terms &to = exclude ? m_exclude : m_include; -<span class="lineNum"> 224 </span> : std::copy( t.begin(), t.end(), std::inserter( to, to.begin() ) ); -<span class="lineNum"> 225 </span> : } -<span class="lineNum"> 226 </span> : -<span class="lineNum"> 227 </span> : }; -<span class="lineNum"> 228 </span> : -<span class="lineNum"> 229 </span> : struct Source -<span class="lineNum"> 230 </span><span class="lineCov"> 4 : {</span> -<span class="lineNum"> 231 </span> : protected: -<span class="lineNum"> 232 </span> : mutable Xapian::Database m_db; -<span class="lineNum"> 233 </span> : Xapian::Stem m_stem; -<span class="lineNum"> 234 </span> : mutable bool m_opened; -<span class="lineNum"> 235 </span> : -<span class="lineNum"> 236 </span> : /// Return a lowercased copy of the string -<span class="lineNum"> 237 </span> : static std::string toLower(const std::string& str); -<span class="lineNum"> 238 </span> : -<span class="lineNum"> 239 </span> : /** -<span class="lineNum"> 240 </span> : * Add normalised tokens computed from the string to the document doc. -<span class="lineNum"> 241 </span> : * -<span class="lineNum"> 242 </span> : * pos is used as a sequence generator for entering the token position in -<span class="lineNum"> 243 </span> : * the document. -<span class="lineNum"> 244 </span> : */ -<span class="lineNum"> 245 </span> : void normalize_and_add(Xapian::Document& doc, const std::string& term, -<span class="lineNum"> 246 </span> : int& pos) const; -<span class="lineNum"> 247 </span> : -<span class="lineNum"> 248 </span> : public: -<span class="lineNum"> 249 </span> : Source(); -<span class="lineNum"> 250 </span> : -<span class="lineNum"> 251 </span> : /// Access the Xapian database -<span class="lineNum"> 252 </span><span class="lineCov"> 9 : Xapian::Database& db() {</span> -<span class="lineNum"> 253 </span><span class="lineCov"> 9 : open();</span> -<span class="lineNum"> 254 </span><span class="lineCov"> 9 : return m_db;</span> -<span class="lineNum"> 255 </span> : } -<span class="lineNum"> 256 </span> : -<span class="lineNum"> 257 </span> : /// Access the Xapian database -<span class="lineNum"> 258 </span><span class="lineNoCov"> 0 : const Xapian::Database& db() const {</span> -<span class="lineNum"> 259 </span><span class="lineNoCov"> 0 : open();</span> -<span class="lineNum"> 260 </span><span class="lineNoCov"> 0 : return m_db;</span> -<span class="lineNum"> 261 </span> : } -<span class="lineNum"> 262 </span> : -<span class="lineNum"> 263 </span> : void open() const; -<span class="lineNum"> 264 </span> : void invalidate() { -<span class="lineNum"> 265 </span> : m_db = Xapian::Database(); -<span class="lineNum"> 266 </span> : m_opened = false; -<span class="lineNum"> 267 </span> : } -<span class="lineNum"> 268 </span> : -<span class="lineNum"> 269 </span> : /// Timestamp of when the Xapian database was last updated -<span class="lineNum"> 270 </span> : time_t timestamp() const; -<span class="lineNum"> 271 </span> : -<span class="lineNum"> 272 </span> : void updateLeniently( AptDatabase &apt, OpProgress *op = 0 ) { -<span class="lineNum"> 273 </span> : if (apt.timestamp() - timestamp() > 86400 * 8) // a little over a week -<span class="lineNum"> 274 </span> : update( op ); -<span class="lineNum"> 275 </span> : } -<span class="lineNum"> 276 </span> : -<span class="lineNum"> 277 </span> : void update( OpProgress *op = 0 ) { -<span class="lineNum"> 278 </span> : if ( !op ) -<span class="lineNum"> 279 </span> : op = new OpProgress(); -<span class="lineNum"> 280 </span> : -<span class="lineNum"> 281 </span> : wibble::exception::AddContext _ctx( "Rebuilding Xapian database." ); -<span class="lineNum"> 282 </span> : int outfd; -<span class="lineNum"> 283 </span> : std::string op_str; -<span class="lineNum"> 284 </span> : -<span class="lineNum"> 285 </span> : wibble::sys::Exec ex( "update-apt-xapian-index" ); -<span class="lineNum"> 286 </span> : ex.args.push_back( "--batch-mode" ); -<span class="lineNum"> 287 </span> : ex.searchInPath = true; -<span class="lineNum"> 288 </span> : ex.forkAndRedirect( 0, &outfd, 0 ); -<span class="lineNum"> 289 </span> : -<span class="lineNum"> 290 </span> : wibble::sys::Pipe monit( outfd ); -<span class="lineNum"> 291 </span> : while ( !monit.eof() ) { -<span class="lineNum"> 292 </span> : std::string line = monit.nextLine(); -<span class="lineNum"> 293 </span> : if ( line.empty() ) { -<span class="lineNum"> 294 </span> : usleep( 100000 ); -<span class="lineNum"> 295 </span> : continue; -<span class="lineNum"> 296 </span> : } -<span class="lineNum"> 297 </span> : std::cerr << "got : " << line << std::endl; -<span class="lineNum"> 298 </span> : if ( wibble::str::startsWith( line, "begin: " ) ) { -<span class="lineNum"> 299 </span> : op_str = std::string( line, 7, std::string::npos ); -<span class="lineNum"> 300 </span> : op->OverallProgress( 0, 100, 100, op_str ); -<span class="lineNum"> 301 </span> : -<span class="lineNum"> 302 </span> : } else if ( wibble::str::startsWith( line, "done: " ) ) { -<span class="lineNum"> 303 </span> : op->Done(); -<span class="lineNum"> 304 </span> : } else if ( wibble::str::startsWith( line, "progress: " ) ) { -<span class="lineNum"> 305 </span> : wibble::ERegexp re( "progress: ([0-9]+)/([0-9]+)", 3 ); -<span class="lineNum"> 306 </span> : if ( re.match( line ) ) { -<span class="lineNum"> 307 </span> : assert_eq( re[2], "100" ); -<span class="lineNum"> 308 </span> : op->OverallProgress( atoi( re[1].c_str() ), 100, 100, op_str ); -<span class="lineNum"> 309 </span> : } -<span class="lineNum"> 310 </span> : } -<span class="lineNum"> 311 </span> : } -<span class="lineNum"> 312 </span> : ex.waitForSuccess(); -<span class="lineNum"> 313 </span> : invalidate(); -<span class="lineNum"> 314 </span> : } -<span class="lineNum"> 315 </span> : -<span class="lineNum"> 316 </span> : /// Returns true if the index has data -<span class="lineNum"> 317 </span> : bool hasData() const { return timestamp() > 0; } -<span class="lineNum"> 318 </span> : -<span class="lineNum"> 319 </span> : Query query( const std::string &s, -<span class="lineNum"> 320 </span> : bool expand = true, -<span class="lineNum"> 321 </span><span class="lineCov"> 5 : int qualityCutoff = 50 )</span> -<span class="lineNum"> 322 </span> : { -<span class="lineNum"> 323 </span><span class="lineCov"> 5 : Query q( db() );</span> -<span class="lineNum"> 324 </span><span class="lineCov"> 5 : q.setQualityCutoff( qualityCutoff );</span> -<span class="lineNum"> 325 </span><span class="lineCov"> 5 : q.setExpand( expand );</span> -<span class="lineNum"> 326 </span><span class="lineCov"> 5 : q.addTerms( s );</span> -<span class="lineNum"> 327 </span><span class="lineNoCov"> 0 : return q;</span> -<span class="lineNum"> 328 </span> : } -<span class="lineNum"> 329 </span> : -<span class="lineNum"> 330 </span> : Query partialQuery( const std::string &s ) { -<span class="lineNum"> 331 </span> : Query q( db() ); -<span class="lineNum"> 332 </span> : q.addTerms( s, true ); // partial -<span class="lineNum"> 333 </span> : return q; -<span class="lineNum"> 334 </span> : } -<span class="lineNum"> 335 </span> : -<span class="lineNum"> 336 </span> : /// Returns true if the index is older than the Apt database information -<span class="lineNum"> 337 </span> : // bool needsRebuild(apt::Apt& apt); -<span class="lineNum"> 338 </span> : -<span class="lineNum"> 339 </span> : Xapian::docid docidByName(const std::string& pkgname) const; -<span class="lineNum"> 340 </span> : -<span class="lineNum"> 341 </span> : /** -<span class="lineNum"> 342 </span> : * Tokenize the string and build an OR query with the resulting keywords -<span class="lineNum"> 343 </span> : */ -<span class="lineNum"> 344 </span> : Xapian::Query makeORQuery(const std::string& keywords) const; -<span class="lineNum"> 345 </span> : -<span class="lineNum"> 346 </span> : /** -<span class="lineNum"> 347 </span> : * Tokenize the string and build an OR query with the resulting keywords. -<span class="lineNum"> 348 </span> : * -<span class="lineNum"> 349 </span> : * The last token in keywords is considered to be typed only partially, to -<span class="lineNum"> 350 </span> : * implement proper search-as-you-type. -<span class="lineNum"> 351 </span> : */ -<span class="lineNum"> 352 </span> : Xapian::Query makePartialORQuery(const std::string& keywords) const; -<span class="lineNum"> 353 </span> : -<span class="lineNum"> 354 </span> : /** -<span class="lineNum"> 355 </span> : * Build a query with the given keywords, specified as iterators of strings -<span class="lineNum"> 356 </span> : */ -<span class="lineNum"> 357 </span> : template<typename ITER> -<span class="lineNum"> 358 </span> : Xapian::Query makeORQuery(const ITER& begin, const ITER& end) const -<span class="lineNum"> 359 </span> : { -<span class="lineNum"> 360 </span> : return Xapian::Query(Xapian::Query::OP_OR, begin, end); -<span class="lineNum"> 361 </span> : } -<span class="lineNum"> 362 </span> : -<span class="lineNum"> 363 </span> : /// Return a list of tag-based terms that can be used to expand an OR query -<span class="lineNum"> 364 </span> : std::vector<std::string> expand(Xapian::Enquire& enq) const; -<span class="lineNum"> 365 </span> : -<span class="lineNum"> 366 </span> : // std::vector<std::string> similar(const std::string& pkg); -<span class="lineNum"> 367 </span> : -<span class="lineNum"> 368 </span> : /** -<span class="lineNum"> 369 </span> : * Create a query to look for packages similar to the given one -<span class="lineNum"> 370 </span> : */ -<span class="lineNum"> 371 </span> : Xapian::Query makeRelatedQuery(const std::string& pkgname) const; -<span class="lineNum"> 372 </span> : -<span class="lineNum"> 373 </span> : /** -<span class="lineNum"> 374 </span> : * Get the integer value for -<span class="lineNum"> 375 </span> : */ -<span class="lineNum"> 376 </span> : double getDoubleValue(const std::string& pkgname, -<span class="lineNum"> 377 </span> : Xapian::valueno val_id) const; -<span class="lineNum"> 378 </span> : -<span class="lineNum"> 379 </span> : /** -<span class="lineNum"> 380 </span> : * Get the integer value for -<span class="lineNum"> 381 </span> : */ -<span class="lineNum"> 382 </span> : int getIntValue(const std::string& pkgname, Xapian::valueno val_id) const; -<span class="lineNum"> 383 </span> : }; -<span class="lineNum"> 384 </span> : -<span class="lineNum"> 385 </span> : } -<span class="lineNum"> 386 </span> : } -<span class="lineNum"> 387 </span> : } -<span class="lineNum"> 388 </span> : -<span class="lineNum"> 389 </span> : #endif -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> diff --git a/rep/ept/core/xapian.test.h.gcov.html b/rep/ept/core/xapian.test.h.gcov.html deleted file mode 100644 index 17fc9dd..0000000 --- a/rep/ept/core/xapian.test.h.gcov.html +++ /dev/null @@ -1,141 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> - -<html lang="en"> - -<head> - <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> - <title>LCOV - lcov.info - ept/core/xapian.test.h</title> - <link rel="stylesheet" type="text/css" href="../../gcov.css"> -</head> - -<body> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="title">LTP GCOV extension - code coverage report</td></tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - - <tr> - <td width="100%"> - <table cellpadding=1 border=0 width="100%"> - <tr> - <td class="headerItem" width="20%">Current view:</td> - <td class="headerValue" width="80%" colspan=4><a href="../../index.html">directory</a> - <a href="index.html">ept/core</a> - xapian.test.h</td> - </tr> - <tr> - <td class="headerItem" width="20%">Test:</td> - <td class="headerValue" width="80%" colspan=4>lcov.info</td> - </tr> - <tr> - <td class="headerItem" width="20%">Date:</td> - <td class="headerValue" width="20%">2008-08-14</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Instrumented lines:</td> - <td class="headerValue" width="20%">36</td> - </tr> - <tr> - <td class="headerItem" width="20%">Code covered:</td> - <td class="headerValue" width="20%">100.0 %</td> - <td width="20%"></td> - <td class="headerItem" width="20%">Executed lines:</td> - <td class="headerValue" width="20%">36</td> - </tr> - </table> - </td> - </tr> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - </table> - - <table cellpadding=0 cellspacing=0 border=0> - <tr> - <td><br></td> - </tr> - <tr> - <td><pre class="source"> -<span class="lineNum"> 1 </span> : // -*- C++ -*- -<span class="lineNum"> 2 </span> : #include <ept/test.h> -<span class="lineNum"> 3 </span> : #include <ept/core/list.h> -<span class="lineNum"> 4 </span> : #include <ept/core/xapian.h> -<span class="lineNum"> 5 </span> : -<span class="lineNum"> 6 </span> : // TODO temporary, for building test database -<span class="lineNum"> 7 </span> : #include <ept/apt/apt.h> -<span class="lineNum"> 8 </span> : #include <ept/textsearch/textsearch.h> -<span class="lineNum"> 9 </span> : #include <ept/textsearch/maint/path.h> -<span class="lineNum"> 10 </span> : -<span class="lineNum"> 11 </span> : using namespace ept; -<span class="lineNum"> 12 </span> : using namespace core; -<span class="lineNum"> 13 </span> : -<span class="lineNum"> 14 </span> : namespace ept { -<span class="lineNum"> 15 </span> : namespace textsearch { -<span class="lineNum"> 16 </span> : extern size_t max_index; -<span class="lineNum"> 17 </span> : } -<span class="lineNum"> 18 </span> : } -<span class="lineNum"> 19 </span> : -<span class="lineNum"> 20 </span><span class="lineCov"> 4 : struct XapianTestEnvironment : AptTestEnvironment {</span> -<span class="lineNum"> 21 </span> : textsearch::Path::OverrideIndexDir oid; -<span class="lineNum"> 22 </span> : textsearch::TextSearch textsearch; -<span class="lineNum"> 23 </span> : apt::Apt apt; -<span class="lineNum"> 24 </span><span class="lineCov"> 4 : XapianTestEnvironment()</span> -<span class="lineNum"> 25 </span><span class="lineCov"> 4 : : oid( TEST_ENV_DIR "xapian" )</span> -<span class="lineNum"> 26 </span> : { -<span class="lineNum"> 27 </span><span class="lineCov"> 4 : ept::textsearch::max_index = 1000;</span> -<span class="lineNum"> 28 </span><span class="lineCov"> 4 : textsearch.rebuildIfNeeded(apt);</span> -<span class="lineNum"> 29 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 30 </span> : }; -<span class="lineNum"> 31 </span> : -<span class="lineNum"> 32 </span><span class="lineCov"> 4 : struct TestXapian : XapianTestEnvironment {</span> -<span class="lineNum"> 33 </span> : xapian::Source xap; -<span class="lineNum"> 34 </span> : xapian::Query query; -<span class="lineNum"> 35 </span> : -<span class="lineNum"> 36 </span><span class="lineCov"> 4 : TestXapian() : query( xap.db() )</span> -<span class="lineNum"> 37 </span> : { -<span class="lineNum"> 38 </span><span class="lineCov"> 4 : query = xap.query( "sgml tool" );</span> -<span class="lineNum"> 39 </span><span class="lineCov"> 4 : }</span> -<span class="lineNum"> 40 </span> : -<span class="lineNum"> 41 </span><span class="lineCov"> 1 : Test enquire() {</span> -<span class="lineNum"> 42 </span><span class="lineCov"> 1 : query.updateEnquire();</span> -<span class="lineNum"> 43 </span><span class="lineCov"> 1 : Xapian::MSet matches = query.m_enq.get_mset(0, 100);</span> -<span class="lineNum"> 44 </span><span class="lineCov"> 1 : assert( matches.size() > 0 );</span> -<span class="lineNum"> 45 </span><span class="lineCov"> 2 : assert_eq( matches.begin().get_document().get_data(), "psgml" );</span> -<span class="lineNum"> 46 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 47 </span> : -<span class="lineNum"> 48 </span><span class="lineCov"> 1 : Test listCount() {</span> -<span class="lineNum"> 49 </span><span class="lineCov"> 1 : xapian::List l( query.results() );</span> -<span class="lineNum"> 50 </span><span class="lineCov"> 1 : Xapian::MSet matches = query.m_enq.get_mset(0, 6000);</span> -<span class="lineNum"> 51 </span><span class="lineCov"> 1 : assert_eq( list::count( l ), matches.size() );</span> -<span class="lineNum"> 52 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 53 </span> : -<span class="lineNum"> 54 </span> : template< typename List > -<span class="lineNum"> 55 </span><span class="lineCov"> 1 : void checkXapianList( List l, Xapian::MSet m ) {</span> -<span class="lineNum"> 56 </span><span class="lineCov"> 1 : Xapian::MSet::const_iterator i = m.begin();</span> -<span class="lineNum"> 57 </span><span class="lineCov"> 16 : while (! l.empty() ) {</span> -<span class="lineNum"> 58 </span><span class="lineCov"> 14 : assert_eq( l.token().package(), i.get_document().get_data() );</span> -<span class="lineNum"> 59 </span><span class="lineCov"> 14 : l = l.tail();</span> -<span class="lineNum"> 60 </span><span class="lineCov"> 15 : ++ i;</span> -<span class="lineNum"> 61 </span> : } -<span class="lineNum"> 62 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 63 </span> : -<span class="lineNum"> 64 </span><span class="lineCov"> 1 : Test list() {</span> -<span class="lineNum"> 65 </span><span class="lineCov"> 1 : xapian::List l( query.results() );</span> -<span class="lineNum"> 66 </span><span class="lineCov"> 1 : Xapian::MSet matches = query.m_enq.get_mset(0, 6000);</span> -<span class="lineNum"> 67 </span><span class="lineCov"> 1 : checkXapianList( l, matches );</span> -<span class="lineNum"> 68 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 69 </span> : -<span class="lineNum"> 70 </span><span class="lineCov"> 1 : Test checkQuery() {</span> -<span class="lineNum"> 71 </span><span class="lineCov"> 1 : assert_eq( xap.query( "sgml tool" ).results().token().package(), "psgml" );</span> -<span class="lineNum"> 72 </span><span class="lineCov"> 1 : }</span> -<span class="lineNum"> 73 </span> : -<span class="lineNum"> 74 </span> : }; -</pre> - </td> - </tr> - </table> - <br> - - <table width="100%" border=0 cellspacing=0 cellpadding=0> - <tr><td class="ruler"><img src="../../glass.png" width=3 height=3 alt=""></td></tr> - <tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr> - </table> - <br> - -</body> -</html> |