diff --git a/src/options.cc b/src/options.cc index 6f73edd..99c5f53 100644 --- a/src/options.cc +++ b/src/options.cc @@ -56,6 +56,8 @@ Options opustags::parse_args(const int argc, char **argv) break; case 'o': + if (arg.empty()) + throw ArgumentError("Output path cannot be empty"); options.path_out = arg; break; diff --git a/tests/options_test.cc b/tests/options_test.cc index d6b9752..64b296b 100644 --- a/tests/options_test.cc +++ b/tests/options_test.cc @@ -92,6 +92,8 @@ TEST_CASE("option parsing", "[options]") SECTION("--output") { REQUIRE(retrieve_options({"--output", "ABC"}).path_out == "ABC"); REQUIRE(retrieve_options({"-o", "ABC"}).path_out == "ABC"); + REQUIRE_THROWS(retrieve_options({"--output", ""})); + REQUIRE_THROWS(retrieve_options({"-o", ""})); } SECTION("--delete-all") {