[PATCH xorg-gtest 1/2] Check if a server is already running on the chosen display name

Peter Hutterer peter.hutterer at who-t.net
Tue May 29 23:12:57 PDT 2012


On Fri, May 25, 2012 at 08:22:10AM -0700, Chase Douglas wrote:
> Otherwise, our server will silently die and we will connect to the
> already running server without knowing.
> 
> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> ---
>  src/environment.cpp |   12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/src/environment.cpp b/src/environment.cpp
> index 9e58e4a..68e05ce 100644
> --- a/src/environment.cpp
> +++ b/src/environment.cpp
> @@ -104,6 +104,16 @@ void xorg::testing::Environment::SetUp() {
>    static char display_string[6];
>    snprintf(display_string, 6, ":%d", d_->display);
>  
> +  Display* test_display = XOpenDisplay(display_string);
> +  if (test_display) {
> +    XCloseDisplay(test_display);
> +    std::string message;
> +    message += "A server is already running on ";
> +    message += display_string;
> +    message += ".";
> +    throw std::runtime_error(message);
> +  }
> +
>    d_->process.Start(d_->path_to_server, d_->path_to_server.c_str(),
>                      display_string,
>                      "-logfile", d_->path_to_log_file.c_str(),
> @@ -113,7 +123,7 @@ void xorg::testing::Environment::SetUp() {
>    Process::SetEnv("DISPLAY", display_string, true);
>  
>    for (int i = 0; i < 10; ++i) {
> -    Display* test_display = XOpenDisplay(NULL);
> +    test_display = XOpenDisplay(NULL);
>  
>      if (test_display) {
>        XCloseDisplay(test_display);
> -- 
> 1.7.9.5

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>


Cheers,
  Peter


More information about the xorg-devel mailing list