From e9e768a28809c3a026e2b4419c26d765d755a2a7 Mon Sep 17 00:00:00 2001 From: Benjamin Sergeant Date: Tue, 7 Jul 2020 21:15:34 -0700 Subject: [PATCH] better unittest for IXWebSocketPerMessageDeflateCompressor --- makefile | 6 ++- ...bSocketPerMessageDeflateCompressorTest.cpp | 42 ++++++++++++------- 2 files changed, 30 insertions(+), 18 deletions(-) diff --git a/makefile b/makefile index e1ed7c34..dfae0dc9 100644 --- a/makefile +++ b/makefile @@ -104,8 +104,10 @@ test_server: # env TEST=Websocket_server make test # env TEST=Websocket_chat make test # env TEST=heartbeat make test -test: - mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_WS=1 -DUSE_TEST=1 .. ; ninja install) +build_test: + mkdir -p build && (cd build ; cmake -GNinja -DCMAKE_BUILD_TYPE=Debug -DUSE_TLS=1 -DUSE_TEST=1 .. ; ninja install) + +test: build_test (cd test ; python2.7 run.py -r) test_make: diff --git a/test/IXWebSocketPerMessageDeflateCompressorTest.cpp b/test/IXWebSocketPerMessageDeflateCompressorTest.cpp index f73ea7cd..d74e3140 100644 --- a/test/IXWebSocketPerMessageDeflateCompressorTest.cpp +++ b/test/IXWebSocketPerMessageDeflateCompressorTest.cpp @@ -1,7 +1,9 @@ /* - * IXSocketTest.cpp - * Author: Korchynskyi Dmytro - * Copyright (c) 2019 Machine Zone. All rights reserved. + * IXWebSocketPerMessageDeflateCodecTest.cpp + * Author: Benjamin Sergeant + * Copyright (c) 2020 Machine Zone. All rights reserved. + * + * make build_test && build/test/ixwebsocket_unittest per-message-deflate-codec */ #include "IXTest.h" @@ -14,22 +16,30 @@ using namespace ix; namespace ix { + std::string compressAndDecompress(const std::string& a) + { + std::string b, c; + + WebSocketPerMessageDeflateCompressor compressor; + compressor.init(11, true); + compressor.compress(a, b); + + WebSocketPerMessageDeflateDecompressor decompressor; + decompressor.init(11, true); + decompressor.decompress(b, c); + + return c; + } + TEST_CASE("per-message-deflate-codec", "[zlib]") { - SECTION("http://google.com") + SECTION("blah") { - std::string a = "foobarbaz"; - std::string b, c; - - WebSocketPerMessageDeflateCompressor compressor; - compressor.compress(a, b); - - WebSocketPerMessageDeflateDecompressor decompressor; - decompressor.decompress(b, c); - - REQUIRE(a != b); - REQUIRE(b != c); - REQUIRE(a == c); + REQUIRE(compressAndDecompress("") == ""); + REQUIRE(compressAndDecompress("foo") == "foo"); + REQUIRE(compressAndDecompress("bar") == "bar"); + REQUIRE(compressAndDecompress("asdcaseqw`21897dehqwed") == "asdcaseqw`21897dehqwed"); + REQUIRE(compressAndDecompress("/usr/local/include/ixwebsocket/IXSocketAppleSSL.h") == "/usr/local/include/ixwebsocket/IXSocketAppleSSL.h"); } }