Skip to content

Commit d3fc980

Browse files
authored
feat(wrapped_facade_headers): Expand sys/types.h facade to cover all Linux Glibc typedefs that are also present in macOS. (#53)
1 parent f1ca6df commit d3fc980

File tree

4 files changed

+198
-11
lines changed

4 files changed

+198
-11
lines changed

src/ystdlib/wrapped_facade_headers/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,5 @@ cpp_library(
44
PUBLIC_HEADERS
55
sys/types.h
66
TESTS_SOURCES
7-
test/test_off_t.cpp
7+
test/test_sys_types.cpp
88
)
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,40 @@
1+
#ifndef YSTDLIB_WRAPPED_FACADE_HEADERS_SYS_TYPES_HPP
2+
#define YSTDLIB_WRAPPED_FACADE_HEADERS_SYS_TYPES_HPP
3+
14
// clang-format off
25
// IWYU pragma: begin_exports
36
#include <sys/types.h>
47

58
#if defined(__APPLE__)
9+
#include <sys/_types/_u_char.h>
10+
#include <sys/_types/_u_short.h>
11+
#include <sys/_types/_u_int.h>
12+
#include <sys/_types/_fsid_t.h>
13+
#include <sys/_types/_ino_t.h>
14+
#include <sys/_types/_ino64_t.h>
15+
#include <sys/_types/_dev_t.h>
16+
#include <sys/_types/_gid_t.h>
17+
#include <sys/_types/_mode_t.h>
18+
#include <sys/_types/_nlink_t.h>
19+
#include <sys/_types/_uid_t.h>
620
#include <sys/_types/_off_t.h>
21+
#include <sys/_types/_pid_t.h>
22+
#include <sys/_types/_id_t.h>
23+
#include <sys/_types/_ssize_t.h>
24+
#include <sys/_types/_caddr_t.h>
25+
#include <sys/_types/_key_t.h>
26+
#include <sys/_types/_useconds_t.h>
27+
#include <sys/_types/_suseconds_t.h>
28+
#include <sys/_types/_u_int8_t.h>
29+
#include <sys/_types/_u_int16_t.h>
30+
#include <sys/_types/_u_int32_t.h>
31+
#include <sys/_types/_u_int64_t.h>
32+
#include <sys/_types/_blksize_t.h>
33+
#include <sys/_types/_blkcnt_t.h>
34+
#include <sys/_types/_fsblkcnt_t.h>
35+
#include <sys/_types/_fsfilcnt_t.h>
736
#endif
837
// IWYU pragma: end_exports
938
// clang-format on
39+
40+
#endif // YSTDLIB_WRAPPED_FACADE_HEADERS_SYS_TYPES_HPP

src/ystdlib/wrapped_facade_headers/test/test_off_t.cpp

-10
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
#include <ystdlib/wrapped_facade_headers/sys/types.h>
2+
3+
#include <catch2/catch_test_macros.hpp>
4+
5+
namespace ystdlib::wrapped_facade_headers::test {
6+
TEST_CASE("test_sys_types_u_char", "[wrapped_facade_headers][sys_types][u_char]") {
7+
u_char const i{0};
8+
REQUIRE(0 == i);
9+
}
10+
11+
TEST_CASE("test_sys_types_u_short", "[wrapped_facade_headers][sys_types][u_short]") {
12+
u_short const i{0};
13+
REQUIRE(0 == i);
14+
}
15+
16+
TEST_CASE("test_sys_types_u_int", "[wrapped_facade_headers][sys_types][u_int]") {
17+
u_int const i{0};
18+
REQUIRE(0 == i);
19+
}
20+
21+
TEST_CASE("test_sys_types_u_long", "[wrapped_facade_headers][sys_types][u_long]") {
22+
u_long const i{0};
23+
REQUIRE(0 == i);
24+
}
25+
26+
TEST_CASE("test_sys_types_quad_t", "[wrapped_facade_headers][sys_types][quad_t]") {
27+
quad_t const i{0};
28+
REQUIRE(0 == i);
29+
}
30+
31+
TEST_CASE("test_sys_types_u_quad_t", "[wrapped_facade_headers][sys_types][u_quad_t]") {
32+
u_quad_t const i{0};
33+
REQUIRE(0 == i);
34+
}
35+
36+
TEST_CASE("test_sys_types_fsid_t", "[wrapped_facade_headers][sys_types][fsid_t]") {
37+
fsid_t const i{{0, 0}};
38+
#if defined(__linux__)
39+
REQUIRE(0 == i.__val[0]);
40+
REQUIRE(0 == i.__val[1]);
41+
#elif defined(__APPLE__)
42+
REQUIRE(0 == i.val[0]);
43+
REQUIRE(0 == i.val[1]);
44+
#endif
45+
}
46+
47+
TEST_CASE("test_sys_types_ino_t", "[wrapped_facade_headers][sys_types][ino_t]") {
48+
ino_t const i{0};
49+
REQUIRE(0 == i);
50+
}
51+
52+
TEST_CASE("test_sys_types_ino64_t", "[wrapped_facade_headers][sys_types][ino64_t]") {
53+
ino64_t const i{0};
54+
REQUIRE(0 == i);
55+
}
56+
57+
TEST_CASE("test_sys_types_dev_t", "[wrapped_facade_headers][sys_types][dev_t]") {
58+
dev_t const i{0};
59+
REQUIRE(0 == i);
60+
}
61+
62+
TEST_CASE("test_sys_types_gid_t", "[wrapped_facade_headers][sys_types][gid_t]") {
63+
gid_t const i{0};
64+
REQUIRE(0 == i);
65+
}
66+
67+
TEST_CASE("test_sys_types_mode_t", "[wrapped_facade_headers][sys_types][mode_t]") {
68+
mode_t const i{0};
69+
REQUIRE(0 == i);
70+
}
71+
72+
TEST_CASE("test_sys_types_nlink_t", "[wrapped_facade_headers][sys_types][nlink_t]") {
73+
nlink_t const i{0};
74+
REQUIRE(0 == i);
75+
}
76+
77+
TEST_CASE("test_sys_types_uid_t", "[wrapped_facade_headers][sys_types][uid_t]") {
78+
uid_t const i{0};
79+
REQUIRE(0 == i);
80+
}
81+
82+
TEST_CASE("test_sys_types_off_t", "[wrapped_facade_headers][sys_types][off_t]") {
83+
off_t const i{0};
84+
REQUIRE(0 == i);
85+
}
86+
87+
TEST_CASE("test_sys_types_pid_t", "[wrapped_facade_headers][sys_types][pid_t]") {
88+
pid_t const i{0};
89+
REQUIRE(0 == i);
90+
}
91+
92+
TEST_CASE("test_sys_types_id_t", "[wrapped_facade_headers][sys_types][id_t]") {
93+
id_t const i{0};
94+
REQUIRE(0 == i);
95+
}
96+
97+
TEST_CASE("test_sys_types_ssize_t", "[wrapped_facade_headers][sys_types][ssize_t]") {
98+
ssize_t const i{0};
99+
REQUIRE(0 == i);
100+
}
101+
102+
TEST_CASE("test_sys_types_daddr_t", "[wrapped_facade_headers][sys_types][daddr_t]") {
103+
daddr_t const i{0};
104+
REQUIRE(0 == i);
105+
}
106+
107+
TEST_CASE("test_sys_types_caddr_t", "[wrapped_facade_headers][sys_types][caddr_t]") {
108+
caddr_t p{nullptr};
109+
REQUIRE(nullptr == p);
110+
}
111+
112+
TEST_CASE("test_sys_types_key_t", "[wrapped_facade_headers][sys_types][key_t]") {
113+
key_t const i{0};
114+
REQUIRE(0 == i);
115+
}
116+
117+
TEST_CASE("test_sys_types_useconds_t", "[wrapped_facade_headers][sys_types][useconds_t]") {
118+
useconds_t const i{0};
119+
REQUIRE(0 == i);
120+
}
121+
122+
TEST_CASE("test_sys_types_suseconds_t", "[wrapped_facade_headers][sys_types][suseconds_t]") {
123+
suseconds_t const i{0};
124+
REQUIRE(0 == i);
125+
}
126+
127+
TEST_CASE("test_sys_types_u_int8_t", "[wrapped_facade_headers][sys_types][u_int8_t]") {
128+
u_int8_t const i{0};
129+
REQUIRE(0 == i);
130+
}
131+
132+
TEST_CASE("test_sys_types_u_int16_t", "[wrapped_facade_headers][sys_types][u_int16_t]") {
133+
u_int16_t const i{0};
134+
REQUIRE(0 == i);
135+
}
136+
137+
TEST_CASE("test_sys_types_u_int32_t", "[wrapped_facade_headers][sys_types][u_int32_t]") {
138+
u_int32_t const i{0};
139+
REQUIRE(0 == i);
140+
}
141+
142+
TEST_CASE("test_sys_types_u_int64_t", "[wrapped_facade_headers][sys_types][u_int64_t]") {
143+
u_int64_t const i{0};
144+
REQUIRE(0 == i);
145+
}
146+
147+
TEST_CASE("test_sys_types_blksize_t", "[wrapped_facade_headers][sys_types][blksize_t]") {
148+
blksize_t const i{0};
149+
REQUIRE(0 == i);
150+
}
151+
152+
TEST_CASE("test_sys_types_blkcnt_t", "[wrapped_facade_headers][sys_types][blkcnt_t]") {
153+
blkcnt_t const i{0};
154+
REQUIRE(0 == i);
155+
}
156+
157+
TEST_CASE("test_sys_types_fsblkcnt_t", "[wrapped_facade_headers][sys_types][fsblkcnt_t]") {
158+
fsblkcnt_t const i{0};
159+
REQUIRE(0 == i);
160+
}
161+
162+
TEST_CASE("test_sys_types_fsfilcnt_t", "[wrapped_facade_headers][sys_types][fsfilcnt_t]") {
163+
fsfilcnt_t const i{0};
164+
REQUIRE(0 == i);
165+
}
166+
} // namespace ystdlib::wrapped_facade_headers::test

0 commit comments

Comments
 (0)