Add Attn config option for clearing Attn Interrupts

Added attn config option
Added UT for attn config object
Added UT for cli that uses attn config object

Signed-off-by: austinfcui <austinfcui@gmail.com>
Change-Id: I0e30ebf4d94de676814bf5e173691c4d1ee362cb
diff --git a/test/test-attention.cpp b/test/test-attention.cpp
index f894535..2b33a6d 100644
--- a/test/test-attention.cpp
+++ b/test/test-attention.cpp
@@ -118,9 +118,7 @@
 
         EXPECT_NE(nullptr, target);
 
-        attr = std::numeric_limits<uint32_t>::max();
         attr = getTrgtType(target);
-
         EXPECT_EQ(TYPE_PROC, attr);
 
         attr = std::numeric_limits<uint32_t>::max();
@@ -142,7 +140,7 @@
     std::unique_ptr<Attention> pAttn;
     Config* config      = nullptr;
     pdbg_target* target = nullptr;
-    uint32_t attr;
+    uint32_t attr       = std::numeric_limits<uint32_t>::max();
 };
 
 TEST_F(AttentionTestProc, TestAttentionProc)
@@ -168,4 +166,37 @@
     EXPECT_EQ(false, config_tmp->getFlag(gAttnFlag));
     config_tmp->setFlag(gAttnFlag);
     EXPECT_EQ(true, config_tmp->getFlag(gAttnFlag));
+}
+
+TEST(AttnConfig, TestAttnConfig)
+{
+    Config* config = new Config();
+
+    // Test clearFlagAll() function.
+    config->clearFlagAll();
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enVital));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enCheckstop));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enTerminate));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enBreakpoints));
+    // The dfltTi flag is not impacted.
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::dfltTi));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enClrAttnIntr));
+
+    // Test setFlagAll() function.
+    config->setFlagAll();
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enVital));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enCheckstop));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enTerminate));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enBreakpoints));
+    // The dfltTi flag is not impacted.
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::dfltTi));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enClrAttnIntr));
+
+    // Test setFlag() and getFlag() functions.
+    // Only test one flag.
+    config->clearFlagAll();
+    config->setFlag(enVital);
+    EXPECT_EQ(true, config->getFlag(enVital));
+
+    delete config;
 }
\ No newline at end of file