diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2013-10-14 11:09:35 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-10-14 12:14:46 +1000 |
commit | 7470a5a018d8fbd744ae51c1936f74dfef5a4a3e (patch) | |
tree | bf4e422d65c1744132e8fd0f470bc1942d301124 | |
parent | 3144cb02dea27217c0127ab6d5996a83ce481ed6 (diff) |
server/Xephyr: test for 8bpp crash
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-rw-r--r-- | tests/server/xephyr.cpp | 37 |
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); |