]> git.sur5r.net Git - openldap/blob - libraries/libldap/apitest.c
343082d29d889e817fa9b579b2ac3ad556e7c5a1
[openldap] / libraries / libldap / apitest.c
1 /*
2  * OpenLDAP API Test
3  *      Written by: Kurt Zeilenga
4  *
5  * This program is designed to test libldap API for conformance
6  * to draft-api-ldapext-ldap-c-api-01.txt.
7  */
8 #include "portable.h"
9
10 #include <stdio.h>
11 #include <ac/time.h>
12
13 #include "lber.h"
14 #include "ldap.h"
15
16 int
17 main(int argc, char **argv)
18 {
19         LDAPAPIInfo api;
20         int ival;
21         char *sval;
22
23 #ifdef LDAP_API_INFO_VERSION
24         api.ldapai_info_version = LDAP_API_INFO_VERSION;
25 #else
26         api.ldapai_info_version = 1;
27 #endif
28
29         printf("Compile time API Information\n");
30         printf("  API Info version:  %d\n", api.ldapai_info_version);
31         printf("  API version:       %d\n", LDAP_API_VERSION);
32 #ifdef LDAP_VERSION
33         printf("  Protocol Version:  %d\n", LDAP_VERSION);
34 #else
35         printf("  Protocol Version:  unknown\n");
36 #endif
37 #ifdef LDAP_VERSION_MIN
38         printf("  Protocol Min:      %d\n", LDAP_VERSION_MIN);
39 #else
40         printf("  Protocol Min:      unknown\n");
41 #endif
42 #ifdef LDAP_VERSION_MAX
43         printf("  Protocol Max:      %d\n", LDAP_VERSION_MAX);
44 #else
45         printf("  Protocol Max:      unknown\n");
46 #endif
47 #ifdef LDAP_VENDOR_NAME
48         printf("  Vendor Name:       %s\n", LDAP_VENDOR_NAME);
49 #else
50         printf("  Vendor Name:       unknown\n");
51 #endif
52 #ifdef LDAP_VENDOR_VERSION
53         printf("  Vendor Version:    %d\n", LDAP_VENDOR_VERSION);
54 #else
55         printf("  Vendor Version:    unknown\n");
56 #endif
57
58         if(ldap_get_option(NULL, LDAP_OPT_API_INFO, &api) != LDAP_SUCCESS) {
59                 fprintf(stderr, "%s: ldap_get_option(api) failed\n", argv[0]);
60                 exit(-1);
61         }
62
63         printf("\nExecution time API Information\n");
64         printf("  API Info version:  %d\n", api.ldapai_info_version);
65
66         if (api.ldapai_info_version != LDAP_API_INFO_VERSION) {
67                 printf(" API INFO version mismatch!\n");
68                 exit(-1);
69         }
70
71         printf("  API Version:       %d\n", api.ldapai_api_version);
72         printf("  Protocol Max:      %d\n", api.ldapai_protocol_version);
73
74         if(api.ldapai_extensions == NULL) {
75                 printf("  Extensions:        none\n");
76
77         } else {
78                 int i;
79                 for(i=0; api.ldapai_extensions[i] != NULL; i++) /* empty */;
80                 printf("  Extensions:        %d\n", i);
81                 for(i=0; api.ldapai_extensions[i] != NULL; i++) {
82                         printf("                     %s\n",
83                                 api.ldapai_extensions[i]);
84                 }
85         }
86
87         printf("  Vendor Name:       %s\n", api.ldapai_vendor_name);
88         printf("  Vendor Version:    %d\n", api.ldapai_vendor_version);
89
90         printf("\nExecution time Default Options\n");
91
92         if(ldap_get_option(NULL, LDAP_OPT_DEREF, &ival) != LDAP_SUCCESS) {
93                 fprintf(stderr, "%s: ldap_get_option(api) failed\n", argv[0]);
94                 exit(-1);
95         }
96         printf("  DEREF:             %d\n", ival);
97
98         if(ldap_get_option(NULL, LDAP_OPT_SIZELIMIT, &ival) != LDAP_SUCCESS) {
99                 fprintf(stderr, "%s: ldap_get_option(sizelimit) failed\n", argv[0]);
100                 exit(-1);
101         }
102         printf("  SIZELIMIT:         %d\n", ival);
103
104         if(ldap_get_option(NULL, LDAP_OPT_TIMELIMIT, &ival) != LDAP_SUCCESS) {
105                 fprintf(stderr, "%s: ldap_get_option(timelimit) failed\n", argv[0]);
106                 exit(-1);
107         }
108         printf("  TIMELIMIT:         %d\n", ival);
109
110         if(ldap_get_option(NULL, LDAP_OPT_REFERRALS, &ival) != LDAP_SUCCESS) {
111                 fprintf(stderr, "%s: ldap_get_option(referrals) failed\n", argv[0]);
112                 exit(-1);
113         }
114         printf("  REFERRALS:         %s\n",
115                 ival == (int) LDAP_OPT_ON ? "on" : "off");
116
117         if(ldap_get_option(NULL, LDAP_OPT_RESTART, &ival) != LDAP_SUCCESS) {
118                 fprintf(stderr, "%s: ldap_get_option(restart) failed\n", argv[0]);
119                 exit(-1);
120         }
121         printf("  RESTART:           %s\n",
122                 ival == (int) LDAP_OPT_ON ? "on" : "off");
123
124         if(ldap_get_option(NULL, LDAP_OPT_PROTOCOL_VERSION, &ival) != LDAP_SUCCESS) {
125                 fprintf(stderr, "%s: ldap_get_option(protocol version) failed\n", argv[0]);
126                 exit(-1);
127         }
128         printf("  PROTOCOL VERSION:  %d\n", ival);
129
130         if(ldap_get_option(NULL, LDAP_OPT_HOST_NAME, &sval) != LDAP_SUCCESS) {
131                 fprintf(stderr, "%s: ldap_get_option(host name) failed\n", argv[0]);
132                 exit(-1);
133         }
134         printf("  HOST NAME:         %s\n", sval);
135
136         exit(0);
137         return 0;
138 }