X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=tst%2Fintegration%2FInvocationTest.cpp;h=fc3ed426344abd476114d6fa072eee7a3131fbcf;hb=HEAD;hp=0d4c52ca464fbb2c66a3e49e4818e81e960dd064;hpb=307482574d3acac09e38263de521a1826ceec7ce;p=blank.git diff --git a/tst/integration/InvocationTest.cpp b/tst/integration/InvocationTest.cpp index 0d4c52c..fc3ed42 100644 --- a/tst/integration/InvocationTest.cpp +++ b/tst/integration/InvocationTest.cpp @@ -18,9 +18,51 @@ void InvocationTest::tearDown() { void InvocationTest::testUnknownArg() { - TestInstance prog({ "--worscht" }); + TestInstance prog({ "--worscht", "-W", "käs" }); prog.AssertErrorLine("unknown option --worscht"); + prog.AssertErrorLine("unknown option W"); + prog.AssertErrorLine("unable to interpret argument 3 (käs)"); prog.AssertExitStatus(1); + prog.AssertNoError(); + prog.AssertNoOutput(); +} + +void InvocationTest::testIncompleteOption() { + TestInstance prog({ + "-", + "", + "--", + "-" + }, false, false); + prog.AssertErrorLine("warning: incomplete option list at position 1"); + prog.AssertErrorLine("warning: found empty argument at position 2"); + prog.AssertErrorLine("unable to interpret argument 4 (-)"); + prog.AssertExitStatus(1); + prog.AssertNoError(); + prog.AssertNoOutput(); +} + +void InvocationTest::testMissingArgs() { + const std::vector opts_with_args = { + "--asset-path", + "--host", + "--port", + "--cmd-port", + "--player-name", + "--save-path", + "--world-name", + "-m", + "-n", + "-s", + "-t", + }; + for (auto arg : opts_with_args) { + TestInstance prog({ arg }, false, false); + prog.AssertErrorLine("missing argument to " + arg); + prog.AssertExitStatus(1); + prog.AssertNoError(); + prog.AssertNoOutput(); + } } }