@@ -1166,17 +1166,28 @@ TEST(THelp, FunctionDefaultString) {
11661166 EXPECT_THAT (help, HasSubstr (" INT=Powerful" ));
11671167}
11681168
1169+ static std::string getVersion (CLI::App& app, const std::string &args=" --version" )
1170+ {
1171+ try {
1172+ app.parse (args);
1173+ }
1174+ catch (const CLI::CallForVersion& v)
1175+ {
1176+ return v.what ();
1177+ }
1178+ return std::string{};
1179+ }
11691180TEST (TVersion, simple_flag) {
11701181
11711182 CLI::App app;
11721183
11731184 app.set_version_flag (" -v,--version" , " VERSION " CLI11_VERSION);
11741185
1175- auto vers = app. version ( );
1186+ auto vers = getVersion (app );
11761187 EXPECT_THAT (vers, HasSubstr (" VERSION" ));
1177-
1188+ app. allow_extras ();
11781189 app.set_version_flag ();
1179- EXPECT_TRUE (app. version ( ).empty ());
1190+ EXPECT_TRUE (getVersion (app ).empty ());
11801191}
11811192
11821193TEST (TVersion, callback_flag) {
@@ -1185,39 +1196,19 @@ TEST(TVersion, callback_flag) {
11851196
11861197 app.set_version_flag (" -v,--version" , []() { return std::string (" VERSION " CLI11_VERSION); });
11871198
1188- auto vers = app. version ( );
1199+ auto vers = getVersion (app );
11891200 EXPECT_THAT (vers, HasSubstr (" VERSION" ));
11901201
11911202 app.set_version_flag (" -v" , []() { return std::string (" VERSION2 " CLI11_VERSION); });
1192- vers = app.version ();
1193- EXPECT_THAT (vers, HasSubstr (" VERSION" ));
1194- }
1195-
1196- TEST (TVersion, simple_direct) {
1197-
1198- CLI::App app;
1199-
1200- app.version (std::string (" VERSION " CLI11_VERSION));
1201-
1202- auto vers = app.version ();
1203- EXPECT_THAT (vers, HasSubstr (" VERSION" ));
1204- }
1205-
1206- TEST (TVersion, callback_direct) {
1207-
1208- CLI::App app;
1209-
1210- app.version ([]() { return std::string (" VERSION " CLI11_VERSION); });
1211-
1212- auto vers = app.version ();
1203+ vers = getVersion (app," -v" );
12131204 EXPECT_THAT (vers, HasSubstr (" VERSION" ));
12141205}
12151206
12161207TEST (TVersion, parse_throw) {
12171208
12181209 CLI::App app;
12191210
1220- app.version ( CLI11_VERSION);
1211+ app.set_version_flag ( " --version " , CLI11_VERSION);
12211212
12221213 EXPECT_THROW (app.parse (" --version" ), CLI::CallForVersion);
12231214 EXPECT_THROW (app.parse (" --version --arg2 5" ), CLI::CallForVersion);
0 commit comments