On 07/10/2012 06:51 PM, Peter Hutterer wrote:
Don't rely on the environment alone, take the display string if it's been
set.

Signed-off-by: Peter Hutterer <peter.hutte...@who-t.net>
---
  include/xorg/gtest/xorg-gtest-test.h |   10 ++++++++++
  src/test.cpp                         |   12 +++++++++++-
  2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/include/xorg/gtest/xorg-gtest-test.h 
b/include/xorg/gtest/xorg-gtest-test.h
index 3b78a17..a776693 100644
--- a/include/xorg/gtest/xorg-gtest-test.h
+++ b/include/xorg/gtest/xorg-gtest-test.h
@@ -88,6 +88,16 @@ class Test : public ::testing::Test {
     */
    ::Display* Display() const;

+  /**
+   * Set the display string used for XOpenDisplay() and thus affects
+   * Test::Display(). This function must be called before
+   * xorg::testing::Test::SetUp() to have any effect.
+   *
+   * @param display The string representing the display connection, or an
+   * empty string for NULL
+   */
+  void SetDisplayString(const std::string &display);
+
    /** @cond Implementation */
    struct Private;
    std::auto_ptr<Private> d_;
diff --git a/src/test.cpp b/src/test.cpp
index e3e65e4..94adf13 100644
--- a/src/test.cpp
+++ b/src/test.cpp
@@ -33,6 +33,7 @@

  struct xorg::testing::Test::Private {
    ::Display* display;
+  std::string display_string;
  };

  xorg::testing::Test::Test() : d_(new Private) {
@@ -42,7 +43,12 @@ xorg::testing::Test::Test() : d_(new Private) {
  xorg::testing::Test::~Test() {}

  void xorg::testing::Test::SetUp() {
-  d_->display = XOpenDisplay(NULL);
+  const char *dpy = NULL;
+
+  if (!d_->display_string.empty())
+    dpy = d_->display_string.c_str();
+
+  d_->display = XOpenDisplay(dpy);
    if (!d_->display)
      throw std::runtime_error("Failed to open connection to display");
  }
@@ -56,3 +62,7 @@ void xorg::testing::Test::TearDown() {
  ::Display* xorg::testing::Test::Display() const {
    return d_->display;
  }
+
+void xorg::testing::Test::SetDisplayString(const std::string &display) {
+  d_->display_string = display;
+}


No objections. I'm curious to find out what you plan to use this for :). It's probably in one of your new tests that I've yet to review.

Reviewed-by: Chase Douglas <chase.doug...@canonical.com>
_______________________________________________
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

Reply via email to