1*2fb4f839SGregory Neil Shapiro /*
2*2fb4f839SGregory Neil Shapiro * Copyright (c) 2006 Proofpoint, Inc. and its suppliers.
3*2fb4f839SGregory Neil Shapiro * All rights reserved.
4*2fb4f839SGregory Neil Shapiro *
5*2fb4f839SGregory Neil Shapiro * By using this file, you agree to the terms and conditions set
6*2fb4f839SGregory Neil Shapiro * forth in the LICENSE file which can be found at the top level of
7*2fb4f839SGregory Neil Shapiro * the sendmail distribution.
8*2fb4f839SGregory Neil Shapiro */
9*2fb4f839SGregory Neil Shapiro
10*2fb4f839SGregory Neil Shapiro #include <sm/gen.h>
11*2fb4f839SGregory Neil Shapiro SM_IDSTR(id, "@(#)$Id: t-qic.c,v 1.10 2013-11-22 20:51:43 ca Exp $")
12*2fb4f839SGregory Neil Shapiro
13*2fb4f839SGregory Neil Shapiro #include <stdio.h>
14*2fb4f839SGregory Neil Shapiro #include <sm/sendmail.h>
15*2fb4f839SGregory Neil Shapiro #include <sm/assert.h>
16*2fb4f839SGregory Neil Shapiro #include <sm/heap.h>
17*2fb4f839SGregory Neil Shapiro #include <sm/string.h>
18*2fb4f839SGregory Neil Shapiro #include <sm/test.h>
19*2fb4f839SGregory Neil Shapiro
20*2fb4f839SGregory Neil Shapiro extern bool SmTestVerbose;
21*2fb4f839SGregory Neil Shapiro
22*2fb4f839SGregory Neil Shapiro struct sm_qic_S
23*2fb4f839SGregory Neil Shapiro {
24*2fb4f839SGregory Neil Shapiro char *qic_in;
25*2fb4f839SGregory Neil Shapiro char *qic_out;
26*2fb4f839SGregory Neil Shapiro int qic_exp;
27*2fb4f839SGregory Neil Shapiro };
28*2fb4f839SGregory Neil Shapiro typedef struct sm_qic_S sm_qic_T;
29*2fb4f839SGregory Neil Shapiro
30*2fb4f839SGregory Neil Shapiro int
main(argc,argv)31*2fb4f839SGregory Neil Shapiro main(argc, argv)
32*2fb4f839SGregory Neil Shapiro int argc;
33*2fb4f839SGregory Neil Shapiro char *argv[];
34*2fb4f839SGregory Neil Shapiro {
35*2fb4f839SGregory Neil Shapiro char *obp;
36*2fb4f839SGregory Neil Shapiro int i, cmp;
37*2fb4f839SGregory Neil Shapiro sm_qic_T inout[] = {
38*2fb4f839SGregory Neil Shapiro { "", "", 0 }
39*2fb4f839SGregory Neil Shapiro , { "abcdef", "abcdef", 0 }
40*2fb4f839SGregory Neil Shapiro , { "01234567890123456789", "01234567890123456789", 0 }
41*2fb4f839SGregory Neil Shapiro , { "\\", "\\\\", 0 }
42*2fb4f839SGregory Neil Shapiro , { "\\001", "\\\\001", 0 }
43*2fb4f839SGregory Neil Shapiro , { "01234567890123456789\\001", "01234567890123456789\\\\001",
44*2fb4f839SGregory Neil Shapiro 0 }
45*2fb4f839SGregory Neil Shapiro , { NULL, NULL, 0 }
46*2fb4f839SGregory Neil Shapiro };
47*2fb4f839SGregory Neil Shapiro
48*2fb4f839SGregory Neil Shapiro sm_test_begin(argc, argv, "test meta quoting");
49*2fb4f839SGregory Neil Shapiro for (i = 0; inout[i].qic_in != NULL; i++)
50*2fb4f839SGregory Neil Shapiro {
51*2fb4f839SGregory Neil Shapiro obp = str2prt(inout[i].qic_in);
52*2fb4f839SGregory Neil Shapiro cmp = strcmp(inout[i].qic_out, obp);
53*2fb4f839SGregory Neil Shapiro SM_TEST(inout[i].qic_exp == cmp);
54*2fb4f839SGregory Neil Shapiro if (inout[i].qic_exp != cmp && SmTestVerbose)
55*2fb4f839SGregory Neil Shapiro {
56*2fb4f839SGregory Neil Shapiro fprintf(stderr, "in: %s\n", inout[i].qic_in);
57*2fb4f839SGregory Neil Shapiro fprintf(stderr, "got: %s\n", obp);
58*2fb4f839SGregory Neil Shapiro fprintf(stderr, "exp: %s\n", inout[i].qic_out);
59*2fb4f839SGregory Neil Shapiro fprintf(stderr, "cmp=%d\n", cmp);
60*2fb4f839SGregory Neil Shapiro }
61*2fb4f839SGregory Neil Shapiro }
62*2fb4f839SGregory Neil Shapiro
63*2fb4f839SGregory Neil Shapiro return sm_test_end();
64*2fb4f839SGregory Neil Shapiro }
65