]> git.saurik.com Git - apple/xnu.git/blobdiff - tests/dev_zero.c
xnu-7195.101.1.tar.gz
[apple/xnu.git] / tests / dev_zero.c
diff --git a/tests/dev_zero.c b/tests/dev_zero.c
new file mode 100644 (file)
index 0000000..c355499
--- /dev/null
@@ -0,0 +1,29 @@
+#include <stdio.h>
+#include <fcntl.h>
+#include <util.h>
+#include <unistd.h>
+#include <darwintest.h>
+
+T_DECL(dev_zero,
+    "test reading from /dev/zero",
+    T_META_ASROOT(false))
+{
+       int dev = opendev("/dev/zero", O_RDONLY, NULL, NULL);
+       char buffer[100];
+
+       for (int i = 0; i < 100; i++) {
+               buffer[i] = 0xff;
+       }
+
+       int rd_sz = read(dev, buffer, sizeof(buffer));
+
+       T_EXPECT_EQ(rd_sz, 100, "read from /dev/zero failed");
+
+       for (int i = 0; i < 100; i++) {
+               if (buffer[i]) {
+                       T_FAIL("Unexpected non-zero character read from /dev/zero");
+               }
+       }
+
+       close(dev);
+}