launch_daemon: Fixed empty on/if parsing.

* An extra empty message was mistakenly created.
This commit is contained in:
Axel Dörfler
2015-07-22 20:45:02 +02:00
parent f7b5ecfe00
commit 95d93d2ea9
3 changed files with 41 additions and 2 deletions
+13 -1
View File
@@ -15,7 +15,7 @@ public:
const driver_parameter& parameter, const char* name, uint32 type,
BMessage& target)
{
if (parameter.parameter_count != 0)
if (parameter.parameter_count != 0 || strcmp(name, Name()) == 0)
return B_OK;
BMessage message;
@@ -36,6 +36,8 @@ protected:
}
return target.AddMessage(condition, &args);
}
virtual const char* Name() = 0;
};
@@ -75,6 +77,11 @@ public:
message.AddString("args", parameter.values[index]);
return target.AddMessage(parameter.name, &message);
}
const char* Name()
{
return "if";
}
};
@@ -95,6 +102,11 @@ public:
message.AddString("args", parameter.values[index]);
return target.AddMessage(parameter.name, &message);
}
const char* Name()
{
return "on";
}
};
@@ -30,6 +30,16 @@ SettingsParserTest::~SettingsParserTest()
// #pragma mark - conditions
void
SettingsParserTest::TestConditionsEmpty()
{
BMessage message;
CPPUNIT_ASSERT_EQUAL(B_OK, _ParseCondition("if {\n"
"}\n", message));
CPPUNIT_ASSERT(message.IsEmpty());
}
void
SettingsParserTest::TestConditionsMultiLine()
{
@@ -177,13 +187,22 @@ SettingsParserTest::TestConditionsMultiLineNot()
BMessage args;
CPPUNIT_ASSERT_EQUAL(B_OK, subMessage.FindMessage("safemode", &args));
CPPUNIT_ASSERT(args.IsEmpty());
}
// #pragma mark - events
void
SettingsParserTest::TestEventsEmpty()
{
BMessage message;
CPPUNIT_ASSERT_EQUAL(B_OK, _ParseEvent("on {\n"
"}\n", message));
CPPUNIT_ASSERT(message.IsEmpty());
}
void
SettingsParserTest::TestEventsMultiLine()
{
@@ -395,6 +414,9 @@ SettingsParserTest::AddTests(BTestSuite& parent)
CppUnit::TestSuite& suite = *new CppUnit::TestSuite("SettingsParserTest");
// Conditions
suite.addTest(new CppUnit::TestCaller<SettingsParserTest>(
"SettingsParserTest::TestConditionsEmpty",
&SettingsParserTest::TestConditionsEmpty));
suite.addTest(new CppUnit::TestCaller<SettingsParserTest>(
"SettingsParserTest::TestConditionsMultiLine",
&SettingsParserTest::TestConditionsMultiLine));
@@ -421,6 +443,9 @@ SettingsParserTest::AddTests(BTestSuite& parent)
&SettingsParserTest::TestConditionsMultiLineNot));
// Events
suite.addTest(new CppUnit::TestCaller<SettingsParserTest>(
"SettingsParserTest::TestEventsEmpty",
&SettingsParserTest::TestEventsEmpty));
suite.addTest(new CppUnit::TestCaller<SettingsParserTest>(
"SettingsParserTest::TestEventsMultiLine",
&SettingsParserTest::TestEventsMultiLine));
@@ -17,6 +17,7 @@ public:
SettingsParserTest();
virtual ~SettingsParserTest();
void TestConditionsEmpty();
void TestConditionsMultiLine();
void TestConditionsFlat();
void TestConditionsFlatWithNot();
@@ -26,6 +27,7 @@ public:
void TestConditionsMultiLineFlatNotWithArgs();
void TestConditionsMultiLineNot();
void TestEventsEmpty();
void TestEventsMultiLine();
void TestEventsFlat();
void TestEventsFlatWithArgs();