summaryrefslogtreecommitdiffstats
path: root/net/socket/socket_test_util.h
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-09 08:03:39 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-02-09 08:03:39 +0000
commit31a2bfeeba9a52f4dc651672aeeee9a66edae3b3 (patch)
tree6b76f6a7b0ad9b148f6587c0289032a94e2c3e6a /net/socket/socket_test_util.h
parent2a5ab280301194dd5594c9f76460b20a6755e499 (diff)
downloadchromium_src-31a2bfeeba9a52f4dc651672aeeee9a66edae3b3.zip
chromium_src-31a2bfeeba9a52f4dc651672aeeee9a66edae3b3.tar.gz
chromium_src-31a2bfeeba9a52f4dc651672aeeee9a66edae3b3.tar.bz2
Add bounds checking to StaticSocketDataProvider, to make tests more reliable
when they fail. TEST=net_unittests BUG=27567 Review URL: http://codereview.chromium.org/582020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38453 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket/socket_test_util.h')
-rw-r--r--net/socket/socket_test_util.h29
1 files changed, 17 insertions, 12 deletions
diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h
index 90b4019..5e1fe65 100644
--- a/net/socket/socket_test_util.h
+++ b/net/socket/socket_test_util.h
@@ -121,28 +121,33 @@ class SocketDataProvider {
// writes.
class StaticSocketDataProvider : public SocketDataProvider {
public:
- StaticSocketDataProvider() : reads_(NULL), read_index_(0),
- writes_(NULL), write_index_(0) {}
- StaticSocketDataProvider(MockRead* r, MockWrite* w) : reads_(r),
- read_index_(0), writes_(w), write_index_(0) {}
+ StaticSocketDataProvider() : reads_(NULL), read_index_(0), read_count_(0),
+ writes_(NULL), write_index_(0), write_count_(0) {}
+ StaticSocketDataProvider(MockRead* reads, size_t reads_count,
+ MockWrite* writes, size_t writes_count)
+ : reads_(reads),
+ read_index_(0),
+ read_count_(reads_count),
+ writes_(writes),
+ write_index_(0),
+ write_count_(writes_count) {
+ }
// SocketDataProvider methods:
virtual MockRead GetNextRead();
virtual MockWriteResult OnWrite(const std::string& data);
virtual void Reset();
- // If the test wishes to verify that all data is consumed, it can include
- // a EOF MockRead or MockWrite, which is a zero-length Read or Write.
- // The test can then call at_read_eof() or at_write_eof() to verify that
- // all data has been consumed.
- bool at_read_eof() const { return reads_[read_index_].data_len == 0; }
- bool at_write_eof() const { return writes_[write_index_].data_len == 0; }
+ bool at_read_eof() const { return read_index_ >= read_count_; }
+ bool at_write_eof() const { return write_index_ >= write_count_; }
private:
MockRead* reads_;
- int read_index_;
+ size_t read_index_;
+ size_t read_count_;
MockWrite* writes_;
- int write_index_;
+ size_t write_index_;
+ size_t write_count_;
DISALLOW_COPY_AND_ASSIGN(StaticSocketDataProvider);
};