[PATCH xorg-gtest v2 5/8] xserver: move testing startup to the XServer object
Chase Douglas
chase.douglas at canonical.com
Wed Jul 11 12:00:26 PDT 2012
On 07/10/2012 08:28 PM, Peter Hutterer wrote:
> No real functional changes, TestStartup() is called by XServer::Start()
> before the process is started, so from the Environment's POV, everything
> stays the same.
This is much easier to understand now, in comparison to how these
changes were split across a couple patches before. Thanks!
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
> No real hanges that I can recall
>
> include/xorg/gtest/xorg-gtest-xserver.h | 2 ++
> src/environment.cpp | 35 --------------------------
> src/xserver.cpp | 41 +++++++++++++++++++++++++++++++
> 3 files changed, 43 insertions(+), 35 deletions(-)
>
> diff --git a/include/xorg/gtest/xorg-gtest-xserver.h b/include/xorg/gtest/xorg-gtest-xserver.h
> index 0b7e7a0..f31ce8a 100644
> --- a/include/xorg/gtest/xorg-gtest-xserver.h
> +++ b/include/xorg/gtest/xorg-gtest-xserver.h
> @@ -148,6 +148,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 1521564..608abaf 100644
> --- a/src/environment.cpp
> +++ b/src/environment.cpp
You can probably remove the #include <fstream> from the top of
environment.cpp now.
> @@ -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.SetOption("-logfile", d_->path_to_log_file);
> d_->server.SetOption("-config", d_->path_to_conf);
> diff --git a/src/xserver.cpp b/src/xserver.cpp
> index 2f9c364..f263c63 100644
> --- a/src/xserver.cpp
> +++ b/src/xserver.cpp
> @@ -42,6 +42,7 @@
> #include <stdexcept>
> #include <vector>
> #include <map>
> +#include <fstream>
>
> #include <X11/Xlib.h>
> #include <X11/extensions/XInput2.h>
> @@ -253,10 +254,50 @@ 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().c_str());
> + 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_->options["-logfile"].c_str(), std::ofstream::out);
> + log_test.close();
> + if (log_test.fail()) {
> + std::string message;
> + message += "X.org server log file ";
> + message += d_->options["-config"];
> + message += " is not writable.";
> + throw std::runtime_error(message);
> + }
> +
> + std::string old_log_file = d_->options["-config"];
> + 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) {
> if (program.empty())
> program = d_->path_to_server;
>
> + TestStartup();
> +
> std::vector<std::string> args;
> std::map<std::string, std::string>::iterator it;
>
>
Looks good to me!
Reviewed-by: Chase Douglas <chase.douglas at canonical.com>
More information about the xorg-devel
mailing list