aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/fmt/test/posix-mock.h
blob: 22f305cbf7707c8172fedc35389b6ec5ed7b4c25 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// Formatting library for C++ - mocks of POSIX functions 
// 
// Copyright (c) 2012 - present, Victor Zverovich 
// All rights reserved. 
// 
// For the license information refer to format.h. 
 
#ifndef FMT_POSIX_TEST_H 
#define FMT_POSIX_TEST_H 
 
#include <errno.h> 
#include <locale.h> 
#include <stdio.h> 
#ifdef __APPLE__ 
#  include <xlocale.h> 
#endif 
 
#ifdef _WIN32 
#  include <windows.h> 
#  include <locale>  // for libc++ locale_win32.h 
#else 
#  include <sys/param.h>  // for FreeBSD version 
#  include <sys/types.h>  // for ssize_t 
#endif 
 
#ifndef _MSC_VER 
struct stat; 
#endif 
 
namespace test { 
 
#ifndef _MSC_VER 
// Size type for read and write. 
typedef size_t size_t; 
typedef ssize_t ssize_t; 
int open(const char* path, int oflag, int mode); 
int fstat(int fd, struct stat* buf); 
#else 
typedef unsigned size_t; 
typedef int ssize_t; 
errno_t sopen_s(int* pfh, const char* filename, int oflag, int shflag, 
                int pmode); 
#endif 
 
#ifndef _WIN32 
long sysconf(int name); 
#else 
DWORD GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh); 
#endif 
 
int close(int fildes); 
 
int dup(int fildes); 
int dup2(int fildes, int fildes2); 
 
FILE* fdopen(int fildes, const char* mode); 
 
ssize_t read(int fildes, void* buf, size_t nbyte); 
ssize_t write(int fildes, const void* buf, size_t nbyte); 
 
#ifndef _WIN32 
int pipe(int fildes[2]); 
#else 
int pipe(int* pfds, unsigned psize, int textmode); 
#endif 
 
FILE* fopen(const char* filename, const char* mode); 
int fclose(FILE* stream); 
int(fileno)(FILE* stream); 
 
#if defined(FMT_LOCALE) && (!defined(_WIN32) || defined(_LIBCPP_VERSION)) 
locale_t newlocale(int category_mask, const char* locale, locale_t base); 
#endif 
}  // namespace test 
 
#define FMT_SYSTEM(call) test::call 
 
#endif  // FMT_POSIX_TEST_H