1*13d33726Schristosecho T.nextfile: tests of nextfile command
2*13d33726Schristos
3*13d33726Schristosawk=${awk-../a.out}
4*13d33726Schristos
5*13d33726Schristos# 1st lines of some files
6*13d33726Schristosrm -f foo0
7*13d33726Schristosfor i in T.*
8*13d33726Schristosdo
9*13d33726Schristos	sed 1q $i >>foo0
10*13d33726Schristosdone
11*13d33726Schristos
12*13d33726Schristos$awk '
13*13d33726Schristos{ print $0; nextfile }	# print first line, quit
14*13d33726Schristos' T.* >foo1
15*13d33726Schristos
16*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1'
17*13d33726Schristos
18*13d33726Schristos$awk '	# same test but in a for loop
19*13d33726Schristos{ print $0;
20*13d33726Schristos  for (i = 1; i < 10; i++)
21*13d33726Schristos	if (i == 1)
22*13d33726Schristos		nextfile
23*13d33726Schristos  print "nextfile for error"
24*13d33726Schristos}	# print first line, quit
25*13d33726Schristos' T.* >foo1
26*13d33726Schristos
27*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1f'
28*13d33726Schristos
29*13d33726Schristos$awk '	# same test but in a while loop
30*13d33726Schristos{ print $0;
31*13d33726Schristos  i = 1
32*13d33726Schristos  while (i < 10)
33*13d33726Schristos	if (i++ == 1)
34*13d33726Schristos		nextfile
35*13d33726Schristos  print "nextfile while error"
36*13d33726Schristos}	# print first line, quit
37*13d33726Schristos' T.* >foo1
38*13d33726Schristos
39*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1w'
40*13d33726Schristos
41*13d33726Schristos$awk '	# same test but in a do loop
42*13d33726Schristos{ print $0;
43*13d33726Schristos  i = 1
44*13d33726Schristos  do {
45*13d33726Schristos	if (i++ == 1)
46*13d33726Schristos		nextfile	# print first line, quit
47*13d33726Schristos  } while (i < 10)
48*13d33726Schristos  print "nextfile do error"
49*13d33726Schristos}
50*13d33726Schristos' T.* >foo1
51*13d33726Schristos
52*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 1d'
53*13d33726Schristos
54*13d33726Schristos
55*13d33726Schristos# 100 lines of some files
56*13d33726Schristosrm -f foo0
57*13d33726Schristosfor i in T.*
58*13d33726Schristosdo
59*13d33726Schristos	sed 100q $i >>foo0
60*13d33726Schristosdone
61*13d33726Schristos
62*13d33726Schristos$awk '
63*13d33726Schristos{ print }
64*13d33726SchristosFNR == 100 { nextfile }	# print first line, quit
65*13d33726Schristos' T.* >foo1
66*13d33726Schristos
67*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 2'
68*13d33726Schristos
69*13d33726Schristos
70*13d33726Schristos>foo0	# empty
71*13d33726Schristos$awk ' { nextfile; print $0 }' T.* >foo1
72*13d33726Schristos
73*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 3'
74*13d33726Schristos
75*13d33726Schristos# skip weird args
76*13d33726Schristosrm -f foo0
77*13d33726Schristosfor i in T.*
78*13d33726Schristosdo
79*13d33726Schristos	sed 1q $i >>foo0
80*13d33726Schristosdone
81*13d33726Schristos
82*13d33726Schristos$awk '
83*13d33726Schristos{ print $0; nextfile }	# print first line, quit
84*13d33726Schristos' T.* >foo1
85*13d33726Schristos
86*13d33726Schristosdiff foo0 foo1 || echo 'BAD: T.nextfile 4'
87