summaryrefslogtreecommitdiff
path: root/src
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
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')
-rw-r--r--src/regress/lib/libc/fmemopen/fmemopentest.c41
-rw-r--r--src/regress/lib/libc/open_memstream/open_memstreamtest.c24
2 files changed, 63 insertions, 2 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}
diff --git a/src/regress/lib/libc/open_memstream/open_memstreamtest.c b/src/regress/lib/libc/open_memstream/open_memstreamtest.c
index b9c0221b1a..a2327f21c5 100644
--- a/src/regress/lib/libc/open_memstream/open_memstreamtest.c
+++ b/src/regress/lib/libc/open_memstream/open_memstreamtest.c
@@ -1,4 +1,5 @@
1/* $OpenBSD: open_memstreamtest.c,v 1.2 2013/03/25 03:33:28 guenther Exp $ */ 1/* $OpenBSD: open_memstreamtest.c,v 1.3 2013/03/28 09:35:58 mpi Exp $ */
2
2/* 3/*
3 * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org> 4 * Copyright (c) 2011 Martin Pieuchot <mpi@openbsd.org>
4 * 5 *
@@ -137,6 +138,27 @@ main(void)
137 failures++; 138 failures++;
138 } 139 }
139 140
141 if (fseek(fp, 8, SEEK_SET) != 0) {
142 warnx("failed to fseek. (19)");
143 failures++;
144 }
145
146 if (ftell(fp) != 8) {
147 warnx("failed seek test. (20)");
148 failures++;
149 }
150
151 /* Try to seek backward */
152 if (fseek(fp, -1, SEEK_CUR) != 0) {
153 warnx("failed to fseek. (21)");
154 failures++;
155 }
156
157 if (ftell(fp) != 7) {
158 warnx("failed seeking backward. (22)");
159 failures++;
160 }
161
140 free(buf); 162 free(buf);
141 163
142 return (failures); 164 return (failures);