preserve_fd
ASSERT_EQ(preserve_fd(session_fd, mem_fd, 0x1234), 0);
ASSERT_EQ(preserve_fd(session_fd, mem_fd1, 0xAAAA), 0);
ASSERT_EQ(preserve_fd(session_fd, mem_fd2, 0xBBBB), 0);
ASSERT_EQ(preserve_fd(session_fd1, mem_fd_data1, 0x1111), 0);
ASSERT_EQ(preserve_fd(session_fd1, mem_fd_empty1, 0x2222), 0);
ASSERT_EQ(preserve_fd(session_fd2, mem_fd_data2, 0x3333), 0);
ASSERT_EQ(preserve_fd(session_fd2, mem_fd_empty2, 0x4444), 0);
ret = preserve_fd(session_fd, unsupported_fd, 0xDEAD);
ASSERT_EQ(preserve_fd(session_fd1, mem_fd, 0x1111), 0);
ret = preserve_fd(session_fd2, mem_fd, 0x2222);
ret = preserve_fd(session_fd1, mem_fd, 0x3333);
ASSERT_EQ(preserve_fd(session_fd, mem_fds[i], i), 0);