blob: c08285692f830f92d930cee4f256ed3c6496ff59 [file] [log] [blame]
Ben Murdochca12bfa2013-07-23 11:17:05 +01001// Copyright (c) 2012 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.
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +00004
5#ifndef LIBRARIES_NACL_IO_TEST_KERNEL_PROXY_MOCK_H_
6#define LIBRARIES_NACL_IO_TEST_KERNEL_PROXY_MOCK_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"
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010013#include "nacl_io/ossocket.h"
Ben Murdochbb1529c2013-08-08 10:24:53 +010014#include "nacl_io/ostermios.h"
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000015
Ben Murdochca12bfa2013-07-23 11:17:05 +010016class KernelProxyMock : public nacl_io::KernelProxy {
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000017 public:
18 KernelProxyMock();
19 virtual ~KernelProxyMock();
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));
Ben Murdocheb525c52013-07-10 11:40:50 +010024 MOCK_METHOD3(chown, int(const char*, uid_t, gid_t));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000025 MOCK_METHOD1(close, int(int));
26 MOCK_METHOD1(dup, int(int));
27 MOCK_METHOD2(dup2, int(int, int));
Ben Murdocheb525c52013-07-10 11:40:50 +010028 MOCK_METHOD3(fchown, int(int, uid_t, gid_t));
Torne (Richard Coles)90dce4d2013-05-29 14:40:03 +010029 MOCK_METHOD2(ftruncate, int(int, off_t));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000030 MOCK_METHOD2(fstat, int(int, struct stat*));
31 MOCK_METHOD1(fsync, int(int));
32 MOCK_METHOD2(getcwd, char*(char*, size_t));
33 MOCK_METHOD3(getdents, int(int, void*, unsigned int));
34 MOCK_METHOD1(getwd, char*(char*));
Ben Murdocheb525c52013-07-10 11:40:50 +010035 MOCK_METHOD3(ioctl, int(int, int, char*));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000036 MOCK_METHOD1(isatty, int(int));
Ben Murdocheb525c52013-07-10 11:40:50 +010037 MOCK_METHOD3(lchown, int(const char*, uid_t, gid_t));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000038 MOCK_METHOD3(lseek, off_t(int, off_t, int));
39 MOCK_METHOD2(mkdir, int(const char*, mode_t));
40 MOCK_METHOD5(mount, int(const char*, const char*, const char*, unsigned long,
41 const void*));
42 MOCK_METHOD2(open, int(const char*, int));
43 MOCK_METHOD3(read, ssize_t(int, void*, size_t));
44 MOCK_METHOD1(remove, int(const char*));
45 MOCK_METHOD1(rmdir, int(const char*));
46 MOCK_METHOD2(stat, int(const char*, struct stat*));
Ben Murdochbb1529c2013-08-08 10:24:53 +010047 MOCK_METHOD2(tcgetattr, int(int, struct termios*));
48 MOCK_METHOD3(tcsetattr, int(int, int, const struct termios*));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000049 MOCK_METHOD1(umount, int(const char*));
50 MOCK_METHOD1(unlink, int(const char*));
Ben Murdocheb525c52013-07-10 11:40:50 +010051 MOCK_METHOD2(utime, int(const char*, const struct utimbuf*));
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000052 MOCK_METHOD3(write, ssize_t(int, const void*, size_t));
53 MOCK_METHOD2(link, int(const char*, const char*));
54 MOCK_METHOD2(symlink, int(const char*, const char*));
55 MOCK_METHOD6(mmap, void*(void*, size_t, int, int, int, size_t));
56 MOCK_METHOD1(open_resource, int(const char*));
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010057
58#ifdef PROVIDES_SOCKET_API
Ben Murdoch32409262013-08-07 11:04:47 +010059 MOCK_METHOD3(poll, int(struct pollfd*, nfds_t, int));
60 MOCK_METHOD5(select, int(int, fd_set*, fd_set*, fd_set*, struct timeval*));
61
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010062 // Socket support functions
63 MOCK_METHOD3(accept, int(int, struct sockaddr*, socklen_t*));
64 MOCK_METHOD3(bind, int(int, const struct sockaddr*, socklen_t));
65 MOCK_METHOD3(connect, int(int, const struct sockaddr*, socklen_t));
Ben Murdochbb1529c2013-08-08 10:24:53 +010066 MOCK_METHOD1(gethostbyname, struct hostent*(const char*));
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010067 MOCK_METHOD3(getpeername, int(int, struct sockaddr*, socklen_t*));
68 MOCK_METHOD3(getsockname, int(int, struct sockaddr*, socklen_t*));
69 MOCK_METHOD5(getsockopt, int(int, int, int, void*, socklen_t*));
Ben Murdochbb1529c2013-08-08 10:24:53 +010070 MOCK_METHOD1(herror, void(const char*));
71 MOCK_METHOD1(hstrerror, const char*(int));
Torne (Richard Coles)a36e5922013-08-05 13:57:33 +010072 MOCK_METHOD2(listen, int(int, int));
73 MOCK_METHOD4(recv, ssize_t(int, void*, size_t, int));
74 MOCK_METHOD6(recvfrom, ssize_t(int, void*, size_t, int,
75 struct sockaddr*, socklen_t*));
76 MOCK_METHOD3(recvmsg, ssize_t(int, struct msghdr*, int));
77 MOCK_METHOD4(send, ssize_t(int, const void*, size_t, int));
78 MOCK_METHOD6(sendto, ssize_t(int, const void*, size_t, int,
79 const struct sockaddr*, socklen_t));
80 MOCK_METHOD3(sendmsg, ssize_t(int, const struct msghdr*, int));
81 MOCK_METHOD5(setsockopt, int(int, int, int, const void*, socklen_t));
82 MOCK_METHOD2(shutdown, int(int, int));
83 MOCK_METHOD3(socket, int(int, int, int));
84 MOCK_METHOD4(socketpair, int(int, int, int, int*));
85#endif // PROVIDES_SOCKET_API
86
Torne (Richard Coles)2a99a7e2013-03-28 15:31:22 +000087};
88
89#endif // LIBRARIES_NACL_IO_TEST_KERNEL_PROXY_MOCK_H_