From 4ac463dc130bdb00f62e4ece898870cfe8b51ec2 Mon Sep 17 00:00:00 2001 From: mpi <> Date: Thu, 28 Mar 2013 09:35:58 +0000 Subject: More tests for negative seeks, prodded by matthew@ --- src/regress/lib/libc/fmemopen/fmemopentest.c | 41 +++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'src/regress/lib/libc/fmemopen/fmemopentest.c') diff --git a/src/regress/lib/libc/fmemopen/fmemopentest.c b/src/regress/lib/libc/fmemopen/fmemopentest.c index 57063aeb0a..203c93be65 100644 --- a/src/regress/lib/libc/fmemopen/fmemopentest.c +++ b/src/regress/lib/libc/fmemopen/fmemopentest.c @@ -1,4 +1,4 @@ -/* $OpenBSD: fmemopentest.c,v 1.2 2013/03/27 15:08:13 mpi Exp $ */ +/* $OpenBSD: fmemopentest.c,v 1.3 2013/03/28 09:35:58 mpi Exp $ */ /* * Copyright (c) 2011 Martin Pieuchot @@ -160,6 +160,44 @@ writetest(void) return (failures); } +int +seektest(void) +{ + FILE *s1; + char string[] = "long string for testing seek"; + size_t len, slen; + int failures = 0; + + slen = strlen(string) + 1; + + s1 = fmemopen(string, slen, "r"); + if (s1 == NULL) + return (1); + + if (fseek(s1, 8, SEEK_SET) != 0) { + warnx("failed to fseek. (14)"); + failures++; + } + + if (ftell(s1) != 8) { + warnx("failed seek test. (15)"); + failures++; + } + + /* Try to seek backward */ + if (fseek(s1, -1, SEEK_CUR) != 0) { + warnx("failed to fseek. (16)"); + failures++; + } + + if (ftell(s1) != 7) { + warnx("failed seeking backward. (17)"); + failures++; + } + + return (failures); +} + int main(void) { @@ -168,6 +206,7 @@ main(void) failures += simpletest(); failures += updatetest(); failures += writetest(); + failures += seektest(); return (failures); } -- cgit v1.2.3-55-g6feb