1*ebfedea0SLionel Sambuc /* $NetBSD: test_sequence.c,v 1.1.1.1 2011/04/13 18:14:46 elric Exp $ */
2*ebfedea0SLionel Sambuc
3*ebfedea0SLionel Sambuc /*
4*ebfedea0SLionel Sambuc * Copyright (c) 2003 Kungliga Tekniska Högskolan
5*ebfedea0SLionel Sambuc * (Royal Institute of Technology, Stockholm, Sweden).
6*ebfedea0SLionel Sambuc * All rights reserved.
7*ebfedea0SLionel Sambuc *
8*ebfedea0SLionel Sambuc * Redistribution and use in source and binary forms, with or without
9*ebfedea0SLionel Sambuc * modification, are permitted provided that the following conditions
10*ebfedea0SLionel Sambuc * are met:
11*ebfedea0SLionel Sambuc *
12*ebfedea0SLionel Sambuc * 1. Redistributions of source code must retain the above copyright
13*ebfedea0SLionel Sambuc * notice, this list of conditions and the following disclaimer.
14*ebfedea0SLionel Sambuc *
15*ebfedea0SLionel Sambuc * 2. Redistributions in binary form must reproduce the above copyright
16*ebfedea0SLionel Sambuc * notice, this list of conditions and the following disclaimer in the
17*ebfedea0SLionel Sambuc * documentation and/or other materials provided with the distribution.
18*ebfedea0SLionel Sambuc *
19*ebfedea0SLionel Sambuc * 3. Neither the name of the Institute nor the names of its contributors
20*ebfedea0SLionel Sambuc * may be used to endorse or promote products derived from this software
21*ebfedea0SLionel Sambuc * without specific prior written permission.
22*ebfedea0SLionel Sambuc *
23*ebfedea0SLionel Sambuc * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
24*ebfedea0SLionel Sambuc * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25*ebfedea0SLionel Sambuc * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26*ebfedea0SLionel Sambuc * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
27*ebfedea0SLionel Sambuc * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28*ebfedea0SLionel Sambuc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29*ebfedea0SLionel Sambuc * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30*ebfedea0SLionel Sambuc * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31*ebfedea0SLionel Sambuc * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32*ebfedea0SLionel Sambuc * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33*ebfedea0SLionel Sambuc * SUCH DAMAGE.
34*ebfedea0SLionel Sambuc */
35*ebfedea0SLionel Sambuc
36*ebfedea0SLionel Sambuc #include "gsskrb5_locl.h"
37*ebfedea0SLionel Sambuc
38*ebfedea0SLionel Sambuc /* correct ordering */
39*ebfedea0SLionel Sambuc OM_uint32 pattern1[] = {
40*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
41*ebfedea0SLionel Sambuc };
42*ebfedea0SLionel Sambuc
43*ebfedea0SLionel Sambuc /* gap 10 */
44*ebfedea0SLionel Sambuc OM_uint32 pattern2[] = {
45*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13
46*ebfedea0SLionel Sambuc };
47*ebfedea0SLionel Sambuc
48*ebfedea0SLionel Sambuc /* dup 9 */
49*ebfedea0SLionel Sambuc OM_uint32 pattern3[] = {
50*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 13
51*ebfedea0SLionel Sambuc };
52*ebfedea0SLionel Sambuc
53*ebfedea0SLionel Sambuc /* gaps */
54*ebfedea0SLionel Sambuc OM_uint32 pattern4[] = {
55*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 13, 14, 15, 16, 18, 100
56*ebfedea0SLionel Sambuc };
57*ebfedea0SLionel Sambuc
58*ebfedea0SLionel Sambuc /* 11 before 10 */
59*ebfedea0SLionel Sambuc OM_uint32 pattern5[] = {
60*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21
61*ebfedea0SLionel Sambuc };
62*ebfedea0SLionel Sambuc
63*ebfedea0SLionel Sambuc /* long */
64*ebfedea0SLionel Sambuc OM_uint32 pattern6[] = {
65*ebfedea0SLionel Sambuc 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
66*ebfedea0SLionel Sambuc 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
67*ebfedea0SLionel Sambuc 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
68*ebfedea0SLionel Sambuc 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
69*ebfedea0SLionel Sambuc 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
70*ebfedea0SLionel Sambuc 50, 51, 52, 53, 54, 55, 56, 57, 58, 59
71*ebfedea0SLionel Sambuc };
72*ebfedea0SLionel Sambuc
73*ebfedea0SLionel Sambuc /* dont start at 0 */
74*ebfedea0SLionel Sambuc OM_uint32 pattern7[] = {
75*ebfedea0SLionel Sambuc 11, 12, 13
76*ebfedea0SLionel Sambuc };
77*ebfedea0SLionel Sambuc
78*ebfedea0SLionel Sambuc /* wrap around */
79*ebfedea0SLionel Sambuc OM_uint32 pattern8[] = {
80*ebfedea0SLionel Sambuc 4294967293U, 4294967294U, 4294967295U, 0, 1, 2
81*ebfedea0SLionel Sambuc };
82*ebfedea0SLionel Sambuc
83*ebfedea0SLionel Sambuc static int
test_seq(int t,OM_uint32 flags,OM_uint32 start_seq,OM_uint32 * pattern,int pattern_len,OM_uint32 expected_error)84*ebfedea0SLionel Sambuc test_seq(int t, OM_uint32 flags, OM_uint32 start_seq,
85*ebfedea0SLionel Sambuc OM_uint32 *pattern, int pattern_len, OM_uint32 expected_error)
86*ebfedea0SLionel Sambuc {
87*ebfedea0SLionel Sambuc struct gss_msg_order *o;
88*ebfedea0SLionel Sambuc OM_uint32 maj_stat, min_stat;
89*ebfedea0SLionel Sambuc krb5_storage *sp;
90*ebfedea0SLionel Sambuc int i;
91*ebfedea0SLionel Sambuc
92*ebfedea0SLionel Sambuc maj_stat = _gssapi_msg_order_create(&min_stat, &o, flags,
93*ebfedea0SLionel Sambuc start_seq, 20, 0);
94*ebfedea0SLionel Sambuc if (maj_stat)
95*ebfedea0SLionel Sambuc errx(1, "create: %d %d", maj_stat, min_stat);
96*ebfedea0SLionel Sambuc
97*ebfedea0SLionel Sambuc sp = krb5_storage_emem();
98*ebfedea0SLionel Sambuc if (sp == NULL)
99*ebfedea0SLionel Sambuc errx(1, "krb5_storage_from_emem");
100*ebfedea0SLionel Sambuc
101*ebfedea0SLionel Sambuc _gssapi_msg_order_export(sp, o);
102*ebfedea0SLionel Sambuc
103*ebfedea0SLionel Sambuc for (i = 0; i < pattern_len; i++) {
104*ebfedea0SLionel Sambuc maj_stat = _gssapi_msg_order_check(o, pattern[i]);
105*ebfedea0SLionel Sambuc if (maj_stat)
106*ebfedea0SLionel Sambuc break;
107*ebfedea0SLionel Sambuc }
108*ebfedea0SLionel Sambuc if (maj_stat != expected_error) {
109*ebfedea0SLionel Sambuc printf("test pattern %d failed with %d (should have been %d)\n",
110*ebfedea0SLionel Sambuc t, maj_stat, expected_error);
111*ebfedea0SLionel Sambuc krb5_storage_free(sp);
112*ebfedea0SLionel Sambuc _gssapi_msg_order_destroy(&o);
113*ebfedea0SLionel Sambuc return 1;
114*ebfedea0SLionel Sambuc }
115*ebfedea0SLionel Sambuc
116*ebfedea0SLionel Sambuc
117*ebfedea0SLionel Sambuc _gssapi_msg_order_destroy(&o);
118*ebfedea0SLionel Sambuc
119*ebfedea0SLionel Sambuc /* try again, now with export/imported blob */
120*ebfedea0SLionel Sambuc krb5_storage_seek(sp, 0, SEEK_SET);
121*ebfedea0SLionel Sambuc
122*ebfedea0SLionel Sambuc maj_stat = _gssapi_msg_order_import(&min_stat, sp, &o);
123*ebfedea0SLionel Sambuc if (maj_stat)
124*ebfedea0SLionel Sambuc errx(1, "import: %d %d", maj_stat, min_stat);
125*ebfedea0SLionel Sambuc
126*ebfedea0SLionel Sambuc for (i = 0; i < pattern_len; i++) {
127*ebfedea0SLionel Sambuc maj_stat = _gssapi_msg_order_check(o, pattern[i]);
128*ebfedea0SLionel Sambuc if (maj_stat)
129*ebfedea0SLionel Sambuc break;
130*ebfedea0SLionel Sambuc }
131*ebfedea0SLionel Sambuc if (maj_stat != expected_error) {
132*ebfedea0SLionel Sambuc printf("import/export test pattern %d failed "
133*ebfedea0SLionel Sambuc "with %d (should have been %d)\n",
134*ebfedea0SLionel Sambuc t, maj_stat, expected_error);
135*ebfedea0SLionel Sambuc _gssapi_msg_order_destroy(&o);
136*ebfedea0SLionel Sambuc krb5_storage_free(sp);
137*ebfedea0SLionel Sambuc return 1;
138*ebfedea0SLionel Sambuc }
139*ebfedea0SLionel Sambuc
140*ebfedea0SLionel Sambuc _gssapi_msg_order_destroy(&o);
141*ebfedea0SLionel Sambuc krb5_storage_free(sp);
142*ebfedea0SLionel Sambuc
143*ebfedea0SLionel Sambuc return 0;
144*ebfedea0SLionel Sambuc }
145*ebfedea0SLionel Sambuc
146*ebfedea0SLionel Sambuc struct {
147*ebfedea0SLionel Sambuc OM_uint32 flags;
148*ebfedea0SLionel Sambuc OM_uint32 *pattern;
149*ebfedea0SLionel Sambuc int pattern_len;
150*ebfedea0SLionel Sambuc OM_uint32 error_code;
151*ebfedea0SLionel Sambuc OM_uint32 start_seq;
152*ebfedea0SLionel Sambuc } pl[] = {
153*ebfedea0SLionel Sambuc {
154*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
155*ebfedea0SLionel Sambuc pattern1,
156*ebfedea0SLionel Sambuc sizeof(pattern1)/sizeof(pattern1[0]),
157*ebfedea0SLionel Sambuc 0
158*ebfedea0SLionel Sambuc },
159*ebfedea0SLionel Sambuc {
160*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
161*ebfedea0SLionel Sambuc pattern2,
162*ebfedea0SLionel Sambuc sizeof(pattern2)/sizeof(pattern2[0]),
163*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
164*ebfedea0SLionel Sambuc },
165*ebfedea0SLionel Sambuc {
166*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
167*ebfedea0SLionel Sambuc pattern3,
168*ebfedea0SLionel Sambuc sizeof(pattern3)/sizeof(pattern3[0]),
169*ebfedea0SLionel Sambuc GSS_S_DUPLICATE_TOKEN
170*ebfedea0SLionel Sambuc },
171*ebfedea0SLionel Sambuc {
172*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
173*ebfedea0SLionel Sambuc pattern4,
174*ebfedea0SLionel Sambuc sizeof(pattern4)/sizeof(pattern4[0]),
175*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
176*ebfedea0SLionel Sambuc },
177*ebfedea0SLionel Sambuc {
178*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
179*ebfedea0SLionel Sambuc pattern5,
180*ebfedea0SLionel Sambuc sizeof(pattern5)/sizeof(pattern5[0]),
181*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
182*ebfedea0SLionel Sambuc },
183*ebfedea0SLionel Sambuc {
184*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
185*ebfedea0SLionel Sambuc pattern6,
186*ebfedea0SLionel Sambuc sizeof(pattern6)/sizeof(pattern6[0]),
187*ebfedea0SLionel Sambuc GSS_S_COMPLETE
188*ebfedea0SLionel Sambuc },
189*ebfedea0SLionel Sambuc {
190*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
191*ebfedea0SLionel Sambuc pattern7,
192*ebfedea0SLionel Sambuc sizeof(pattern7)/sizeof(pattern7[0]),
193*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
194*ebfedea0SLionel Sambuc },
195*ebfedea0SLionel Sambuc {
196*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG|GSS_C_SEQUENCE_FLAG,
197*ebfedea0SLionel Sambuc pattern8,
198*ebfedea0SLionel Sambuc sizeof(pattern8)/sizeof(pattern8[0]),
199*ebfedea0SLionel Sambuc GSS_S_COMPLETE,
200*ebfedea0SLionel Sambuc 4294967293U
201*ebfedea0SLionel Sambuc },
202*ebfedea0SLionel Sambuc {
203*ebfedea0SLionel Sambuc 0,
204*ebfedea0SLionel Sambuc pattern1,
205*ebfedea0SLionel Sambuc sizeof(pattern1)/sizeof(pattern1[0]),
206*ebfedea0SLionel Sambuc GSS_S_COMPLETE
207*ebfedea0SLionel Sambuc },
208*ebfedea0SLionel Sambuc {
209*ebfedea0SLionel Sambuc 0,
210*ebfedea0SLionel Sambuc pattern2,
211*ebfedea0SLionel Sambuc sizeof(pattern2)/sizeof(pattern2[0]),
212*ebfedea0SLionel Sambuc GSS_S_COMPLETE
213*ebfedea0SLionel Sambuc },
214*ebfedea0SLionel Sambuc {
215*ebfedea0SLionel Sambuc 0,
216*ebfedea0SLionel Sambuc pattern3,
217*ebfedea0SLionel Sambuc sizeof(pattern3)/sizeof(pattern3[0]),
218*ebfedea0SLionel Sambuc GSS_S_COMPLETE
219*ebfedea0SLionel Sambuc },
220*ebfedea0SLionel Sambuc {
221*ebfedea0SLionel Sambuc 0,
222*ebfedea0SLionel Sambuc pattern4,
223*ebfedea0SLionel Sambuc sizeof(pattern4)/sizeof(pattern4[0]),
224*ebfedea0SLionel Sambuc GSS_S_COMPLETE
225*ebfedea0SLionel Sambuc },
226*ebfedea0SLionel Sambuc {
227*ebfedea0SLionel Sambuc 0,
228*ebfedea0SLionel Sambuc pattern5,
229*ebfedea0SLionel Sambuc sizeof(pattern5)/sizeof(pattern5[0]),
230*ebfedea0SLionel Sambuc GSS_S_COMPLETE
231*ebfedea0SLionel Sambuc },
232*ebfedea0SLionel Sambuc {
233*ebfedea0SLionel Sambuc 0,
234*ebfedea0SLionel Sambuc pattern6,
235*ebfedea0SLionel Sambuc sizeof(pattern6)/sizeof(pattern6[0]),
236*ebfedea0SLionel Sambuc GSS_S_COMPLETE
237*ebfedea0SLionel Sambuc },
238*ebfedea0SLionel Sambuc {
239*ebfedea0SLionel Sambuc 0,
240*ebfedea0SLionel Sambuc pattern7,
241*ebfedea0SLionel Sambuc sizeof(pattern7)/sizeof(pattern7[0]),
242*ebfedea0SLionel Sambuc GSS_S_COMPLETE
243*ebfedea0SLionel Sambuc },
244*ebfedea0SLionel Sambuc {
245*ebfedea0SLionel Sambuc 0,
246*ebfedea0SLionel Sambuc pattern8,
247*ebfedea0SLionel Sambuc sizeof(pattern8)/sizeof(pattern8[0]),
248*ebfedea0SLionel Sambuc GSS_S_COMPLETE,
249*ebfedea0SLionel Sambuc 4294967293U
250*ebfedea0SLionel Sambuc
251*ebfedea0SLionel Sambuc },
252*ebfedea0SLionel Sambuc {
253*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
254*ebfedea0SLionel Sambuc pattern1,
255*ebfedea0SLionel Sambuc sizeof(pattern1)/sizeof(pattern1[0]),
256*ebfedea0SLionel Sambuc GSS_S_COMPLETE
257*ebfedea0SLionel Sambuc },
258*ebfedea0SLionel Sambuc {
259*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
260*ebfedea0SLionel Sambuc pattern2,
261*ebfedea0SLionel Sambuc sizeof(pattern2)/sizeof(pattern2[0]),
262*ebfedea0SLionel Sambuc GSS_S_COMPLETE
263*ebfedea0SLionel Sambuc },
264*ebfedea0SLionel Sambuc {
265*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
266*ebfedea0SLionel Sambuc pattern3,
267*ebfedea0SLionel Sambuc sizeof(pattern3)/sizeof(pattern3[0]),
268*ebfedea0SLionel Sambuc GSS_S_DUPLICATE_TOKEN
269*ebfedea0SLionel Sambuc },
270*ebfedea0SLionel Sambuc {
271*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
272*ebfedea0SLionel Sambuc pattern4,
273*ebfedea0SLionel Sambuc sizeof(pattern4)/sizeof(pattern4[0]),
274*ebfedea0SLionel Sambuc GSS_S_COMPLETE
275*ebfedea0SLionel Sambuc },
276*ebfedea0SLionel Sambuc {
277*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
278*ebfedea0SLionel Sambuc pattern5,
279*ebfedea0SLionel Sambuc sizeof(pattern5)/sizeof(pattern5[0]),
280*ebfedea0SLionel Sambuc 0
281*ebfedea0SLionel Sambuc },
282*ebfedea0SLionel Sambuc {
283*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
284*ebfedea0SLionel Sambuc pattern6,
285*ebfedea0SLionel Sambuc sizeof(pattern6)/sizeof(pattern6[0]),
286*ebfedea0SLionel Sambuc GSS_S_COMPLETE
287*ebfedea0SLionel Sambuc },
288*ebfedea0SLionel Sambuc {
289*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
290*ebfedea0SLionel Sambuc pattern7,
291*ebfedea0SLionel Sambuc sizeof(pattern7)/sizeof(pattern7[0]),
292*ebfedea0SLionel Sambuc GSS_S_COMPLETE
293*ebfedea0SLionel Sambuc },
294*ebfedea0SLionel Sambuc {
295*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
296*ebfedea0SLionel Sambuc pattern8,
297*ebfedea0SLionel Sambuc sizeof(pattern8)/sizeof(pattern8[0]),
298*ebfedea0SLionel Sambuc GSS_S_COMPLETE,
299*ebfedea0SLionel Sambuc 4294967293U
300*ebfedea0SLionel Sambuc },
301*ebfedea0SLionel Sambuc {
302*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
303*ebfedea0SLionel Sambuc pattern1,
304*ebfedea0SLionel Sambuc sizeof(pattern1)/sizeof(pattern1[0]),
305*ebfedea0SLionel Sambuc 0
306*ebfedea0SLionel Sambuc },
307*ebfedea0SLionel Sambuc {
308*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
309*ebfedea0SLionel Sambuc pattern2,
310*ebfedea0SLionel Sambuc sizeof(pattern2)/sizeof(pattern2[0]),
311*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
312*ebfedea0SLionel Sambuc },
313*ebfedea0SLionel Sambuc {
314*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
315*ebfedea0SLionel Sambuc pattern3,
316*ebfedea0SLionel Sambuc sizeof(pattern3)/sizeof(pattern3[0]),
317*ebfedea0SLionel Sambuc GSS_S_DUPLICATE_TOKEN
318*ebfedea0SLionel Sambuc },
319*ebfedea0SLionel Sambuc {
320*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
321*ebfedea0SLionel Sambuc pattern4,
322*ebfedea0SLionel Sambuc sizeof(pattern4)/sizeof(pattern4[0]),
323*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
324*ebfedea0SLionel Sambuc },
325*ebfedea0SLionel Sambuc {
326*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
327*ebfedea0SLionel Sambuc pattern5,
328*ebfedea0SLionel Sambuc sizeof(pattern5)/sizeof(pattern5[0]),
329*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
330*ebfedea0SLionel Sambuc },
331*ebfedea0SLionel Sambuc {
332*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
333*ebfedea0SLionel Sambuc pattern6,
334*ebfedea0SLionel Sambuc sizeof(pattern6)/sizeof(pattern6[0]),
335*ebfedea0SLionel Sambuc GSS_S_COMPLETE
336*ebfedea0SLionel Sambuc },
337*ebfedea0SLionel Sambuc {
338*ebfedea0SLionel Sambuc GSS_C_SEQUENCE_FLAG,
339*ebfedea0SLionel Sambuc pattern7,
340*ebfedea0SLionel Sambuc sizeof(pattern7)/sizeof(pattern7[0]),
341*ebfedea0SLionel Sambuc GSS_S_GAP_TOKEN
342*ebfedea0SLionel Sambuc },
343*ebfedea0SLionel Sambuc {
344*ebfedea0SLionel Sambuc GSS_C_REPLAY_FLAG,
345*ebfedea0SLionel Sambuc pattern8,
346*ebfedea0SLionel Sambuc sizeof(pattern8)/sizeof(pattern8[0]),
347*ebfedea0SLionel Sambuc GSS_S_COMPLETE,
348*ebfedea0SLionel Sambuc 4294967293U
349*ebfedea0SLionel Sambuc }
350*ebfedea0SLionel Sambuc };
351*ebfedea0SLionel Sambuc
352*ebfedea0SLionel Sambuc int
main(int argc,char ** argv)353*ebfedea0SLionel Sambuc main(int argc, char **argv)
354*ebfedea0SLionel Sambuc {
355*ebfedea0SLionel Sambuc int i, failed = 0;
356*ebfedea0SLionel Sambuc
357*ebfedea0SLionel Sambuc for (i = 0; i < sizeof(pl)/sizeof(pl[0]); i++) {
358*ebfedea0SLionel Sambuc if (test_seq(i,
359*ebfedea0SLionel Sambuc pl[i].flags,
360*ebfedea0SLionel Sambuc pl[i].start_seq,
361*ebfedea0SLionel Sambuc pl[i].pattern,
362*ebfedea0SLionel Sambuc pl[i].pattern_len,
363*ebfedea0SLionel Sambuc pl[i].error_code))
364*ebfedea0SLionel Sambuc failed++;
365*ebfedea0SLionel Sambuc }
366*ebfedea0SLionel Sambuc if (failed)
367*ebfedea0SLionel Sambuc printf("FAILED %d tests\n", failed);
368*ebfedea0SLionel Sambuc return failed != 0;
369*ebfedea0SLionel Sambuc }
370