summaryrefslogtreecommitdiff
path: root/src/regress/lib/libc/sys/atf-c.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/regress/lib/libc/sys/atf-c.c')
-rw-r--r--src/regress/lib/libc/sys/atf-c.c128
1 files changed, 0 insertions, 128 deletions
diff --git a/src/regress/lib/libc/sys/atf-c.c b/src/regress/lib/libc/sys/atf-c.c
deleted file mode 100644
index e550a9b753..0000000000
--- a/src/regress/lib/libc/sys/atf-c.c
+++ /dev/null
@@ -1,128 +0,0 @@
1/* $OpenBSD: atf-c.c,v 1.2 2019/11/22 15:59:53 bluhm Exp $ */
2/*
3 * Copyright (c) 2019 Moritz Buhl <openbsd@moritzbuhl.de>
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17
18#include <sys/wait.h>
19
20#include <err.h>
21#include <errno.h>
22#include <limits.h>
23#include <stdarg.h>
24#include <stdio.h>
25#include <stdlib.h>
26#include <pwd.h>
27#include <unistd.h>
28
29#include "atf-c.h"
30
31void usage(void);
32
33int cleanup;
34int count;
35int inspect;
36int run;
37int test;
38
39int
40main(int argc, char *argv[])
41{
42 int ch, test;
43 const char *errstr, *num;
44
45 while ((ch = getopt(argc, argv, "c:i:nr:")) != -1) {
46 switch(ch) {
47 case 'c':
48 cleanup = 1;
49 num = optarg;
50 break;
51 case 'i':
52 inspect = 1;
53 num = optarg;
54 break;
55 case 'n':
56 count = 1;
57 break;
58 case 'r':
59 run = 1;
60 num = optarg;
61 break;
62 default:
63 usage();
64 }
65 }
66 argc -= optind;
67 argv += optind;
68
69 if (cleanup + count + inspect + run > 1)
70 usage();
71
72 if (cleanup || inspect || run) {
73 test = strtonum(num, 1, INT_MAX, &errstr);
74 if (errstr != NULL)
75 errx(1, "test # is %s: %s", errstr, argv[1]);
76 }
77 if (count)
78 printf("%d\n", atf_test(0, 0));
79 else if (cleanup)
80 ATF_CLEANUP(test);
81 else if (run)
82 ATF_RUN(test);
83 else if (inspect)
84 ATF_INSPECT(test);
85 else
86 usage();
87
88 return 0;
89}
90
91void
92usage(void)
93{
94 fprintf(stderr, "usage: %s [-n] [-c|i|r test#]\n", getprogname());
95 exit(1);
96}
97
98void
99atf_require(int exp, int expected_errno, const char *expstr, const char *src,
100 const int lineno, char *fmt, ...)
101{
102 va_list args;
103 if (!(exp)) {
104 fprintf(stderr, "\n%s:%d: ", src, lineno);
105 if (fmt != NULL) {
106 va_start(args, fmt);
107 vfprintf(stderr, fmt, args);
108 va_end(args);
109 } else {
110 fprintf(stderr, "'%s' evaluated to false\n", expstr);
111 }
112 exit(1);
113 } else if (expected_errno >= 0 && errno != expected_errno) {
114 fprintf(stderr, "\n%s:%d: ", src, lineno);
115 fprintf(stderr, "expected errno %d but got %d instead\n",
116 expected_errno, errno);
117 exit(1);
118 }
119 return;
120}
121
122void
123atf_tc_fail(char *fmt, ...)
124{
125 va_list args;
126 va_start(args, fmt);
127 verrx(1, fmt, args);
128}