]> git.sur5r.net Git - i3/i3/commitdiff
t/175-startup-notification: use the testcases X11 connection
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Dec 2012 17:02:23 +0000 (18:02 +0100)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 27 Dec 2012 17:02:23 +0000 (18:02 +0100)
This needs X11::XCB >= 0.07 and will be skipped if that is not
installed.

This fixes a race condition in the testsuite.

testcases/t/175-startup-notification.t

index 7160399d3387fddc66bfd62caa6746a2de343b0f..ee285ff74a6087e0108f9f9dca177f1b723352b9 100644 (file)
@@ -21,6 +21,10 @@ use i3test;
 use POSIX qw(mkfifo);
 use File::Temp qw(:POSIX);
 
+SKIP: {
+
+    skip "X11::XCB too old (need >= 0.07)", 24 if $X11::XCB::VERSION < 0.07;
+
 use ExtUtils::PkgConfig;
 
 # setup dependency on libstartup-notification using pkg-config
@@ -42,16 +46,10 @@ static SnDisplay *sndisplay;
 static SnLauncheeContext *ctx;
 static xcb_connection_t *conn;
 
-// TODO: this should use $x
-void init_ctx() {
-    int screen;
-    if ((conn = xcb_connect(NULL, &screen)) == NULL ||
-        xcb_connection_has_error(conn))
-        errx(1, "x11 conn failed");
-
-    printf("screen = %d\n", screen);
+void init_ctx(void *connptr) {
+    conn = (xcb_connection_t*)connptr;
     sndisplay = sn_xcb_display_new(conn, NULL, NULL);
-    ctx = sn_launchee_context_new_from_environment(sndisplay, screen);
+    ctx = sn_launchee_context_new_from_environment(sndisplay, 0);
 }
 
 const char *get_startup_id() {
@@ -101,7 +99,7 @@ isnt($startup_id, '', 'startup_id not empty');
 $ENV{DESKTOP_STARTUP_ID} = $startup_id;
 
 # Create a new libstartup-notification launchee context
-init_ctx();
+init_ctx($x->get_xcb_conn());
 
 # Make sure the context was set up successfully
 is(get_startup_id(), $startup_id, 'libstartup-notification returns the same id');
@@ -211,5 +209,6 @@ close($fh);
 unlink($tmp);
 
 is($startup_id, '', 'startup_id empty');
+}
 
 done_testing;