> > Behaviour Driven Development defines self-describing, story-like > structures for testing that at the same time document them and > descriptive messages when a test fails. > > Signed-off-by: Lukáš Hrázký <lhrazky@xxxxxxxxxx> > --- > src/unittests/test-mjpeg-fallback.cpp | 88 > +++++++++++++++++++---------------- > 1 file changed, 48 insertions(+), 40 deletions(-) > > diff --git a/src/unittests/test-mjpeg-fallback.cpp > b/src/unittests/test-mjpeg-fallback.cpp > index 08ed406..cb2cb68 100644 > --- a/src/unittests/test-mjpeg-fallback.cpp > +++ b/src/unittests/test-mjpeg-fallback.cpp > @@ -6,45 +6,53 @@ > namespace ssa = SpiceStreamingAgent; > > > -TEST_CASE("test parse options", "[mjpeg][options]") > -{ > - ssa::MjpegPlugin plugin; > - > - SECTION("correct setup") { > - std::vector<ssa::ConfigureOption> options = { > - {"framerate", "20"}, > - {"mjpeg.quality", "90"}, > - {NULL, NULL} > - }; > - > - plugin.ParseOptions(options.data()); > - ssa::MjpegSettings new_options = plugin.Options(); > - CHECK(new_options.fps == 20); > - CHECK(new_options.quality == 90); > - } > - > - SECTION("unknown option") { > - std::vector<ssa::ConfigureOption> options = { > - {"wakaka", "10"}, > - {NULL, NULL} > - }; > - > - REQUIRE_THROWS_WITH( > - plugin.ParseOptions(options.data()), > - "Invalid option 'wakaka'." > - ); > - } > - > - SECTION("invalid option value") { > - std::vector<ssa::ConfigureOption> options = { > - {"framerate", "10"}, > - {"mjpeg.quality", "toot"}, > - {NULL, NULL} > - }; > - > - REQUIRE_THROWS_WITH( > - plugin.ParseOptions(options.data()), > - "Invalid value 'toot' for option 'mjpeg.quality'." > - ); > +SCENARIO("test parsing mjpeg plugin options", "[mjpeg][options]") { > + GIVEN("A new mjpeg plugin") { > + ssa::MjpegPlugin plugin; > + > + WHEN("passing correct options") { > + std::vector<ssa::ConfigureOption> options = { > + {"framerate", "20"}, > + {"mjpeg.quality", "90"}, > + {NULL, NULL} > + }; > + > + plugin.ParseOptions(options.data()); > + ssa::MjpegSettings new_options = plugin.Options(); > + > + THEN("the options are set in the plugin") { > + CHECK(new_options.fps == 20); > + CHECK(new_options.quality == 90); > + } > + } > + > + WHEN("passing an unknown option") { > + std::vector<ssa::ConfigureOption> options = { > + {"wakaka", "10"}, > + {NULL, NULL} > + }; > + > + THEN("ParseOptions throws an exception") { > + REQUIRE_THROWS_WITH( > + plugin.ParseOptions(options.data()), > + "Invalid option 'wakaka'." > + ); > + } > + } > + > + WHEN("passing an invalid option value") { > + std::vector<ssa::ConfigureOption> options = { > + {"framerate", "40"}, > + {"mjpeg.quality", "toot"}, > + {NULL, NULL} > + }; > + > + THEN("ParseOptions throws an exception") { > + REQUIRE_THROWS_WITH( > + plugin.ParseOptions(options.data()), > + "Invalid value 'toot' for option 'mjpeg.quality'." > + ); > + } > + } > } > } This patch is mainly rewriting patch 2/4 (previous one). Why not a single patch? Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel