Skip to content

Commit b2bd435

Browse files
committed
test: use helper functions in test-cmd.c
Signed-off-by: Hans Zandbelt <[email protected]>
1 parent 8788d9e commit b2bd435

File tree

1 file changed

+28
-91
lines changed

1 file changed

+28
-91
lines changed

test/test-cmd.c

Lines changed: 28 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
#include "cfg/cfg_int.h"
4747
#include "cfg/dir.h"
4848
#include "cfg/provider.h"
49+
#include "helper.h"
4950
#include "jose.h"
5051
#include "session.h"
5152
#include "util/util.h"
@@ -273,74 +274,12 @@ int key2jwk(int argc, char **argv, apr_pool_t *pool) {
273274
return 0;
274275
}
275276

276-
static request_rec *request_setup(apr_pool_t *pool) {
277-
const unsigned int kIdx = 0;
278-
const unsigned int kEls = kIdx + 1;
279-
request_rec *request = (request_rec *)apr_pcalloc(pool, sizeof(request_rec));
280-
281-
request->pool = pool;
282-
283-
request->headers_in = apr_table_make(request->pool, 0);
284-
request->headers_out = apr_table_make(request->pool, 0);
285-
request->err_headers_out = apr_table_make(request->pool, 0);
286-
287-
apr_table_set(request->headers_in, "Host", "www.example.com");
288-
apr_table_set(request->headers_in, "OIDC_foo", "some-value");
289-
apr_table_set(request->headers_in, "Cookie",
290-
"foo=bar; "
291-
"mod_auth_openidc_session"
292-
"=0123456789abcdef; baz=zot");
293-
294-
request->server = apr_pcalloc(request->pool, sizeof(struct server_rec));
295-
request->server->process = apr_pcalloc(request->pool, sizeof(struct process_rec));
296-
apr_pool_create(&request->server->process->pool, pool);
297-
apr_pool_create(&request->server->process->pconf, pool);
298-
request->connection = apr_pcalloc(request->pool, sizeof(struct conn_rec));
299-
request->connection->local_addr = apr_pcalloc(request->pool, sizeof(apr_sockaddr_t));
300-
301-
apr_pool_userdata_set("https", "scheme", NULL, request->pool);
302-
request->server->server_hostname = "www.example.com";
303-
request->connection->local_addr->port = 443;
304-
request->unparsed_uri = "/bla?foo=bar&param1=value1";
305-
request->args = "foo=bar&param1=value1";
306-
apr_uri_parse(request->pool, "https://www.example.com/bla?foo=bar&param1=value1", &request->parsed_uri);
307-
308-
auth_openidc_module.module_index = kIdx;
309-
oidc_cfg_t *cfg = oidc_cfg_server_create(request->server->process->pconf, request->server);
310-
311-
oidc_cfg_provider_issuer_set(request->server->process->pconf, oidc_cfg_provider_get(cfg),
312-
"https://idp.example.com");
313-
oidc_cfg_provider_authorization_endpoint_url_set(request->server->process->pconf, oidc_cfg_provider_get(cfg),
314-
"https://idp.example.com/authorize");
315-
oidc_cfg_provider_scope_set(request->server->process->pconf, oidc_cfg_provider_get(cfg), "openid");
316-
oidc_cfg_provider_client_id_set(request->server->process->pconf, oidc_cfg_provider_get(cfg), "client_id");
317-
cfg->redirect_uri = "https://www.example.com/protected/";
318-
319-
oidc_dir_cfg_t *d_cfg = oidc_cfg_dir_config_create(request->server->process->pconf, NULL);
320-
321-
request->server->module_config = apr_pcalloc(request->server->process->pconf, sizeof(void) * kEls);
322-
request->per_dir_config = apr_pcalloc(request->server->process->pconf, sizeof(void) * kEls);
323-
ap_set_module_config(request->server->module_config, &auth_openidc_module, cfg);
324-
ap_set_module_config(request->per_dir_config, &auth_openidc_module, d_cfg);
325-
326-
cfg->cache.impl = &oidc_cache_shm;
327-
cfg->cache.cfg = NULL;
328-
cfg->cache.shm_size_max = 500;
329-
cfg->cache.shm_entry_size_max = 16384 + 255 + 17;
330-
if (oidc_cfg_post_config(request->server->process->pconf, cfg, request->server) != OK) {
331-
printf("cfg->cache->post_config failed!\n");
332-
exit(-1);
333-
}
334-
335-
return request;
336-
}
337-
338277
int enckey(int argc, char **argv, apr_pool_t *pool) {
339278

340279
if (argc <= 2)
341280
return usage(argc, argv, "enckey <secret> [hash] [key-length]");
342281

343-
request_rec *r = request_setup(pool);
282+
request_rec *r = oidc_test_request_get();
344283

345284
oidc_jwk_t *jwk = NULL;
346285
if (oidc_util_key_symmetric_create(r, argv[2], argc > 4 ? _oidc_str_to_int(argv[4], 0) : 0,
@@ -375,7 +314,7 @@ int hash_base64url(int argc, char **argv, apr_pool_t *pool) {
375314
int base64url_decode_first = argc > 4 ? (_oidc_strcmp(argv[4], "yes") == 0) : 0;
376315
char *output = NULL;
377316

378-
request_rec *r = request_setup(pool);
317+
request_rec *r = oidc_test_request_get();
379318

380319
if (base64url_decode_first) {
381320

@@ -435,7 +374,7 @@ int uuid(int argc, char **argv, apr_pool_t *pool) {
435374
n = 25000000;
436375
}
437376

438-
request_rec *r = request_setup(pool);
377+
request_rec *r = oidc_test_request_get();
439378

440379
apr_hash_t *entries = apr_hash_make(pool);
441380
while (i < n) {
@@ -457,45 +396,43 @@ int uuid(int argc, char **argv, apr_pool_t *pool) {
457396
}
458397
int main(int argc, char **argv, char **env) {
459398

399+
int rc = 0;
400+
460401
if (argc <= 1)
461402
return usage(argc, argv, NULL);
462403

463-
if (apr_app_initialize(&argc, (const char *const **)argv, (const char *const **)env) != APR_SUCCESS) {
464-
printf("apr_app_initialize failed\n");
465-
return -1;
466-
}
404+
oidc_test_setup();
467405

468-
oidc_pre_config_init();
469-
470-
apr_pool_t *pool = NULL;
471-
apr_pool_create(&pool, NULL);
406+
apr_pool_t *pool = oidc_test_pool_get();
472407

473408
if (_oidc_strcmp(argv[1], "sign") == 0)
474-
return sign(argc, argv, pool);
409+
rc = sign(argc, argv, pool);
410+
411+
else if (_oidc_strcmp(argv[1], "verify") == 0)
412+
rc = verify(argc, argv, pool);
475413

476-
if (_oidc_strcmp(argv[1], "verify") == 0)
477-
return verify(argc, argv, pool);
414+
else if (_oidc_strcmp(argv[1], "decrypt") == 0)
415+
rc = decrypt(argc, argv, pool);
478416

479-
if (_oidc_strcmp(argv[1], "decrypt") == 0)
480-
return decrypt(argc, argv, pool);
417+
else if (_oidc_strcmp(argv[1], "key2jwk") == 0)
418+
rc = key2jwk(argc, argv, pool);
481419

482-
if (_oidc_strcmp(argv[1], "key2jwk") == 0)
483-
return key2jwk(argc, argv, pool);
420+
else if (_oidc_strcmp(argv[1], "enckey") == 0)
421+
rc = enckey(argc, argv, pool);
484422

485-
if (_oidc_strcmp(argv[1], "enckey") == 0)
486-
return enckey(argc, argv, pool);
423+
else if (_oidc_strcmp(argv[1], "hash_base64url") == 0)
424+
rc = hash_base64url(argc, argv, pool);
487425

488-
if (_oidc_strcmp(argv[1], "hash_base64url") == 0)
489-
return hash_base64url(argc, argv, pool);
426+
else if (_oidc_strcmp(argv[1], "timestamp") == 0)
427+
rc = timestamp(argc, argv, pool);
490428

491-
if (_oidc_strcmp(argv[1], "timestamp") == 0)
492-
return timestamp(argc, argv, pool);
429+
else if (_oidc_strcmp(argv[1], "uuid") == 0)
430+
rc = uuid(argc, argv, pool);
493431

494-
if (_oidc_strcmp(argv[1], "uuid") == 0)
495-
return uuid(argc, argv, pool);
432+
else
433+
rc = usage(argc, argv, NULL);
496434

497-
EVP_cleanup();
498-
apr_terminate();
435+
oidc_test_teardown();
499436

500-
return usage(argc, argv, NULL);
437+
return rc;
501438
}

0 commit comments

Comments
 (0)