From 7a42e5e6b0be59cb18a663196b0ede916d98e0a6 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 16 Jun 2018 16:12:51 +0200 Subject: [PATCH] mescc: Add another fopen test. * scaffold/tests/98-fopen.c: New file. * build-aux/check-mescc.sh (tests): Add it. * AUTHORS: Mention it. --- AUTHORS | 1 + build-aux/check-mescc.sh | 1 + scaffold/tests/98-fopen.c | 50 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+) create mode 100644 scaffold/tests/98-fopen.c diff --git a/AUTHORS b/AUTHORS index 3686cbb5..3224703a 100644 --- a/AUTHORS +++ b/AUTHORS @@ -4,6 +4,7 @@ All files except the imported files listed below Jeremiah Orians lib/libc.c (fopen) +scaffold/tests/98-fopen.c Han-Wen Nienhuys lib/libc+tcc.c (_memmem, memmem) diff --git a/build-aux/check-mescc.sh b/build-aux/check-mescc.sh index d4754fc8..eec5b9a3 100755 --- a/build-aux/check-mescc.sh +++ b/build-aux/check-mescc.sh @@ -142,6 +142,7 @@ t 95-signal 96-strto 97-fopen +98-fopen " # 90: needs GNU, fails for mescc, passes for tcc diff --git a/scaffold/tests/98-fopen.c b/scaffold/tests/98-fopen.c new file mode 100644 index 00000000..99b6d4c1 --- /dev/null +++ b/scaffold/tests/98-fopen.c @@ -0,0 +1,50 @@ +/* -*-comment-start: "//";comment-end:""-*- + * Mes --- Maxwell Equations of Software + * Copyright © 2018 Jeremiah Orians + * + * This file is part of Mes. + * + * Mes 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. + * + * Mes 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 Mes. If not, see . + */ + +#include +#include +#include +#include +#include +#include + +int main() +{ + FILE* test = fopen("tmp", "a+"); + FILE* hold = fopen("tmp", "r"); + int a; + int b; + int i = 1000; + do + { + a = fgetc(test); + b = fgetc(hold); + fprintf(stdout, "%c == %c\n", a, b); + if(i < 1000) + { + fflush(test); + fputc('a', test); + } + if(b == EOF) exit(EXIT_SUCCESS); + i = i + 1; + }while (a == b); + fprintf(stderr, "OOOPS you were not supposed to get here\n"); + exit(EXIT_FAILURE); +}