Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1506)

Unified Diff: net/websockets/websocket_frame_test.cc

Issue 502353002: Move WebSocket masking benchmarks to net_perftests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix indentation in net.gyp. Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/websockets/websocket_frame_perftest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/websockets/websocket_frame_test.cc
diff --git a/net/websockets/websocket_frame_test.cc b/net/websockets/websocket_frame_test.cc
index b37dbb330014d16b324e0724fd7b1357b4ed85fe..cd76ccc9ef56642cb30a31ecfcb636112963d3a1 100644
--- a/net/websockets/websocket_frame_test.cc
+++ b/net/websockets/websocket_frame_test.cc
@@ -5,29 +5,17 @@
#include "net/websockets/websocket_frame.h"
#include <algorithm>
-#include <string>
#include <vector>
#include "base/basictypes.h"
-#include "base/command_line.h"
-#include "base/logging.h"
#include "base/memory/aligned_memory.h"
-#include "base/strings/string_number_conversions.h"
-#include "base/strings/stringprintf.h"
-#include "base/time/time.h"
#include "net/base/net_errors.h"
#include "testing/gtest/include/gtest/gtest.h"
-// Run
-// out/Release/net_unittests --websocket-mask-iterations=100000
-// --gtest_filter='WebSocketFrameTestMaskBenchmark.*'
-// to benchmark the MaskWebSocketFramePayload() function.
-static const char kBenchmarkIterations[] = "websocket-mask-iterations";
-static const int kDefaultIterations = 10;
-static const int kLongPayloadSize = 1 << 16;
-
namespace net {
+namespace {
+
TEST(WebSocketFrameHeaderTest, FrameLengths) {
struct TestCase {
const char* frame_header;
@@ -342,64 +330,6 @@ TEST(WebSocketFrameTest, MaskPayloadAlignment) {
}
}
-class WebSocketFrameTestMaskBenchmark : public testing::Test {
- public:
- WebSocketFrameTestMaskBenchmark() : iterations_(kDefaultIterations) {}
-
- virtual void SetUp() {
- std::string iterations(
- base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
- kBenchmarkIterations));
- int benchmark_iterations = 0;
- if (!iterations.empty() &&
- base::StringToInt(iterations, &benchmark_iterations)) {
- iterations_ = benchmark_iterations;
- }
- }
-
- void Benchmark(const char* const payload, size_t size) {
- std::vector<char> scratch(payload, payload + size);
- static const char kMaskingKey[] = "\xFE\xED\xBE\xEF";
- COMPILE_ASSERT(
- arraysize(kMaskingKey) == WebSocketFrameHeader::kMaskingKeyLength + 1,
- incorrect_masking_key_size);
- WebSocketMaskingKey masking_key;
- std::copy(kMaskingKey,
- kMaskingKey + WebSocketFrameHeader::kMaskingKeyLength,
- masking_key.key);
- LOG(INFO) << "Benchmarking MaskWebSocketFramePayload() for " << iterations_
- << " iterations";
- using base::TimeTicks;
- TimeTicks start = TimeTicks::HighResNow();
- for (int x = 0; x < iterations_; ++x) {
- MaskWebSocketFramePayload(
- masking_key, x % size, &scratch.front(), scratch.size());
- }
- double total_time_ms =
- 1000 * (TimeTicks::HighResNow() - start).InMillisecondsF() /
- iterations_;
- LOG(INFO) << "Payload size " << size
- << base::StringPrintf(" took %.03f microseconds per iteration",
- total_time_ms);
- }
-
- private:
- int iterations_;
-
- DISALLOW_COPY_AND_ASSIGN(WebSocketFrameTestMaskBenchmark);
-};
-
-TEST_F(WebSocketFrameTestMaskBenchmark, BenchmarkMaskShortPayload) {
- static const char kShortPayload[] = "Short Payload";
- Benchmark(kShortPayload, arraysize(kShortPayload));
-}
-
-TEST_F(WebSocketFrameTestMaskBenchmark, BenchmarkMaskLongPayload) {
- scoped_ptr<char[]> payload(new char[kLongPayloadSize]);
- std::fill(payload.get(), payload.get() + kLongPayloadSize, 'a');
- Benchmark(payload.get(), kLongPayloadSize);
-}
-
// "IsKnownDataOpCode" is currently implemented in an "obviously correct"
// manner, but we test is anyway in case it changes to a more complex
// implementation in future.
@@ -459,4 +389,6 @@ TEST(WebSocketFrameHeaderTest, IsKnownControlOpCode) {
EXPECT_FALSE(Frame::IsKnownControlOpCode(0xFF));
}
+} // namespace
+
} // namespace net
« no previous file with comments | « net/websockets/websocket_frame_perftest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698