summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2013-10-14 11:09:35 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2013-10-14 12:14:46 +1000
commit7470a5a018d8fbd744ae51c1936f74dfef5a4a3e (patch)
treebf4e422d65c1744132e8fd0f470bc1942d301124
parent3144cb02dea27217c0127ab6d5996a83ce481ed6 (diff)
server/Xephyr: test for 8bpp crash
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r--tests/server/xephyr.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/server/xephyr.cpp b/tests/server/xephyr.cpp
index c5fb474..e604d31 100644
--- a/tests/server/xephyr.cpp
+++ b/tests/server/xephyr.cpp
@@ -97,6 +97,43 @@ TEST_F(Xephyr24bppTest, CrashOn24bppHost)
xephyr.Terminate(1000);
}
+class Xephyr8bppTest : public XITServerTest {
+ virtual void SetUpConfigAndLog() {
+ config.AddDefaultScreenWithDriver();
+ config.WriteConfig();
+ }
+};
+
+TEST_F(Xephyr8bppTest, No8bppCrash)
+{
+ XORG_TESTCASE("Start 8-bit Xephyr.\n"
+ "Verify Xephyr doesn't crash\n"
+ "https://bugzilla.redhat.com/show_bug.cgi?id=518960");
+
+ ::Display *dpy = Display();
+ int depth = DefaultDepth(dpy, 0);
+ ASSERT_GT(depth, 8);
+
+ Process xephyr;
+ setenv("DISPLAY", server.GetDisplayString().c_str(), 1);
+ xephyr.Start("Xephyr", "-screen", "320x220x8", ":134", NULL);
+ ASSERT_GT(xephyr.Pid(), 0);
+ ASSERT_EQ(xephyr.GetState(), xorg::testing::Process::RUNNING);
+
+ ::Display *ephdpy = NULL;
+
+ int i = 0;
+ while (i++ < 10 && !ephdpy) {
+ ephdpy = XOpenDisplay(":134");
+ if (!ephdpy)
+ usleep(10000);
+ }
+ ASSERT_EQ(xephyr.GetState(), xorg::testing::Process::RUNNING);
+ ASSERT_TRUE(ephdpy);
+
+ xephyr.Terminate(1000);
+}
+
int main(int argc, char **argv) {
testing::InitGoogleTest(&argc, argv);