mirror of
https://github.com/OpenVPN/openvpn3.git
synced 2024-09-20 12:12:15 +02:00
[test/misc] Convert streq test to unittest
Signed-off-by: Arne Schwabe <arne@openvpn.net>
This commit is contained in:
parent
775f1313a2
commit
f2cfd225ba
@ -1,51 +0,0 @@
|
||||
// TEST : {"cmd": "./go streq"}
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include <openvpn/log/logsimple.hpp>
|
||||
#include <openvpn/common/size.hpp>
|
||||
#include <openvpn/common/exception.hpp>
|
||||
|
||||
#include <openvpn/common/strneq.hpp>
|
||||
|
||||
using namespace openvpn;
|
||||
|
||||
void test(const std::string& s1, const std::string& s2, const bool should_eq)
|
||||
{
|
||||
const bool neq = crypto::str_neq(s1, s2);
|
||||
OPENVPN_LOG("'" << s1 << "' cmp '" << s2 << "' " << (neq ? "NEQ" : "EQ"));
|
||||
if (neq == should_eq)
|
||||
throw Exception("fail");
|
||||
}
|
||||
|
||||
void test_logic()
|
||||
{
|
||||
test("", "", true);
|
||||
test("x", "", false);
|
||||
test("", "x", false);
|
||||
test("foo", "foo", true);
|
||||
test("foobar", "foo", false);
|
||||
test("foo", "foobar", false);
|
||||
}
|
||||
|
||||
void test_timing()
|
||||
{
|
||||
size_t count = 0;
|
||||
for (size_t i = 0; i < 1000000000; ++i)
|
||||
count += crypto::str_neq("foobarxxx", "foobar");
|
||||
OPENVPN_LOG(count);
|
||||
}
|
||||
|
||||
int main(int /*argc*/, char* /*argv*/[])
|
||||
{
|
||||
try {
|
||||
test_logic();
|
||||
//test_timing();
|
||||
}
|
||||
catch (const std::exception& e)
|
||||
{
|
||||
std::cerr << "Exception: " << e.what() << std::endl;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
31
test/unittests/test_streq.cpp
Normal file
31
test/unittests/test_streq.cpp
Normal file
@ -0,0 +1,31 @@
|
||||
#include "test_common.h"
|
||||
#include <iostream>
|
||||
|
||||
#include <openvpn/common/size.hpp>
|
||||
#include <openvpn/common/exception.hpp>
|
||||
|
||||
#include <openvpn/common/strneq.hpp>
|
||||
|
||||
using namespace openvpn;
|
||||
|
||||
void test(const std::string &s1, const std::string &s2, const bool should_eq) {
|
||||
const bool neq = crypto::str_neq(s1, s2);
|
||||
//OPENVPN_LOG("'" << s1 << "' cmp '" << s2 << "' " << (neq ? "NEQ" : "EQ"));
|
||||
ASSERT_NE(neq, should_eq);
|
||||
}
|
||||
|
||||
TEST(misc, streq) {
|
||||
test("", "", true);
|
||||
test("x", "", false);
|
||||
test("", "x", false);
|
||||
test("foo", "foo", true);
|
||||
test("foobar", "foo", false);
|
||||
test("foo", "foobar", false);
|
||||
}
|
||||
|
||||
void test_timing() {
|
||||
size_t count = 0;
|
||||
for (size_t i = 0; i < 1000000000; ++i)
|
||||
count += crypto::str_neq("foobarxxx", "foobar");
|
||||
OPENVPN_LOG(count);
|
||||
}
|
Loading…
Reference in New Issue
Block a user