mock_kernel_proxy.h revision cedac228d2dd51db4b79ea1e72c7f249408ee061
1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef TESTS_NACL_IO_TEST_MOCK_KERNEL_PROXY_H_
6#define TESTS_NACL_IO_TEST_MOCK_KERNEL_PROXY_H_
7
8#include <sys/types.h>
9#include <sys/stat.h>
10#include "gmock/gmock.h"
11
12#include "nacl_io/kernel_proxy.h"
13#include "nacl_io/ossignal.h"
14#include "nacl_io/ossocket.h"
15#include "nacl_io/ostermios.h"
16
17class MockKernelProxy : public nacl_io::KernelProxy {
18 public:
19  MockKernelProxy() {}
20
21  MOCK_METHOD2(access, int(const char*, int));
22  MOCK_METHOD1(chdir, int(const char*));
23  MOCK_METHOD2(chmod, int(const char*, mode_t));
24  MOCK_METHOD3(chown, int(const char*, uid_t, gid_t));
25  MOCK_METHOD1(close, int(int));
26  MOCK_METHOD1(dup, int(int));
27  MOCK_METHOD2(dup2, int(int, int));
28  MOCK_METHOD1(fchdir, int(int));
29  MOCK_METHOD2(fchmod, int(int, int));
30  MOCK_METHOD3(fchown, int(int, uid_t, gid_t));
31  MOCK_METHOD3(fcntl, int(int, int, va_list));
32  MOCK_METHOD2(ftruncate, int(int, off_t));
33  MOCK_METHOD2(fstat, int(int, struct stat*));
34  MOCK_METHOD1(fsync, int(int));
35  MOCK_METHOD1(fdatasync, int(int));
36  MOCK_METHOD2(getcwd, char*(char*, size_t));
37  MOCK_METHOD3(getdents, int(int, void*, unsigned int));
38  MOCK_METHOD1(getwd, char*(char*));
39  MOCK_METHOD3(ioctl, int(int, int, va_list));
40  MOCK_METHOD1(isatty, int(int));
41  MOCK_METHOD2(kill, int(int, int));
42  MOCK_METHOD3(lchown, int(const char*, uid_t, gid_t));
43  MOCK_METHOD2(link, int(const char*, const char*));
44  MOCK_METHOD3(lseek, off_t(int, off_t, int));
45  MOCK_METHOD2(lstat, int(const char*, struct stat*));
46  MOCK_METHOD2(mkdir, int(const char*, mode_t));
47  MOCK_METHOD6(mmap, void*(void*, size_t, int, int, int, size_t));
48  MOCK_METHOD5(mount, int(const char*, const char*, const char*, unsigned long,
49                          const void*));
50  MOCK_METHOD2(munmap, int(void*, size_t));
51  MOCK_METHOD2(open, int(const char*, int));
52  MOCK_METHOD1(pipe, int(int[2]));
53  MOCK_METHOD3(read, ssize_t(int, void*, size_t));
54  MOCK_METHOD3(readlink, int(const char*, char*, size_t count));
55  MOCK_METHOD1(remove, int(const char*));
56  MOCK_METHOD2(rename, int(const char*, const char*));
57  MOCK_METHOD1(rmdir, int(const char*));
58  MOCK_METHOD3(sigaction, int(int, const struct sigaction*, struct sigaction*));
59  MOCK_METHOD2(stat, int(const char*, struct stat*));
60  MOCK_METHOD2(symlink, int(const char*, const char*));
61  MOCK_METHOD2(tcflush, int(int, int));
62  MOCK_METHOD2(tcgetattr, int(int, struct termios*));
63  MOCK_METHOD3(tcsetattr, int(int, int, const struct termios*));
64  MOCK_METHOD1(umount, int(const char*));
65  MOCK_METHOD2(truncate, int(const char*, off_t));
66  MOCK_METHOD1(unlink, int(const char*));
67  MOCK_METHOD2(utime, int(const char*, const struct utimbuf*));
68  MOCK_METHOD2(utimes, int(const char*, const struct timeval[2]));
69  MOCK_METHOD3(write, ssize_t(int, const void*, size_t));
70  MOCK_METHOD1(open_resource, int(const char*));
71
72#ifdef PROVIDES_SOCKET_API
73  MOCK_METHOD3(poll, int(struct pollfd*, nfds_t, int));
74  MOCK_METHOD5(select, int(int, fd_set*, fd_set*, fd_set*, struct timeval*));
75
76  // Socket support functions
77  MOCK_METHOD3(accept, int(int, struct sockaddr*, socklen_t*));
78  MOCK_METHOD3(bind, int(int, const struct sockaddr*, socklen_t));
79  MOCK_METHOD3(connect, int(int, const struct sockaddr*, socklen_t));
80  MOCK_METHOD1(gethostbyname, struct hostent*(const char*));
81  MOCK_METHOD3(getpeername, int(int, struct sockaddr*, socklen_t*));
82  MOCK_METHOD3(getsockname, int(int, struct sockaddr*, socklen_t*));
83  MOCK_METHOD5(getsockopt, int(int, int, int, void*, socklen_t*));
84  MOCK_METHOD2(listen, int(int, int));
85  MOCK_METHOD4(recv, ssize_t(int, void*, size_t, int));
86  MOCK_METHOD6(recvfrom, ssize_t(int, void*, size_t, int,
87                                 struct sockaddr*, socklen_t*));
88  MOCK_METHOD3(recvmsg, ssize_t(int, struct msghdr*, int));
89  MOCK_METHOD4(send, ssize_t(int, const void*, size_t, int));
90  MOCK_METHOD6(sendto, ssize_t(int, const void*, size_t, int,
91                               const struct sockaddr*, socklen_t));
92  MOCK_METHOD3(sendmsg, ssize_t(int, const struct msghdr*, int));
93  MOCK_METHOD5(setsockopt, int(int, int, int, const void*, socklen_t));
94  MOCK_METHOD2(shutdown, int(int, int));
95  MOCK_METHOD3(socket, int(int, int, int));
96  MOCK_METHOD4(socketpair, int(int, int, int, int*));
97#endif // PROVIDES_SOCKET_API
98};
99
100#endif  // TESTS_NACL_IO_TEST_MOCK_KERNEL_PROXY_H_
101