[PATCH xorg-gtest 2/2] Check if log file and old log file are writable before starting X server

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


On Fri, May 25, 2012 at 08:22:11AM -0700, Chase Douglas wrote:
> Otherwise, the server will fail to start and it won't be obvious what
> happened.
> 
> Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
> ---
>  src/environment.cpp |   26 ++++++++++++++++++++++++++
>  1 file changed, 26 insertions(+)
> 
> diff --git a/src/environment.cpp b/src/environment.cpp
> index 68e05ce..a3a8ead 100644
> --- a/src/environment.cpp
> +++ b/src/environment.cpp
> @@ -36,6 +36,7 @@
>  #include <csignal>
>  #include <cstdlib>
>  #include <cstring>
> +#include <fstream>
>  #include <iostream>
>  #include <stdexcept>
>  
> @@ -114,6 +115,31 @@ void xorg::testing::Environment::SetUp() {
>      throw std::runtime_error(message);
>    }
>  
> +  /* The Xorg server won't start unless the log file and the old log file are
> +   * writable. */
> +  std::ofstream log_test;
> +  log_test.open(d_->path_to_log_file.c_str(), std::ofstream::out);
> +  log_test.close();
> +  if (log_test.fail()) {
> +    std::string message;
> +    message += "X.org server log file ";
> +    message += d_->path_to_log_file;
> +    message += " is not writable.";
> +    throw std::runtime_error(message);
> +  }
> +
> +  std::string old_log_file = d_->path_to_log_file.c_str();
> +  old_log_file += ".old";
> +  log_test.open(old_log_file.c_str(), std::ofstream::out);
> +  log_test.close();
> +  if (log_test.fail()) {
> +    std::string message;
> +    message += "X.org old server log file ";
> +    message += old_log_file;
> +    message += " is not writable.";
> +    throw std::runtime_error(message);
> +  }
> +

access(2) may be simpler?

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net> anyhow though, it
does the job


Cheers,
  Peter

>    d_->process.Start(d_->path_to_server, d_->path_to_server.c_str(),
>                      display_string,
>                      "-logfile", d_->path_to_log_file.c_str(),
> -- 
> 1.7.9.5
> 


More information about the xorg-devel mailing list