]> git.corax.cc Git - corax/commitdiff
sys/test: Implement simple test for reading and writing on a pipe
authorMatthias Kruk <m@m10k.eu>
Sat, 15 Aug 2020 06:14:30 +0000 (15:14 +0900)
committerMatthias Kruk <m@m10k.eu>
Sat, 15 Aug 2020 06:14:30 +0000 (15:14 +0900)
sys/test/main.c

index 4f991c973727d629814a9dbc017321b35fd61aa9..d827f64553d7740fc6d1102e48268f38920f1957 100644 (file)
@@ -2,10 +2,13 @@
 #include <crxstd.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
+#include <errno.h>
 
 int main(int argc, char *argv[])
 {
        char buf[128];
+       char rxbuf[128];
        int fds[2];
        int ret_val;
 
@@ -20,6 +23,24 @@ int main(int argc, char *argv[])
        ret_val = snprintf(buf, sizeof(buf), "fds[0] = %d, fds[1] = %d\n", fds[0], fds[1]);
        debug(buf, ret_val);
 
+       ret_val = snprintf(buf, sizeof(buf), "Hello, pipe world!");
+       ret_val = write(fds[1], buf, ret_val);
+
+       ret_val = snprintf(buf, sizeof(buf), "write() = %d\n", ret_val);
+       debug(buf, ret_val);
+
+       memset(buf, 0, sizeof(buf));
+       memset(rxbuf, 0, sizeof(rxbuf));
+
+       ret_val = read(fds[0], rxbuf, sizeof(rxbuf));
+
+       if(ret_val < 0) {
+               ret_val = snprintf(buf, sizeof(buf), "read() = %d errno=%s\n", ret_val, strerror(errno));
+       } else {
+               ret_val = snprintf(buf, sizeof(buf), "read() = %d [%s]\n", ret_val, rxbuf);
+       }
+       debug(buf, ret_val);
+
        while(1) {
                #if 0
                struct cxmsg msg;