diff --git a/attn/attn_config.cpp b/attn/attn_config.cpp
index eae96f9..98ec388 100644
--- a/attn/attn_config.cpp
+++ b/attn/attn_config.cpp
@@ -29,6 +29,7 @@
     iv_flags.set(enCheckstop);
     iv_flags.set(enTerminate);
     iv_flags.set(enBreakpoints);
+    iv_flags.set(enClrAttnIntr);
 }
 
 /** @brief Clear configuration flag */
@@ -44,6 +45,7 @@
     iv_flags.reset(enCheckstop);
     iv_flags.reset(enTerminate);
     iv_flags.reset(enBreakpoints);
+    iv_flags.reset(enClrAttnIntr);
 }
 
 } // namespace attn
diff --git a/attn/attn_config.hpp b/attn/attn_config.hpp
index 7aad393..98a6606 100644
--- a/attn/attn_config.hpp
+++ b/attn/attn_config.hpp
@@ -12,6 +12,7 @@
     enTerminate   = 2,
     enBreakpoints = 3,
     dfltTi        = 4,
+    enClrAttnIntr = 5,
     lastFlag
 };
 
@@ -40,10 +41,6 @@
     /** @brief Clear all configuration flags */
     void clearFlagAll();
 
-    /** @brief Set state of all configuration data */
-    void setConfig(bool i_vital, bool i_checkstop, bool i_terminate,
-                   bool i_breakpoints);
-
   private:
     std::bitset<lastFlag> iv_flags; // configuration flags
 };
diff --git a/attn/attn_handler.cpp b/attn/attn_handler.cpp
index 59dfab3..3252078 100644
--- a/attn/attn_handler.cpp
+++ b/attn/attn_handler.cpp
@@ -78,8 +78,12 @@
  */
 void attnHandler(Config* i_config)
 {
-    // Clear attention interrupts that may still be active (MPIPL)
-    clearAttnInterrupts();
+    // Check if enClrAttnIntr is enabled
+    if (true == i_config->getFlag(enClrAttnIntr))
+    {
+        // Clear attention interrupts that may still be active (MPIPL)
+        clearAttnInterrupts();
+    }
 
     // Vector of active attentions to be handled
     std::vector<Attention> active_attentions;
diff --git a/cli.cpp b/cli.cpp
index 8ab8023..8129821 100644
--- a/cli.cpp
+++ b/cli.cpp
@@ -98,5 +98,18 @@
         {
             o_config->setFlag(attn::dfltTi);
         }
+
+        setting = getCliSetting(i_begin, i_end, "--clrattnintr");
+        if (nullptr != setting)
+        {
+            if (std::string("off") == setting)
+            {
+                o_config->clearFlag(attn::enClrAttnIntr);
+            }
+            if (std::string("on") == setting)
+            {
+                o_config->setFlag(attn::enClrAttnIntr);
+            }
+        }
     }
 }
diff --git a/test/meson.build b/test/meson.build
index e9b6e6e..0517032 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -65,6 +65,7 @@
   'test-pll-unlock',
   'test-resolution',
   'test-tod-step-check-fault',
+  'test-cli',
 ]
 
 foreach tc : testcases
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
diff --git a/test/test-cli.cpp b/test/test-cli.cpp
new file mode 100644
index 0000000..08595e4
--- /dev/null
+++ b/test/test-cli.cpp
@@ -0,0 +1,94 @@
+#include <cli.hpp>
+
+#include "gtest/gtest.h"
+
+using namespace attn;
+
+TEST(TestCli, TestCliOptAll)
+{
+
+    // Test --all on options
+    Config* config = new Config();
+    char* argv[2];
+    int i     = 0;
+    argv[i++] = (char*)"--all";
+    argv[i++] = (char*)"on";
+    parseConfig(argv, argv + i, config);
+    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 cleared by default and is not updated in the function.
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::dfltTi));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enClrAttnIntr));
+
+    // Test --all off options
+    // Set the dfltTi flag to default value.
+    config->clearFlag(dfltTi);
+    i         = 0;
+    argv[i++] = (char*)"--all";
+    argv[i++] = (char*)"off";
+    parseConfig(argv, argv + i, config);
+    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 same, the dfltTi flag is not updated in the function.
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::dfltTi));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enClrAttnIntr));
+    delete config;
+}
+
+TEST(TestCli, TestCliNonAll)
+{
+    // Test options with on switch.
+    Config* config = new Config();
+    char* argv[11];
+    int i     = 0;
+    argv[i++] = (char*)"--vital";
+    argv[i++] = (char*)"on";
+    argv[i++] = (char*)"--checkstop";
+    argv[i++] = (char*)"on";
+    argv[i++] = (char*)"--terminate";
+    argv[i++] = (char*)"on";
+    argv[i++] = (char*)"--breakpoints";
+    argv[i++] = (char*)"on";
+    argv[i++] = (char*)"--clrattnintr";
+    argv[i++] = (char*)"on";
+    // The --defaultti option does not have on/off switch.
+    // If this option is specified, it is enabled.
+    argv[i++] = (char*)"--defaultti";
+
+    parseConfig(argv, argv + i, config);
+    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));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::enClrAttnIntr));
+    EXPECT_EQ(true, config->getFlag(AttentionFlag::dfltTi));
+
+    // Test options with off switch.
+    // Set the dfltTi flag to default value.
+    config->clearFlag(dfltTi);
+    i         = 0;
+    argv[i++] = (char*)"--vital";
+    argv[i++] = (char*)"off";
+    argv[i++] = (char*)"--checkstop";
+    argv[i++] = (char*)"off";
+    argv[i++] = (char*)"--terminate";
+    argv[i++] = (char*)"off";
+    argv[i++] = (char*)"--breakpoints";
+    argv[i++] = (char*)"off";
+    argv[i++] = (char*)"--clrattnintr";
+    argv[i++] = (char*)"off";
+
+    parseConfig(argv, argv + i, config);
+    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));
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::enClrAttnIntr));
+    // If the --defaultti option is not specified, it is disabled by default.
+    EXPECT_EQ(false, config->getFlag(AttentionFlag::dfltTi));
+    delete config;
+}
