[PATCH xorg-gtest 14/16] xserver: update documentation
Chase Douglas
chase.douglas at canonical.com
Tue Jul 3 11:22:20 PDT 2012
On 07/02/2012 11:44 PM, Peter Hutterer wrote:
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> include/xorg/gtest/xorg-gtest-xserver.h | 21 ++++++++++++++++++++-
> 1 file changed, 20 insertions(+), 1 deletion(-)
>
> diff --git a/include/xorg/gtest/xorg-gtest-xserver.h b/include/xorg/gtest/xorg-gtest-xserver.h
> index 707888e..6eb2241 100644
> --- a/include/xorg/gtest/xorg-gtest-xserver.h
> +++ b/include/xorg/gtest/xorg-gtest-xserver.h
> @@ -40,7 +40,26 @@ namespace testing {
> /**
> * @class XServer xorg-gtest_xserver.h xorg/gtest/xorg-gtest_xserver.h
> *
> - * Miscellaneous interfaces to communicate with the X server.
> + * Class representing the X server process.
> + *
> + * @code
> + * XServer server;
> + * server.SetOption("-logfile", "/tmp/Xserver.log");
> + *
> + * try {
> + * server.Start();
> + * } catch (const std::runtime_error &e) {
> + * std::cerr << "Problem starting the X server: " << e.what() << std::endl;
> + * }
Generally, code shouldn't be using try...catch blocks unless it really
expects a specific problem. If the X server won't start, then just let
the test crash out (gtest will catch it and print the message for you).
The reason I mention this is that I don't think we generally want to
lead people to adding try...catch blocks everwhere in their code, which
is the wrong way to do proper exception handling. When done properly,
exception handling is a lot easier, and usually don't have to use any
try...catch blocks.
TBH, I've only recently learned how to do exception handling properly,
so there's a chance you'll come across some of my own code that does it
wrong too :).
All of that said, we probably should add an "@throws" doxygen comment to
state that it throws a std::runtime_error if the process fails to start.
> + * ...
> + *
> + * if (!server.Terminate()) {
> + * std::cerr << "Problem terminating server ... killing now ..." << std::endl;
> + * if (!server.Kill())
> + * std::cerr << "Problem killing server" << std::endl;
> + * }
> + * @endcode
> */
> class XServer : public xorg::testing::Process {
> public:
>
More information about the xorg-devel
mailing list