15ba20b5bSNinad Palsule #include <assert.h>
25ba20b5bSNinad Palsule 
35ba20b5bSNinad Palsule #define TEST_CONSOLE_ID "test"
45ba20b5bSNinad Palsule 
55ba20b5bSNinad Palsule #include "config.c"
65ba20b5bSNinad Palsule 
test_independence_cmdline_optarg(void)75ba20b5bSNinad Palsule static void test_independence_cmdline_optarg(void)
85ba20b5bSNinad Palsule {
95ba20b5bSNinad Palsule 	const char *console_id;
105ba20b5bSNinad Palsule 	struct config *ctx;
115ba20b5bSNinad Palsule 
125ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
135ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, TEST_CONSOLE_ID);
145ba20b5bSNinad Palsule 
155ba20b5bSNinad Palsule 	assert(!strcmp(console_id, TEST_CONSOLE_ID));
165ba20b5bSNinad Palsule 
175ba20b5bSNinad Palsule 	config_fini(ctx);
185ba20b5bSNinad Palsule }
195ba20b5bSNinad Palsule 
test_independence_config_console_id(void)205ba20b5bSNinad Palsule static void test_independence_config_console_id(void)
215ba20b5bSNinad Palsule {
225ba20b5bSNinad Palsule 	const char *console_id;
235ba20b5bSNinad Palsule 	struct config *ctx;
245ba20b5bSNinad Palsule 	char *buf;
255ba20b5bSNinad Palsule 
265ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
275ba20b5bSNinad Palsule 	buf = strdup("console-id = " TEST_CONSOLE_ID);
285ba20b5bSNinad Palsule 	config_parse(ctx, buf);
295ba20b5bSNinad Palsule 	free(buf);
305ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, NULL);
315ba20b5bSNinad Palsule 
325ba20b5bSNinad Palsule 	assert(!strcmp(console_id, TEST_CONSOLE_ID));
335ba20b5bSNinad Palsule 
345ba20b5bSNinad Palsule 	config_fini(ctx);
355ba20b5bSNinad Palsule }
365ba20b5bSNinad Palsule 
test_independence_config_socket_id(void)375ba20b5bSNinad Palsule static void test_independence_config_socket_id(void)
385ba20b5bSNinad Palsule {
395ba20b5bSNinad Palsule 	const char *console_id;
405ba20b5bSNinad Palsule 	struct config *ctx;
415ba20b5bSNinad Palsule 	char *buf;
425ba20b5bSNinad Palsule 
435ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
445ba20b5bSNinad Palsule 	buf = strdup("socket-id = " TEST_CONSOLE_ID);
455ba20b5bSNinad Palsule 	config_parse(ctx, buf);
465ba20b5bSNinad Palsule 	free(buf);
475ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, NULL);
485ba20b5bSNinad Palsule 
49*dfda5afbSAndrew Jeffery 	/*
50*dfda5afbSAndrew Jeffery 	 * socket-id is no-longer an alias for console-id, therefore we should observe
51*dfda5afbSAndrew Jeffery 	 * DEFAULT_CONSOLE_ID and not TEST_CONSOLE_ID
52*dfda5afbSAndrew Jeffery 	 */
53*dfda5afbSAndrew Jeffery 	assert(!strcmp(console_id, DEFAULT_CONSOLE_ID));
545ba20b5bSNinad Palsule 
555ba20b5bSNinad Palsule 	config_fini(ctx);
565ba20b5bSNinad Palsule }
575ba20b5bSNinad Palsule 
test_independence_default(void)585ba20b5bSNinad Palsule static void test_independence_default(void)
595ba20b5bSNinad Palsule {
605ba20b5bSNinad Palsule 	const char *console_id;
615ba20b5bSNinad Palsule 	struct config *ctx;
625ba20b5bSNinad Palsule 
635ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
645ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, NULL);
655ba20b5bSNinad Palsule 
665ba20b5bSNinad Palsule 	assert(!strcmp(console_id, DEFAULT_CONSOLE_ID));
675ba20b5bSNinad Palsule 
685ba20b5bSNinad Palsule 	config_fini(ctx);
695ba20b5bSNinad Palsule }
705ba20b5bSNinad Palsule 
test_precedence_cmdline_optarg(void)715ba20b5bSNinad Palsule static void test_precedence_cmdline_optarg(void)
725ba20b5bSNinad Palsule {
73*dfda5afbSAndrew Jeffery 	static const char *const config = "console-id = console\n";
745ba20b5bSNinad Palsule 	const char *console_id;
755ba20b5bSNinad Palsule 	struct config *ctx;
765ba20b5bSNinad Palsule 	char *buf;
775ba20b5bSNinad Palsule 
785ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
795ba20b5bSNinad Palsule 	buf = strdup(config);
805ba20b5bSNinad Palsule 	config_parse(ctx, buf);
815ba20b5bSNinad Palsule 	free(buf);
825ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, TEST_CONSOLE_ID);
835ba20b5bSNinad Palsule 
845ba20b5bSNinad Palsule 	assert(config_get_value(ctx, "console-id"));
855ba20b5bSNinad Palsule 	assert(!strcmp(console_id, TEST_CONSOLE_ID));
865ba20b5bSNinad Palsule 
875ba20b5bSNinad Palsule 	config_fini(ctx);
885ba20b5bSNinad Palsule }
895ba20b5bSNinad Palsule 
test_precedence_config_console_id(void)905ba20b5bSNinad Palsule static void test_precedence_config_console_id(void)
915ba20b5bSNinad Palsule {
92*dfda5afbSAndrew Jeffery 	static const char *const config = "console-id = console\n";
935ba20b5bSNinad Palsule 	const char *console_id;
945ba20b5bSNinad Palsule 	struct config *ctx;
955ba20b5bSNinad Palsule 	char *buf;
965ba20b5bSNinad Palsule 
975ba20b5bSNinad Palsule 	ctx = calloc(1, sizeof(*ctx));
985ba20b5bSNinad Palsule 	buf = strdup(config);
995ba20b5bSNinad Palsule 	config_parse(ctx, buf);
1005ba20b5bSNinad Palsule 	free(buf);
1015ba20b5bSNinad Palsule 	console_id = config_resolve_console_id(ctx, NULL);
1025ba20b5bSNinad Palsule 
1035ba20b5bSNinad Palsule 	assert(config_get_value(ctx, "console-id"));
1045ba20b5bSNinad Palsule 	assert(!strcmp(console_id, "console"));
1055ba20b5bSNinad Palsule 
1065ba20b5bSNinad Palsule 	config_fini(ctx);
1075ba20b5bSNinad Palsule }
1085ba20b5bSNinad Palsule 
main(void)1095ba20b5bSNinad Palsule int main(void)
1105ba20b5bSNinad Palsule {
1115ba20b5bSNinad Palsule 	test_independence_cmdline_optarg();
1125ba20b5bSNinad Palsule 	test_independence_config_console_id();
1135ba20b5bSNinad Palsule 	test_independence_config_socket_id();
1145ba20b5bSNinad Palsule 	test_independence_default();
1155ba20b5bSNinad Palsule 	test_precedence_cmdline_optarg();
1165ba20b5bSNinad Palsule 	test_precedence_config_console_id();
1175ba20b5bSNinad Palsule 
1185ba20b5bSNinad Palsule 	return EXIT_SUCCESS;
1195ba20b5bSNinad Palsule }
120