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%
84 lines
2.5 KiB
C++
84 lines
2.5 KiB
C++
#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");
|
|
}
|