#include #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; }