aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/test
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2018-07-25 16:45:57 +0200
committerDmitry Vyukov <dvyukov@google.com>2018-08-03 21:08:02 +0200
commit2763e04c22143367e0b613ac612c537b6d94d2c9 (patch)
treef311d8215aa6e148c0db2e7bfface5d10b0654af /sys/linux/test
parent78e3ad98f6120342ae56b9812c695637fc245c75 (diff)
tools/syz-runtest: add tool for program unit testing
The tool is run as: $ syz-runtest -config manager.config This runs all programs from sys/*/test/* in different modes on actual VMs and checks results. Fixes #603
Diffstat (limited to 'sys/linux/test')
-rw-r--r--sys/linux/test/fd_assignment9
-rw-r--r--sys/linux/test/fuse_deadlock11
-rw-r--r--sys/linux/test/pipe3
-rw-r--r--sys/linux/test/vnet_tun2
4 files changed, 25 insertions, 0 deletions
diff --git a/sys/linux/test/fd_assignment b/sys/linux/test/fd_assignment
new file mode 100644
index 000000000..0aa82a8b2
--- /dev/null
+++ b/sys/linux/test/fd_assignment
@@ -0,0 +1,9 @@
+# Tests that fd's are always allocated starting from 3.
+
+close(0x3) # EBADF
+close(0x4) # EBADF
+close(0x5) # EBADF
+pipe(&(0x7f0000000000)={<r0=>0x0, <r1=>0x0})
+close(0x3)
+close(0x4)
+close(0x5) # EBADF
diff --git a/sys/linux/test/fuse_deadlock b/sys/linux/test/fuse_deadlock
new file mode 100644
index 000000000..2c24cf53a
--- /dev/null
+++ b/sys/linux/test/fuse_deadlock
@@ -0,0 +1,11 @@
+# Test for deadlock in fuse.
+# Some calls are commented out for now, because it actually deadlocks kernel.
+
+mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x0)
+r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000640)='/dev/fuse\x00', 0x2, 0x0)
+mount$fuse(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f0000000300)='fuse\x00', 0x0, &(0x7f0000000400)={{'fd', 0x3d, r0}, 0x2c, {'rootmode', 0x3d, 0x4000}, 0x2c, {'user_id', 0x3d}, 0x2c, {'group_id', 0x3d}, 0x2c})
+#read$FUSE(r0, &(0x7f0000002000), 0x1000)
+#pread64(r0, &(0x7f0000000540)=""/236, 0xec, 0x0)
+#write$FUSE_INIT(r0, &(0x7f0000000100)={0x50, 0x0, 0x1, {0x7, 0x1b}}, 0x50)
+#mkdirat(0xffffffffffffff9c, &(0x7f0000000500)='./file0/file0\x00', 0x0)
+#write$FUSE_NOTIFY_INVAL_ENTRY(r0, &(0x7f00000000c0)={0x29, 0x3, 0x0, {0x1, 0x8, 0x0, 'group_id'}}, 0x29)
diff --git a/sys/linux/test/pipe b/sys/linux/test/pipe
new file mode 100644
index 000000000..47daff19d
--- /dev/null
+++ b/sys/linux/test/pipe
@@ -0,0 +1,3 @@
+pipe(&(0x7f0000000000)={<r0=>0x0, <r1=>0x0})
+close(r0)
+close(r1)
diff --git a/sys/linux/test/vnet_tun b/sys/linux/test/vnet_tun
new file mode 100644
index 000000000..bb88fc9d6
--- /dev/null
+++ b/sys/linux/test/vnet_tun
@@ -0,0 +1,2 @@
+syz_emit_ethernet()
+syz_emit_ethernet()