From 87f2c680cbb30e9d804dd56dc39a18547b8f1153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Bylica?= Date: Wed, 24 Jul 2019 13:05:17 +0200 Subject: [PATCH] test: Bring back the unit tests of deprecated features --- test/unittests/CMakeLists.txt | 1 + test/unittests/test_deprecated.cpp | 50 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 test/unittests/test_deprecated.cpp diff --git a/test/unittests/CMakeLists.txt b/test/unittests/CMakeLists.txt index 957ad0d..200c253 100644 --- a/test/unittests/CMakeLists.txt +++ b/test/unittests/CMakeLists.txt @@ -12,6 +12,7 @@ add_executable( evmc-unittests loader_mock.h test_cpp.cpp + test_deprecated.cpp test_helpers.cpp test_instructions.cpp test_loader.cpp diff --git a/test/unittests/test_deprecated.cpp b/test/unittests/test_deprecated.cpp new file mode 100644 index 0000000..46539d9 --- /dev/null +++ b/test/unittests/test_deprecated.cpp @@ -0,0 +1,50 @@ +// EVMC: Ethereum Client-VM Connector API. +// Copyright 2019 The EVMC Authors. +// Licensed under the Apache License, Version 2.0. + +#include + +#include +#include +#include + +#pragma GCC diagnostic ignored "-Wdeprecated-declarations" + +TEST(helpers, fnv1a) +{ + const uint8_t text[] = {'E', 'V', 'M', 'C'}; + const auto h = fnv1a(text, sizeof(text)); + EXPECT_EQ(h, sizeof(size_t) == 8 ? 0x15e05d6d22fed89a : 0xffaa6a9a); +} + +TEST(helpers, is_zero) +{ + auto a = evmc_address{}; + EXPECT_TRUE(is_zero(a)); + a.bytes[0] = 1; + EXPECT_FALSE(is_zero(a)); + + auto b = evmc_bytes32{}; + EXPECT_TRUE(is_zero(b)); + b.bytes[0] = 1; + EXPECT_FALSE(is_zero(b)); +} + +TEST(helpers, maps) +{ + std::map addresses; + addresses[{}] = true; + ASSERT_EQ(addresses.size(), 1); + + std::unordered_map unordered_addresses; + unordered_addresses.emplace(*addresses.begin()); + EXPECT_EQ(unordered_addresses.size(), 1); + + std::map storage; + storage[{}] = true; + ASSERT_EQ(storage.size(), 1); + + std::unordered_map unordered_storage; + unordered_storage.emplace(*storage.begin()); + EXPECT_EQ(unordered_storage.size(), 1); +}