summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/fmemopen/fmemopentest.c
diff options
context:
space:
mode:
authormpi <>2013-03-28 09:35:58 +0000
committermpi <>2013-03-28 09:35:58 +0000
commit4ac463dc130bdb00f62e4ece898870cfe8b51ec2 (patch)
treef13fc73977d5bc9d35902b7f68990eb778d06878 /src/regress/lib/libc/fmemopen/fmemopentest.c
parentdf80a6f3fce0a41f80bb51a076a108fbdde0a0db (diff)
downloadopenbsd-4ac463dc130bdb00f62e4ece898870cfe8b51ec2.tar.gz
openbsd-4ac463dc130bdb00f62e4ece898870cfe8b51ec2.tar.bz2
openbsd-4ac463dc130bdb00f62e4ece898870cfe8b51ec2.zip
More tests for negative seeks, prodded by matthew@
Diffstat (limited to 'src/regress/lib/libc/fmemopen/fmemopentest.c')
-rw-r--r--src/regress/lib/libc/fmemopen/fmemopentest.c41
1 files changed, 40 insertions, 1 deletions
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 @@
1/* $OpenBSD: fmemopentest.c,v 1.2 2013/03/27 15:08:13 mpi Exp $ */ 1/* $OpenBSD: fmemopentest.c,v 1.3 2013/03/28 09:35:58 mpi Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org> 4 * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
@@ -161,6 +161,44 @@ writetest(void)
161} 161}
162 162
163int 163int
164seektest(void)
165{
166 FILE *s1;
167 char string[] = "long string for testing seek";
168 size_t len, slen;
169 int failures = 0;
170
171 slen = strlen(string) + 1;
172
173 s1 = fmemopen(string, slen, "r");
174 if (s1 == NULL)
175 return (1);
176
177 if (fseek(s1, 8, SEEK_SET) != 0) {
178 warnx("failed to fseek. (14)");
179 failures++;
180 }
181
182 if (ftell(s1) != 8) {
183 warnx("failed seek test. (15)");
184 failures++;
185 }
186
187 /* Try to seek backward */
188 if (fseek(s1, -1, SEEK_CUR) != 0) {
189 warnx("failed to fseek. (16)");
190 failures++;
191 }
192
193 if (ftell(s1) != 7) {
194 warnx("failed seeking backward. (17)");
195 failures++;
196 }
197
198 return (failures);
199}
200
201int
164main(void) 202main(void)
165{ 203{
166 int failures = 0; 204 int failures = 0;
@@ -168,6 +206,7 @@ main(void)
168 failures += simpletest(); 206 failures += simpletest();
169 failures += updatetest(); 207 failures += updatetest();
170 failures += writetest(); 208 failures += writetest();
209 failures += seektest();
171 210
172 return (failures); 211 return (failures);
173} 212}