diff options
| author | mpi <> | 2013-03-28 09:35:58 +0000 |
|---|---|---|
| committer | mpi <> | 2013-03-28 09:35:58 +0000 |
| commit | 4ac463dc130bdb00f62e4ece898870cfe8b51ec2 (patch) | |
| tree | f13fc73977d5bc9d35902b7f68990eb778d06878 /src/regress/lib/libc/fmemopen/fmemopentest.c | |
| parent | df80a6f3fce0a41f80bb51a076a108fbdde0a0db (diff) | |
| download | openbsd-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.c | 41 |
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 | ||
| 163 | int | 163 | int |
| 164 | seektest(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 | |||
| 201 | int | ||
| 164 | main(void) | 202 | main(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 | } |
