[PATCH xorg-gtest 03/16] xserver: store config, logfile, binary paths in the XServer object

Peter Hutterer peter.hutterer at who-t.net
Mon Jul 2 23:44:44 PDT 2012


And initialise with the default settings

Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
---
 include/xorg/gtest/xorg-gtest-xserver.h |   12 ++++++++++++
 src/environment.cpp                     |    4 +++-
 src/xserver.cpp                         |   26 +++++++++++++++++++++++++-
 3 files changed, 40 insertions(+), 2 deletions(-)

diff --git a/include/xorg/gtest/xorg-gtest-xserver.h b/include/xorg/gtest/xorg-gtest-xserver.h
index c62970d..c5cb32d 100644
--- a/include/xorg/gtest/xorg-gtest-xserver.h
+++ b/include/xorg/gtest/xorg-gtest-xserver.h
@@ -55,6 +55,18 @@ class XServer : public xorg::testing::Process {
      * @param [in] display_number The display number the server runs on
      */
     void SetDisplayNumber(unsigned int display_number);
+    /**
+     * @param [in] path_to_logfile The path to the log file
+     */
+    void SetLogfilePath(std::string &path_to_logfile);
+    /**
+     * @param [in] path_to_conf The path to the xorg.conf file
+     */
+    void SetConfigPath(std::string &path_to_conf);
+    /**
+     * @param [in] path_to_server The path to the binary
+     */
+    void SetServerPath(std::string &path_to_server);
 
     /**
      * Get the display string that may be used for XOpenDisplay to this
diff --git a/src/environment.cpp b/src/environment.cpp
index 5e7a156..2b3abca 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -141,13 +141,15 @@ void xorg::testing::Environment::SetUp() {
     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);
   d_->server.Start(d_->path_to_server, d_->path_to_server.c_str(),
                     display_string,
                     "-logverbose", "10",
                     "-logfile", d_->path_to_log_file.c_str(),
                     "-config", d_->path_to_conf.c_str(),
                     NULL);
-  d_->server.SetDisplayNumber(d_->display);
   d_->server.WaitForConnections();
 
   Process::SetEnv("DISPLAY", display_string, true);
diff --git a/src/xserver.cpp b/src/xserver.cpp
index ba847f1..7f0483b 100644
--- a/src/xserver.cpp
+++ b/src/xserver.cpp
@@ -27,6 +27,7 @@
  ******************************************************************************/
 
 #include "xorg/gtest/xorg-gtest_xserver.h"
+#include "defines.h"
 
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -45,8 +46,19 @@
 #include <X11/extensions/XInput2.h>
 
 struct xorg::testing::XServer::Private {
+  Private()
+      : display_number(DEFAULT_DISPLAY),
+        display_string(),
+        path_to_logfile(DEFAULT_XORG_LOGFILE),
+        path_to_conf(DUMMY_CONF_PATH),
+        path_to_server(DEFAULT_XORG_SERVER) {
+  }
+
   unsigned int display_number;
   std::string display_string;
+  std::string path_to_logfile;
+  std::string path_to_conf;
+  std::string path_to_server;
 };
 
 xorg::testing::XServer::XServer() : d_(new Private) {
@@ -65,6 +77,18 @@ const char* xorg::testing::XServer::GetDisplayString(void) {
   return d_->display_string.c_str();
 }
 
+void xorg::testing::XServer::SetLogfilePath(std::string &path_to_logfile) {
+    d_->path_to_logfile = path_to_logfile;
+}
+
+void xorg::testing::XServer::SetConfigPath(std::string &path_to_conf) {
+    d_->path_to_conf = path_to_conf;
+}
+
+void xorg::testing::XServer::SetServerPath(std::string &path_to_server) {
+    d_->path_to_server = path_to_server;
+}
+
 bool xorg::testing::XServer::WaitForEvent(::Display *display, time_t timeout)
 {
     fd_set fds;
@@ -210,7 +234,7 @@ void xorg::testing::XServer::WaitForConnections(void) {
       message += ". Ensure that the \"dummy\" video driver is installed.\n"
                  "If the X.org server is older than 1.12, "
                  "tests will need to be run as root.\nCheck ";
-      //message += d_->path_to_log_file;
+      message += d_->path_to_logfile;
       message += " for any errors";
       throw std::runtime_error(message);
     } else if (pid == 0) {
-- 
1.7.10.4



More information about the xorg-devel mailing list