tests: factor out common shell code to functions

Factor out shell code used in several tests to common functions.

* tests/fanotify_mark.expected: New file.
* tests/ioctl.expected: New file.
* tests/net-fd.expected: New file.
* tests/net.expected: New file.
* tests/statfs.expected: New file.
* tests/sun_path.expected: New file.
* tests/uio.expected: New file.
* tests/ipc.sh: New file.
* tests/Makefile.am (EXTRA_DIST): Add them.
* tests/init.sh (dump_log_and_fail_with, run_prog,
run_prog_skip_if_failed, run_strace, run_strace_merge,
match_awk, match_diff, match_grep): New functions.
* tests/*.test: Use them.
diff --git a/tests/fanotify_mark.test b/tests/fanotify_mark.test
index c5eb4eb..4b7749a 100755
--- a/tests/fanotify_mark.test
+++ b/tests/fanotify_mark.test
@@ -4,32 +4,8 @@
 
 . "${srcdir=.}/init.sh"
 
-check_prog grep
-
-./fanotify_mark || {
-	if [ $? -eq 77 ]; then
-		framework_skip_ 'fanotify_mark is not available'
-	else
-		fail_ 'fanotify_mark failed'
-	fi
-}
-
-args="-efanotify_mark ./fanotify_mark"
-$STRACE -o "$LOG" $args || {
-	cat "$LOG"
-	fail_ "$STRACE $args failed"
-}
-
-grep_log()
-{
-	local syscall="$1"; shift
-
-	LC_ALL=C grep -E -x "$syscall$*" $LOG > /dev/null || {
-		cat $LOG
-		fail_ "$STRACE $args failed to trace \"$syscall\" properly"
-	}
-}
-
-grep_log fanotify_mark '\(-1, FAN_MARK_ADD, FAN_MODIFY\|FAN_ONDIR, AT_FDCWD, "\."\) += -1.*'
+run_prog
+run_strace -efanotify_mark $args
+match_grep
 
 exit 0