tests: add a test for basic network syscalls

* tests/.gitignore: Add net-accept-connect, *.o and *.log.*.
* tests/Makefile.am (AM_CFLAGS): New variable.
(check_PROGRAMS): Add net-accept-connect.
(TESTS): Add net.
* tests/net-accept-connect.c: New file.
* tests/net: New file.
diff --git a/tests/net-accept-connect.c b/tests/net-accept-connect.c
new file mode 100644
index 0000000..9d296f7
--- /dev/null
+++ b/tests/net-accept-connect.c
@@ -0,0 +1,48 @@
+#include <assert.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/wait.h>
+#include <sys/socket.h>
+#include <sys/un.h>
+
+#define SUN_PATH "local-stream"
+int main(void)
+{
+	struct sockaddr_un addr = {
+		.sun_family = AF_UNIX,
+		.sun_path = SUN_PATH
+	};
+	socklen_t len = sizeof addr;
+
+	unlink(SUN_PATH);
+	close(0);
+	close(1);
+
+	assert(socket(PF_LOCAL, SOCK_STREAM, 0) == 0);
+	assert(bind(0, (struct sockaddr *) &addr, len) == 0);
+	assert(listen(0, 5) == 0);
+
+	memset(&addr, 0, sizeof addr);
+	assert(getsockname(0, (struct sockaddr *) &addr, &len) == 0);
+
+	pid_t pid = fork();
+	assert(pid >= 0);
+
+	if (pid) {
+		assert(accept(0, (struct sockaddr *) &addr, &len) == 1);
+		assert(close(0) == 0);
+		int status;
+		assert(waitpid(pid, &status, 0) == pid);
+		assert(status == 0);
+		assert(close(1) == 0);
+	} else {
+		assert(socket(PF_LOCAL, SOCK_STREAM, 0) == 1);
+		assert(close(0) == 0);
+		assert(connect(1, (struct sockaddr *) &addr, sizeof addr) == 0);
+		assert(close(1) == 0);
+		return 0;
+	}
+
+	unlink(SUN_PATH);
+	return 0;
+}