X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=tst%2Fintegration%2FInvocationTest.cpp;h=fc3ed426344abd476114d6fa072eee7a3131fbcf;hb=8368621fd8996569e3ca8fc6fd68ac0168742392;hp=70fd47ff4928c7408125077863e5b84fc70c4f2c;hpb=5408130b6267448d0fddf4e3001fdc4b915e6496;p=blank.git diff --git a/tst/integration/InvocationTest.cpp b/tst/integration/InvocationTest.cpp index 70fd47f..fc3ed42 100644 --- a/tst/integration/InvocationTest.cpp +++ b/tst/integration/InvocationTest.cpp @@ -2,7 +2,7 @@ #include "TestInstance.hpp" -CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(blank::test::InvocationTest, "headed"); +CPPUNIT_TEST_SUITE_REGISTRATION(blank::test::InvocationTest); namespace blank { @@ -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(); + } } }