test: expand gtest coverage for common/core utilities
Add unit tests for: - CommandLineParser, Debug handler, Decibel, Digit, JobTime, FFmpegUtils - Core StringUtils, Timecode, TimeRange, Bezier, Color - Extend Frame tests to cover pixel access, interlace, conversion Coverage improvements (app + ext/core): - commandlineparser.cpp: 0% -> 93% - debug.cpp: 0% -> 85% - decibel.h: 25% -> 88% - digit.h: 0% -> 100% - ffmpegutils.cpp: 29% -> 90% - frame.cpp: 53% -> 97% - bezier.cpp: 16% -> 98% - color.cpp: 13% -> 71% - Overall line coverage: 17% -> 19%
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "common/commandlineparser.h"
|
||||
|
||||
TEST(CommonCommandLineParser, OptionWithoutArgument)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
const CommandLineParser::Option *opt = parser.AddOption(
|
||||
{QStringLiteral("help"), QStringLiteral("h")},
|
||||
QStringLiteral("Show help"), false);
|
||||
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("-help")});
|
||||
|
||||
EXPECT_TRUE(opt->IsSet());
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, ShortOption)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
const CommandLineParser::Option *opt = parser.AddOption(
|
||||
{QStringLiteral("help"), QStringLiteral("h")},
|
||||
QStringLiteral("Show help"), false);
|
||||
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("-h")});
|
||||
|
||||
EXPECT_TRUE(opt->IsSet());
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, OptionWithArgument)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
const CommandLineParser::Option *opt = parser.AddOption(
|
||||
{QStringLiteral("project")}, QStringLiteral("Project file"), true,
|
||||
QStringLiteral("file"));
|
||||
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("-project"),
|
||||
QStringLiteral("test.ove")});
|
||||
|
||||
EXPECT_TRUE(opt->IsSet());
|
||||
EXPECT_EQ(opt->GetSetting(), QStringLiteral("test.ove"));
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, PositionalArgument)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
const CommandLineParser::PositionalArgument *arg =
|
||||
parser.AddPositionalArgument(QStringLiteral("filename"),
|
||||
QStringLiteral("Project file"), true);
|
||||
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("test.ove")});
|
||||
|
||||
EXPECT_EQ(arg->GetSetting(), QStringLiteral("test.ove"));
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, UnknownOptionWarning)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
parser.AddOption({QStringLiteral("known")}, QStringLiteral("Known"));
|
||||
|
||||
// Should not crash; unknown option is logged
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("-unknown")});
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, UnknownPositionalWarning)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
|
||||
// Should not crash; unknown positional is logged
|
||||
parser.Process({QStringLiteral("app"), QStringLiteral("extra")});
|
||||
}
|
||||
|
||||
TEST(CommonCommandLineParser, HiddenOptionExcludedFromHelp)
|
||||
{
|
||||
CommandLineParser parser;
|
||||
parser.AddOption({QStringLiteral("visible")}, QStringLiteral("Visible"));
|
||||
parser.AddOption({QStringLiteral("hidden")}, QStringLiteral("Hidden"),
|
||||
false, QString(), true);
|
||||
parser.AddPositionalArgument(QStringLiteral("file"),
|
||||
QStringLiteral("Input file"));
|
||||
|
||||
// Should not crash; hidden option should be skipped during help output
|
||||
parser.PrintHelp("/usr/bin/app");
|
||||
}
|
||||
Reference in New Issue
Block a user