Expand Google Test coverage across core subsystems

Add and extend unit tests for:
- Task manager (failed tasks, progress signals, multiple tasks)
- Undo stack (multiple undo/redo, push-after-undo, clear, multi-command)
- Config defaults and graphics backend string conversion
- Node keyframe serialization and default state
- Node value string round-trips and table operations
- Node globals and project settings/serialization
- Timeline coordinate, workarea, and marker commands
- Color LUT processor and OCIO transform handling
- Common utilities (range, file functions, Qt helpers, XML utils)
- Render enums (loop mode, alpha association)
- Shader resource availability
- Module smoke tests for Tool and HumanStrings

All tests pass including RenderWorkerFootage GPU worker tests after
rebuilding the stale olive-render-worker binary.
This commit is contained in:
2026-07-13 10:19:30 +08:00
parent b7ff687220
commit 748c53ac5c
20 changed files with 1075 additions and 11 deletions
+40
View File
@@ -18,3 +18,43 @@ TEST(CommonXmlUtils, ReadNextStartElement)
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("child"));
}
TEST(CommonXmlUtils, ReadNextStartElementSkipsWhitespace)
{
QByteArray xml = "\n \n<root>\n\n<child/>\n</root>";
QBuffer buffer(&xml);
buffer.open(QIODevice::ReadOnly);
QXmlStreamReader reader(&buffer);
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("root"));
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("child"));
}
TEST(CommonXmlUtils, ReadNextStartElementReturnsFalseAtEnd)
{
QByteArray xml = "<root/>";
QBuffer buffer(&xml);
buffer.open(QIODevice::ReadOnly);
QXmlStreamReader reader(&buffer);
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("root"));
EXPECT_FALSE(olive::XMLReadNextStartElement(&reader));
}
TEST(CommonXmlUtils, ReadNextStartElementSkipsUnknown)
{
QByteArray xml = "<root><unknown/><known/></root>";
QBuffer buffer(&xml);
buffer.open(QIODevice::ReadOnly);
QXmlStreamReader reader(&buffer);
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("unknown"));
reader.skipCurrentElement();
EXPECT_TRUE(olive::XMLReadNextStartElement(&reader));
EXPECT_EQ(reader.name().toString(), QStringLiteral("known"));
}