1 //===-- FlagsTest.cpp -------------------===---------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #include "gtest/gtest.h"
12 #include "lldb/Utility/Flags.h"
14 using namespace lldb_private;
20 eAllFlags = (eFlag0 | eFlag1 | eFlag2)
23 TEST(Flags, GetBitSize) {
25 // Methods like ClearCount depend on this specific value, so we test
27 EXPECT_EQ(32U, f.GetBitSize());
33 EXPECT_EQ(0x3U, f.Get());
34 EXPECT_EQ(2U, f.SetCount());
40 EXPECT_EQ(2U, f.SetCount());
43 EXPECT_EQ(1U, f.SetCount());
46 EXPECT_EQ(0U, f.SetCount());
52 EXPECT_FALSE(f.AllSet(eFlag0 | eFlag1));
55 EXPECT_FALSE(f.AllSet(eFlag0 | eFlag1));
58 EXPECT_TRUE(f.AllSet(eFlag0 | eFlag1));
61 EXPECT_FALSE(f.AllSet(eFlag0 | eFlag1));
64 EXPECT_FALSE(f.AllSet(eFlag0 | eFlag1));
70 EXPECT_FALSE(f.AnySet(eFlag0 | eFlag1));
73 EXPECT_TRUE(f.AnySet(eFlag0 | eFlag1));
76 EXPECT_TRUE(f.AnySet(eFlag0 | eFlag1));
79 EXPECT_TRUE(f.AnySet(eFlag0 | eFlag1));
82 EXPECT_FALSE(f.AnySet(eFlag0 | eFlag1));
88 EXPECT_FALSE(f.Test(eFlag0));
89 EXPECT_FALSE(f.Test(eFlag1));
90 EXPECT_FALSE(f.Test(eFlag2));
93 EXPECT_TRUE(f.Test(eFlag0));
94 EXPECT_FALSE(f.Test(eFlag1));
95 EXPECT_FALSE(f.Test(eFlag2));
98 EXPECT_TRUE(f.Test(eFlag0));
99 EXPECT_TRUE(f.Test(eFlag1));
100 EXPECT_FALSE(f.Test(eFlag2));
103 EXPECT_FALSE(f.Test(eFlag0));
104 EXPECT_TRUE(f.Test(eFlag1));
105 EXPECT_FALSE(f.Test(eFlag2));
107 // FIXME: Should Flags assert on Test(eFlag0 | eFlag1) (more than one bit)?
110 TEST(Flags, AllClear) {
113 EXPECT_TRUE(f.AllClear(eFlag0 | eFlag1));
116 EXPECT_FALSE(f.AllClear(eFlag0 | eFlag1));
120 EXPECT_FALSE(f.AllClear(eFlag0 | eFlag1));
123 EXPECT_TRUE(f.AnyClear(eFlag0 | eFlag1));
126 TEST(Flags, AnyClear) {
128 EXPECT_TRUE(f.AnyClear(eFlag0 | eFlag1));
131 EXPECT_TRUE(f.AnyClear(eFlag0 | eFlag1));
135 EXPECT_FALSE(f.AnyClear(eFlag0 | eFlag1));
138 EXPECT_TRUE(f.AnyClear(eFlag0 | eFlag1));
141 EXPECT_TRUE(f.AnyClear(eFlag0 | eFlag1));
144 TEST(Flags, IsClear) {
147 EXPECT_TRUE(f.IsClear(eFlag0));
148 EXPECT_TRUE(f.IsClear(eFlag1));
151 EXPECT_FALSE(f.IsClear(eFlag0));
152 EXPECT_TRUE(f.IsClear(eFlag1));
155 EXPECT_FALSE(f.IsClear(eFlag0));
156 EXPECT_FALSE(f.IsClear(eFlag1));
159 EXPECT_TRUE(f.IsClear(eFlag0));
160 EXPECT_FALSE(f.IsClear(eFlag1));
163 EXPECT_TRUE(f.IsClear(eFlag0));
164 EXPECT_TRUE(f.IsClear(eFlag1));
167 TEST(Flags, ClearCount) {
169 EXPECT_EQ(32U, f.ClearCount());
172 EXPECT_EQ(31U, f.ClearCount());
175 EXPECT_EQ(31U, f.ClearCount());
178 EXPECT_EQ(30U, f.ClearCount());
181 EXPECT_EQ(29U, f.ClearCount());
184 TEST(Flags, SetCount) {
186 EXPECT_EQ(0U, f.SetCount());
189 EXPECT_EQ(1U, f.SetCount());
192 EXPECT_EQ(1U, f.SetCount());
195 EXPECT_EQ(2U, f.SetCount());
198 EXPECT_EQ(3U, f.SetCount());