Don't rely on the environment alone, take the display string if it's been set.
Signed-off-by: Peter Hutterer <[email protected]> --- 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; +} -- 1.7.10.4 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
