summaryrefslogtreecommitdiff
path: root/tests/test-sys_types-h.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
committerJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
commit27dae84ed92f1ef0300263091972338d12e78348 (patch)
tree7c52931f474fafb8a4bd4fd15ca3461c77cdecc2 /tests/test-sys_types-h.c
parent4682deeb62247d34de87f8e777f99e2d337fd377 (diff)
New upstream version 1.4.1upstream/1.4.1upstream
Diffstat (limited to 'tests/test-sys_types-h.c')
-rw-r--r--tests/test-sys_types-h.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/test-sys_types-h.c b/tests/test-sys_types-h.c
new file mode 100644
index 00000000..b3d6abec
--- /dev/null
+++ b/tests/test-sys_types-h.c
@@ -0,0 +1,64 @@
+/* Test of <sys/types.h> substitute.
+ Copyright (C) 2011-2025 Free Software Foundation, Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>. */
+
+/* Written by Bruno Haible <bruno@clisp.org>, 2011. */
+
+#include <config.h>
+
+#include <sys/types.h>
+
+/* Check that the most important types are defined. */
+pid_t t1;
+size_t t2;
+ssize_t t3;
+off_t t4;
+mode_t t5;
+off64_t t6;
+blksize_t t7;
+blkcnt_t t8;
+
+#include "intprops.h"
+
+/* POSIX requires that pid_t is a signed integer type. */
+static_assert (TYPE_SIGNED (pid_t));
+
+/* POSIX requires that size_t is an unsigned integer type. */
+static_assert (! TYPE_SIGNED (size_t));
+
+/* POSIX requires that ssize_t is a signed integer type. */
+static_assert (TYPE_SIGNED (ssize_t));
+
+/* POSIX requires that off_t is a signed integer type. */
+static_assert (TYPE_SIGNED (off_t));
+static_assert (TYPE_SIGNED (off64_t));
+
+/* POSIX requires that blksize_t is a signed integer type. */
+#if !(defined __ANDROID__ \
+ || (defined __FreeBSD_kernel__ && !defined __FreeBSD__) \
+ || defined __GLIBC__ && defined __alpha)
+static_assert (TYPE_SIGNED (blksize_t));
+#endif
+
+/* POSIX requires that blkcnt_t is a signed integer type. */
+#if !(defined __ANDROID__ || defined __GLIBC__ && defined __alpha)
+static_assert (TYPE_SIGNED (blkcnt_t));
+#endif
+
+int
+main (void)
+{
+ return 0;
+}