Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net> --- include/xorg/gtest/xorg-gtest-xserver.h | 2 ++ src/environment.cpp | 35 --------------------------- src/xserver.cpp | 40 +++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 35 deletions(-)
diff --git a/include/xorg/gtest/xorg-gtest-xserver.h b/include/xorg/gtest/xorg-gtest-xserver.h index 5c5ce99..52a2fd0 100644 --- a/include/xorg/gtest/xorg-gtest-xserver.h +++ b/include/xorg/gtest/xorg-gtest-xserver.h @@ -129,6 +129,8 @@ class XServer : public xorg::testing::Process { XServer(const XServer&); XServer& operator=(const XServer&); + void TestStartup(void); + }; } // namespace testing } // namespace xorg diff --git a/src/environment.cpp b/src/environment.cpp index 7ed23b3..69972a4 100644 --- a/src/environment.cpp +++ b/src/environment.cpp @@ -106,41 +106,6 @@ 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); - } - - /* 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); - } - d_->server.SetDisplayNumber(d_->display); d_->server.SetLogfilePath(d_->path_to_log_file); d_->server.SetConfigPath(d_->path_to_conf); diff --git a/src/xserver.cpp b/src/xserver.cpp index 38394f3..1a46dbb 100644 --- a/src/xserver.cpp +++ b/src/xserver.cpp @@ -41,6 +41,7 @@ #include <cstring> #include <stdexcept> #include <vector> +#include <fstream> #include <X11/Xlib.h> #include <X11/extensions/XInput2.h> @@ -250,7 +251,46 @@ void xorg::testing::XServer::WaitForConnections(void) { throw std::runtime_error("Unable to open connection to dummy X server"); } +void xorg::testing::XServer::TestStartup(void) { + Display* test_display = XOpenDisplay(GetDisplayString()); + if (test_display) { + XCloseDisplay(test_display); + std::string message; + message += "A server is already running on "; + message += GetDisplayString(); + message += "."; + 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_logfile.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_logfile; + message += " is not writable."; + throw std::runtime_error(message); + } + + std::string old_log_file = d_->path_to_logfile.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); + } + +} + void xorg::testing::XServer::Start(std::string &program) { + TestStartup(); Process::Start(program, program.c_str(), GetDisplayString(), "-logverbose", "10", -- 1.7.10.4 _______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel