Use non-blocking and raw mode for test with CAIF character devices
authorMarcel Holtmann <marcel@holtmann.org>
Thu, 28 Jan 2010 15:48:33 +0000 (16:48 +0100)
committerMarcel Holtmann <marcel@holtmann.org>
Thu, 28 Jan 2010 15:48:33 +0000 (16:48 +0100)
unit/test-caif.c

index a460fda..8159c4e 100644 (file)
@@ -28,6 +28,7 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <string.h>
+#include <termios.h>
 
 #include <glib.h>
 #include <glib/gprintf.h>
@@ -41,14 +42,22 @@ static GMainLoop *mainloop;
 
 static int do_open(void)
 {
+       struct termios ti;
        int fd;
 
-       fd = open("/dev/chnlat10", O_RDWR);
+       fd = open("/dev/chnlat11", O_RDWR | O_NOCTTY | O_NONBLOCK);
        if (fd < 0) {
-               g_printerr("Open of chnlat10 failed (%d)\n", errno);
+               g_printerr("Open of chnlat11 failed (%d)\n", errno);
                return -EIO;
        }
 
+       /* Switch TTY to raw mode */
+       memset(&ti, 0, sizeof(ti));
+       cfmakeraw(&ti);
+
+       tcflush(fd, TCIOFLUSH);
+       tcsetattr(fd, TCSANOW, &ti);
+
        return fd;
 }