1 /* test suite for tr_config.c */
6 #include <trust_router/tr_name.h>
12 static void tr_talloc_log(const char *msg)
14 tr_debug("talloc: %s", msg);
17 static int verify_idp_cfg(TR_CFG *cfg)
22 TR_IDP_REALM *idp_realm=NULL;
23 TR_AAA_SERVER *aaa=NULL;
27 /* test the comms attribute */
28 assert(cfg->comms!=NULL);
29 name=tr_new_name("apc.example.com");
30 comm=tr_comm_lookup(cfg->comms, name);
34 assert(comm->type==TR_COMM_APC);
35 assert(comm->expiration_interval==TR_DEFAULT_APC_EXPIRATION_INTERVAL);
36 assert(comm->apcs==NULL);
38 name=tr_new_name("A.idp.cfg");
39 for (idp_realm=comm->idp_realms;
40 (idp_realm!=NULL) && (tr_name_cmp(name, idp_realm->realm_id)!=0);
41 idp_realm=idp_realm->comm_next) { }
42 assert(idp_realm!=NULL);
43 assert(idp_realm->shared_config==0);
44 assert(idp_realm->origin==TR_REALM_LOCAL);
46 name=tr_new_name("apc.example.com");
47 assert(tr_name_cmp(idp_realm->apcs->id, name)==0);
50 assert(idp_realm->aaa_servers!=NULL);
51 name=tr_new_name("rad1.A.idp.cfg");
52 for (aaa=idp_realm->aaa_servers;
53 (aaa!=NULL) && (tr_name_cmp(name, aaa->hostname)!=0);
58 name=tr_new_name("rad2.A.idp.cfg");
59 for (aaa=idp_realm->aaa_servers;
60 (aaa!=NULL) && (tr_name_cmp(name, aaa->hostname)!=0);
70 TALLOC_CTX *mem_ctx=talloc_new(NULL);
72 TR_CFG_RC rc=TR_CFG_ERROR;
76 talloc_set_log_fn(tr_talloc_log);
77 cfg=tr_cfg_new(mem_ctx);
79 printf("Parsing idp.cfg.\n");
80 rc=tr_cfg_parse_one_config_file(cfg, "idp.cfg");
83 tr_debug("main: TR_CFG_SUCCESS");
86 tr_debug("main: TR_CFG_ERROR");
88 case TR_CFG_BAD_PARAMS:
89 tr_debug("main: TR_CFG_BAD_PARAMS");
92 tr_debug("main: TR_CFG_NOPARSE");
95 tr_debug("main: TR_CFG_NOMEM");
99 printf("Verifying parse results... ");
100 if (verify_idp_cfg(cfg)!=0) {
104 printf("success!\n");
106 talloc_report_full(mem_ctx, stderr);