summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/telldir/shortseek.c
diff options
context:
space:
mode:
authorcvs2svn <admin@example.com>2025-04-14 17:32:06 +0000
committercvs2svn <admin@example.com>2025-04-14 17:32:06 +0000
commiteb8dd9dca1228af0cd132f515509051ecfabf6f6 (patch)
treeedb6da6af7e865d488dc1a29309f1e1ec226e603 /src/regress/lib/libc/telldir/shortseek.c
parent247f0352e0ed72a4f476db9dc91f4d982bc83eb2 (diff)
downloadopenbsd-tb_20250414.tar.gz
openbsd-tb_20250414.tar.bz2
openbsd-tb_20250414.zip
This commit was manufactured by cvs2git to create tag 'tb_20250414'.tb_20250414
Diffstat (limited to 'src/regress/lib/libc/telldir/shortseek.c')
-rw-r--r--src/regress/lib/libc/telldir/shortseek.c91
1 files changed, 0 insertions, 91 deletions
diff --git a/src/regress/lib/libc/telldir/shortseek.c b/src/regress/lib/libc/telldir/shortseek.c
deleted file mode 100644
index 9b2141ab4c..0000000000
--- a/src/regress/lib/libc/telldir/shortseek.c
+++ /dev/null
@@ -1,91 +0,0 @@
1/* $OpenBSD: shortseek.c,v 1.1 2013/11/03 00:20:24 schwarze Exp $ */
2
3/* Written by Otto Moerbeek, 2006, Public domain. */
4/* Modified by Ingo Schwarze, 2013, Public domain. */
5
6#include <sys/types.h>
7#include <dirent.h>
8#include <err.h>
9#include <limits.h>
10#include <stdio.h>
11#include <string.h>
12
13#include "utils.h"
14
15#define NFILES 5
16
17static void
18shortloop(DIR *dp, int iend, int iback)
19{
20 struct dirent *f;
21 char fend[PATH_MAX], fback[PATH_MAX];
22 long pos, t, remember = -1;
23 int i;
24
25 rewinddir(dp);
26 snprintf(fend, sizeof fend, "%d", iend);
27 snprintf(fback, sizeof fback, "%d", iback);
28
29 /* Scan to iend, remember where iback is. */
30
31 for (;;) {
32 pos = telldir(dp);
33 f = readdir(dp);
34 if (f == NULL)
35 errx(1, "file %s not found", fend);
36 if (strcmp(fback, f->d_name) == 0)
37 remember = pos;
38 if (strcmp(fend, f->d_name) == 0)
39 break;
40 }
41 if (remember == -1)
42 errx(1, "file %s not found", fback);
43
44 /* Go back to iback, checking seekdir, telldir and readdir. */
45
46 seekdir(dp, remember);
47 if ((t = telldir(dp)) != remember)
48 errx(1, "tell after seek %s %ld != %ld", fback, t, remember);
49 if ((t = telldir(dp)) != remember)
50 errx(1, "tell after tell %s %ld != %ld", fback, t, remember);
51 f = readdir(dp);
52 if (f == NULL)
53 errx(1, "readdir %s at %ld", fback, remember);
54
55 if (strcmp(f->d_name, fback))
56 errx(1, "name mismatch: %s != %s", f->d_name, fback);
57
58 /* Check that readdir can iterate the remaining files. */
59
60 for (i = iback + 1; i < NFILES; i++) {
61 f = readdir(dp);
62 if (f == NULL)
63 errx(1, "readdir %i failed", i);
64 }
65
66 /* Check that readdir stops at the right place. */
67
68 f = readdir(dp);
69 if (f != NULL)
70 errx(1, "readdir %i returned %s", NFILES, f->d_name);
71}
72
73void
74shortseek(void)
75{
76 DIR *dp;
77 int iend, iback;
78
79 createfiles(NFILES);
80
81 dp = opendir("d");
82 if (dp == NULL)
83 err(1, "shortseek: opendir");
84
85 for (iend = 0; iend < NFILES; iend++)
86 for (iback = 0; iback <= iend; iback++)
87 shortloop(dp, iend, iback);
88
89 closedir(dp);
90 delfiles();
91}