summaryrefslogtreecommitdiff
path: root/test/gtest/lattices.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/gtest/lattices.cpp')
-rw-r--r--test/gtest/lattices.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/gtest/lattices.cpp b/test/gtest/lattices.cpp
index f06ba612b..d72e088fc 100644
--- a/test/gtest/lattices.cpp
+++ b/test/gtest/lattices.cpp
@@ -15,6 +15,7 @@
*/
#include "analysis/lattices/bool.h"
+#include "analysis/lattices/int.h"
#include "gtest/gtest.h"
using namespace wasm;
@@ -48,3 +49,38 @@ TEST(BoolLattice, Join) {
EXPECT_FALSE(lattice.join(elem, true));
ASSERT_TRUE(elem);
}
+
+TEST(IntLattice, GetBottom) {
+ analysis::Int32 int32;
+ EXPECT_EQ(int32.getBottom(), (int32_t)(1ll << 31));
+
+ analysis::Int64 int64;
+ EXPECT_EQ(int64.getBottom(), (int64_t)(1ll << 63));
+
+ analysis::UInt32 uint32;
+ EXPECT_EQ(uint32.getBottom(), (uint32_t)0);
+
+ analysis::UInt64 uint64;
+ EXPECT_EQ(uint64.getBottom(), (uint32_t)0);
+}
+
+TEST(IntLattice, Compare) {
+ analysis::Int32 int32;
+ EXPECT_EQ(int32.compare(-5, 42), analysis::LESS);
+ EXPECT_EQ(int32.compare(42, -5), analysis::GREATER);
+ EXPECT_EQ(int32.compare(42, 42), analysis::EQUAL);
+}
+
+TEST(IntLattice, Join) {
+ analysis::Int32 int32;
+ int elem = 0;
+
+ EXPECT_FALSE(int32.join(elem, -10));
+ ASSERT_EQ(elem, 0);
+
+ EXPECT_FALSE(int32.join(elem, 0));
+ ASSERT_EQ(elem, 0);
+
+ EXPECT_TRUE(int32.join(elem, 100));
+ ASSERT_EQ(elem, 100);
+}