Changeset 649 for trunk


Ignore:
Timestamp:
Jun 8, 2008, 4:46:28 AM (13 years ago)
Author:
Peter Johansson
Message:

fixes #313

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/lib/Stats.cc

    r644 r649  
    266266        ss >> rev;
    267267        ss >> count;
     268        assert(rev<=revision_);
    268269        if (!count)
    269270          break;
    270         if (rev+1 < static_cast<svn_revnum_t>(vec.size()) )
    271           vec.resize(rev+1);
     271        vec.resize(std::max(vec.size(),static_cast<size_t>(rev+1)));
    272272        vec[rev]=count;
    273273      }
     
    297297    }
    298298    getline(is, str);
    299     if (str!=cache_check_str())
     299    if (str!=cache_check_str()) {
    300300      return false;
     301    }
    301302    for (size_t i=0; i<stats_.size(); ++i){
    302303      load(is, stats_[i]);
    303304      getline(is, str);
    304       if (str!=cache_check_str())
     305      if (str!=cache_check_str()) {
    305306        return false;
     307      }
    306308    }
    307309    return true;
  • trunk/test/stats_test.cc

    r634 r649  
    3838#include <numeric>
    3939#include <string>
     40#include <sstream>
    4041#include <vector>
    4142
     
    5051  bool test_classic(void);
    5152  bool test_base_class(const Stats&);
     53  bool test_cache(const Stats&);
    5254 
    5355}} // end of namespace svndigest and theplu
     
    110112
    111113 
     114  bool test_cache(const Stats& stats)
     115  {
     116    std::stringstream out;
     117    stats.print(out);
     118    std::stringstream in(out.str());
     119    ClassicStats stats2(path());
     120    assert(in.good());
     121    if (!stats2.load_cache(in)){
     122      std::cout << "load_cache() failed\n";
     123      return false;
     124    }
     125
     126    std::stringstream out2;
     127    stats2.print(out2);
     128   
     129    if (out.str()!=out2.str()) {
     130      std::cout << "test_cache() failed\n";
     131      return false;
     132    }
     133    return true;
     134  }
     135
     136
    112137  bool test_classic(void)
    113138  {
     
    181206  bool test_base_class(const Stats& s)
    182207  {
     208    if (!test_cache(s))
     209      return false;
    183210    if (s.code()+s.comments()+s.empty()!=s.lines()){
    184211      std::cerr << "Code plus comments plus empty do not add up to lines\n";
Note: See TracChangeset for help on using the changeset viewer.