diff options
| author | 2018-04-06 14:26:03 +0000 | |
|---|---|---|
| committer | 2018-04-06 14:26:03 +0000 | |
| commit | bdabc2f19ffb9e20600dad6e8a300842a7bda50e (patch) | |
| tree | c50e7b2e5449b074651bb82a58517a8ebc4a8cf7 /gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp | |
| parent | Print a 'p' flag for file descriptors that were opened after pledge(2). (diff) | |
| download | wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.tar.xz wireguard-openbsd-bdabc2f19ffb9e20600dad6e8a300842a7bda50e.zip | |
Import LLVM 6.0.1 release including clang, lld and lldb.
"where is the kaboom?" deraadt@
Diffstat (limited to 'gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp')
| -rw-r--r-- | gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp b/gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp new file mode 100644 index 00000000000..79929e33218 --- /dev/null +++ b/gnu/llvm/unittests/ExecutionEngine/Orc/SymbolStringPoolTest.cpp @@ -0,0 +1,48 @@ +//===----- SymbolStringPoolTest.cpp - Unit tests for SymbolStringPool -----===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/ExecutionEngine/Orc/SymbolStringPool.h" +#include "gtest/gtest.h" + +using namespace llvm; +using namespace llvm::orc; + +namespace { + +TEST(SymbolStringPool, UniquingAndComparisons) { + SymbolStringPool SP; + auto P1 = SP.intern("hello"); + + std::string S("hel"); + S += "lo"; + auto P2 = SP.intern(S); + + auto P3 = SP.intern("goodbye"); + + EXPECT_EQ(P1, P2) << "Failed to unique entries"; + EXPECT_NE(P1, P3) << "Inequal pooled symbol strings comparing equal"; + + // We want to test that less-than comparison of SymbolStringPtrs compiles, + // however we can't test the actual result as this is a pointer comparison and + // SymbolStringPtr doesn't expose the underlying address of the string. + (void)(P1 < P3); +} + +TEST(SymbolStringPool, ClearDeadEntries) { + SymbolStringPool SP; + { + auto P1 = SP.intern("s1"); + SP.clearDeadEntries(); + EXPECT_FALSE(SP.empty()) << "\"s1\" entry in pool should still be retained"; + } + SP.clearDeadEntries(); + EXPECT_TRUE(SP.empty()) << "pool should be empty"; +} + +} |
