diff options
Diffstat (limited to 'rep/ept/core/apt/action.h.gcov.html')
| -rw-r--r-- | rep/ept/core/apt/action.h.gcov.html | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/rep/ept/core/apt/action.h.gcov.html b/rep/ept/core/apt/action.h.gcov.html new file mode 100644 index 0000000..08b2810 --- /dev/null +++ b/rep/ept/core/apt/action.h.gcov.html @@ -0,0 +1,202 @@ +<!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> |
