diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-09 08:03:39 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-09 08:03:39 +0000 |
commit | 31a2bfeeba9a52f4dc651672aeeee9a66edae3b3 (patch) | |
tree | 6b76f6a7b0ad9b148f6587c0289032a94e2c3e6a /net/socket/socket_test_util.h | |
parent | 2a5ab280301194dd5594c9f76460b20a6755e499 (diff) | |
download | chromium_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.h | 29 |
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); }; |