]>
git.saurik.com Git - apple/libc.git/blob - tests/strerror.c
2 * Copyright (c) 2001 Wes Peters <wes@FreeBSD.org>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 #include "darwintest.h"
44 //T_DECL(strerror_unknown_error, "")
46 sret
= strerror(INT_MAX
);
47 snprintf(buf
, sizeof(buf
), "Unknown error: %d", INT_MAX
);
48 T_EXPECT_EQ_STR(sret
, buf
, NULL
);
49 T_EXPECT_EQ(errno
, EINVAL
, NULL
);
51 //T_DECL(strerror_no_error, "")
54 T_EXPECT_EQ_STR(sret
, "Undefined error: 0", NULL
);
55 T_EXPECT_EQ(errno
, 0, NULL
);
57 //T_DECL(strerror_EPERM_test, "")
59 sret
= strerror(EPERM
);
60 T_EXPECT_EQ_STR(sret
, "Operation not permitted", NULL
);
61 T_EXPECT_EQ(errno
, 0, NULL
);
63 //T_DECL(strerror_EPFNOSUPPORT_test, "")
65 sret
= strerror(EPFNOSUPPORT
);
66 T_EXPECT_EQ_STR(sret
, "Protocol family not supported", NULL
);
67 T_EXPECT_EQ(errno
, 0, NULL
);
69 //T_DECL(strerror_ELAST_test, "")
71 sret
= strerror(ELAST
);
72 T_EXPECT_EQ(errno
, 0, NULL
);
75 T_DECL(strerror_r
, "")
77 memset(buf
, '*', sizeof(buf
));
78 iret
= strerror_r(-1, buf
, sizeof(buf
));
79 T_EXPECT_EQ_STR(buf
, "Unknown error: -1", NULL
);
80 T_EXPECT_EQ(iret
, EINVAL
, NULL
);
82 //T_DECL(strerror_r__EPERM_one_byte_short, "")
83 memset(buf
, '*', sizeof(buf
));
84 /* One byte too short. */
85 iret
= strerror_r(EPERM
, buf
, strlen("Operation not permitted"));
86 T_EXPECT_EQ_STR(buf
, "Operation not permitte", NULL
);
87 T_EXPECT_EQ(iret
, ERANGE
, NULL
);
89 //T_DECL(strerror_r__EPERM_unknown_error_one_byte_short, "")
90 memset(buf
, '*', sizeof(buf
));
91 /* One byte too short. */
92 iret
= strerror_r(-1, buf
, strlen("Unknown error: -1"));
93 T_EXPECT_EQ_STR(buf
, "Unknown error: -", NULL
);
94 T_EXPECT_EQ(iret
, EINVAL
, NULL
);
96 //T_DECL(strerror_r__EPERM_unknown_error_two_bytes_short, "")
97 memset(buf
, '*', sizeof(buf
));
98 /* Two bytes too short. */
99 iret
= strerror_r(-2, buf
, strlen("Unknown error: -2") - 1);
100 T_EXPECT_EQ_STR(buf
, "Unknown error: ", NULL
);
101 T_EXPECT_EQ(iret
, EINVAL
, NULL
);
103 //T_DECL(strerror_r__EPERM_unknown_error_three_bytes_short, "")
104 memset(buf
, '*', sizeof(buf
));
105 /* Three bytes too short. */
106 iret
= strerror_r(-2, buf
, strlen("Unknown error: -2") - 2);
107 T_EXPECT_EQ_STR(buf
, "Unknown error:", NULL
);
108 T_EXPECT_EQ(iret
, EINVAL
, NULL
);
110 //T_DECL(strerror_r__EPERM_unknown_error_12345_one_byte_short, "")
111 memset(buf
, '*', sizeof(buf
));
112 /* One byte too short. */
113 iret
= strerror_r(12345, buf
, strlen("Unknown error: 12345"));
114 T_EXPECT_EQ_STR(buf
, "Unknown error: 1234", NULL
);
115 T_EXPECT_EQ(iret
, EINVAL
, NULL
);
117 //T_DECL(strerror_r__no_error, "")
118 memset(buf
, '*', sizeof(buf
));
119 iret
= strerror_r(0, buf
, sizeof(buf
));
120 T_EXPECT_EQ_STR(buf
, "Undefined error: 0", NULL
);
121 T_EXPECT_EQ(iret
, 0, NULL
);
123 //T_DECL(strerror_r__EDEADLK, "")
124 memset(buf
, '*', sizeof(buf
));
125 iret
= strerror_r(EDEADLK
, buf
, sizeof(buf
));
126 T_EXPECT_EQ_STR(buf
, "Resource deadlock avoided", NULL
);
127 T_EXPECT_EQ(iret
, 0, NULL
);
129 //T_DECL(strerror_r__EPROCLIM, "")
130 memset(buf
, '*', sizeof(buf
));
131 iret
= strerror_r(EPROCLIM
, buf
, sizeof(buf
));
132 T_EXPECT_EQ_STR(buf
, "Too many processes", NULL
);
133 T_EXPECT_EQ(iret
, 0, NULL
);