Fix dtoab.
[mes.git] / lib / tests / posix / 50-open-read.c
1 /* -*-comment-start: "//";comment-end:""-*-
2  * GNU Mes --- Maxwell Equations of Software
3  * Copyright © 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
4  *
5  * This file is part of GNU Mes.
6  *
7  * GNU Mes is free software; you can redistribute it and/or modify it
8  * under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3 of the License, or (at
10  * your option) any later version.
11  *
12  * GNU Mes is distributed in the hope that it will be useful, but
13  * WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Mes.  If not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #include <mes/lib.h>
22 #include <fcntl.h>
23 #include <limits.h>
24 #include <stdlib.h>
25 #include <string.h>
26 #include <unistd.h>
27
28 int
29 main (int argc, char const *argv[])
30 {
31   eputs ("test:getenv\n");
32   char file_name[PATH_MAX];
33   char *srcdir = getenv ("abs_top_srcdir");
34   if (! srcdir) // for running by hand
35     srcdir = ".";
36   eputs ("srcdir=");
37   eputs (srcdir);
38   eputs ("\n");
39   strcpy (file_name, srcdir);
40   strcpy (file_name + strlen (srcdir), "/lib/tests/posix/data/open-read");
41   eputs ("test open:");
42   eputs (file_name);
43   eputs ("\n");
44   int filedes = open (file_name, 0, 0);
45   if (filedes <= 2)
46     return 1;
47   char buf[20];
48   int n = read (filedes, buf, sizeof (buf));
49   if (n != 5)
50     return 2;
51   if (strcmp (buf, "hello"))
52     return 3;
53   eputs ("test read: ");
54   eputs (buf);
55   eputs ("\n");
56   return 0;
57 }