xref: /minix3/minix/tests/t11b.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1*433d6423SLionel Sambuc /* t11b */
2*433d6423SLionel Sambuc 
3*433d6423SLionel Sambuc #include <sys/types.h>
4*433d6423SLionel Sambuc #include <errno.h>
5*433d6423SLionel Sambuc #include <stdlib.h>
6*433d6423SLionel Sambuc #include <unistd.h>
7*433d6423SLionel Sambuc #include <stdio.h>
8*433d6423SLionel Sambuc 
9*433d6423SLionel Sambuc #define MAX_ERROR 4
10*433d6423SLionel Sambuc 
11*433d6423SLionel Sambuc int errct, subtest=1;
12*433d6423SLionel Sambuc 
13*433d6423SLionel Sambuc int main(int argc, char *argv []);
14*433d6423SLionel Sambuc int diff(char *s1, char *s2);
15*433d6423SLionel Sambuc void e(int n);
16*433d6423SLionel Sambuc 
main(argc,argv)17*433d6423SLionel Sambuc int main(argc, argv)
18*433d6423SLionel Sambuc int argc;
19*433d6423SLionel Sambuc char *argv[];
20*433d6423SLionel Sambuc {
21*433d6423SLionel Sambuc /* See if arguments passed ok. */
22*433d6423SLionel Sambuc 
23*433d6423SLionel Sambuc   if (diff(argv[0], "t11b")) e(31);
24*433d6423SLionel Sambuc   if (diff(argv[1], "abc")) e(32);
25*433d6423SLionel Sambuc   if (diff(argv[2], "defghi")) e(33);
26*433d6423SLionel Sambuc   if (diff(argv[3], "j")) e(34);
27*433d6423SLionel Sambuc   if (argv[4] != 0) e(35);
28*433d6423SLionel Sambuc   if (argc != 4) e(36);
29*433d6423SLionel Sambuc 
30*433d6423SLionel Sambuc   exit(75);
31*433d6423SLionel Sambuc }
32*433d6423SLionel Sambuc 
diff(s1,s2)33*433d6423SLionel Sambuc int diff(s1, s2)
34*433d6423SLionel Sambuc char *s1, *s2;
35*433d6423SLionel Sambuc {
36*433d6423SLionel Sambuc   while (1) {
37*433d6423SLionel Sambuc 	if (*s1 == 0 && *s2 == 0) return(0);
38*433d6423SLionel Sambuc 	if (*s1 != *s2) return (1);
39*433d6423SLionel Sambuc 	s1++;
40*433d6423SLionel Sambuc 	s2++;
41*433d6423SLionel Sambuc   }
42*433d6423SLionel Sambuc }
43*433d6423SLionel Sambuc 
e(n)44*433d6423SLionel Sambuc void e(n)
45*433d6423SLionel Sambuc int n;
46*433d6423SLionel Sambuc {
47*433d6423SLionel Sambuc   printf("Subtest %d,  error %d  errno=%d  ", subtest, n, errno);
48*433d6423SLionel Sambuc   perror("");
49*433d6423SLionel Sambuc   if (errct++ > MAX_ERROR) {
50*433d6423SLionel Sambuc 	printf("Too many errors; test aborted\n");
51*433d6423SLionel Sambuc 	chdir("..");
52*433d6423SLionel Sambuc 	system("rm -rf DIR*");
53*433d6423SLionel Sambuc 	exit(1);
54*433d6423SLionel Sambuc   }
55*433d6423SLionel Sambuc }
56