ksgi

Форк
0
/
test-urlabs.c 
151 строка · 4.5 Кб
1
/*	$Id$ */
2
/*
3
 * Copyright (c) 2020 Kristaps Dzonsons <kristaps@bsd.lv>
4
 *
5
 * Permission to use, copy, modify, and distribute this software for any
6
 * purpose with or without fee is hereby granted, provided that the above
7
 * copyright notice and this permission notice appear in all copies.
8
 *
9
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16
 */
17
#include "../config.h"
18

19
#if HAVE_ERR
20
# include <err.h>
21
#endif
22

23
#include <stdarg.h>
24
#include <stdint.h>
25
#include <stdlib.h>
26
#include <string.h>
27
#include <time.h>
28
#include <unistd.h>
29

30
#include "../kcgi.h"
31

32
int
33
main(int argc, char *argv[])
34
{
35
	char		*url;
36
	const char	*expect;
37

38
	expect = "https://a:8080/b?c=d&e=f";
39
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "b", "c", "d", "e", "f", NULL);
40
	if (url == NULL)
41
		errx(EXIT_FAILURE, "failed expect");
42
	if (strcmp(url, expect))
43
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
44
	free(url);
45

46
	expect = "https://a:8080/b?c=&e=f";
47
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "b", "c", NULL, "e", "f", NULL);
48
	if (url == NULL)
49
		errx(EXIT_FAILURE, "failed expect");
50
	if (strcmp(url, expect))
51
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
52
	free(url);
53

54
	expect = "https://a:8080/b?c=&e=f";
55
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "b", "c", "", "e", "f", NULL);
56
	if (url == NULL)
57
		errx(EXIT_FAILURE, "failed expect");
58
	if (strcmp(url, expect))
59
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
60
	free(url);
61

62
	expect = "https://a:8080?c=d&e=f";
63
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "", "c", "d", "e", "f", NULL);
64
	if (url == NULL)
65
		errx(EXIT_FAILURE, "failed expect");
66
	if (strcmp(url, expect))
67
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
68
	free(url);
69

70
	expect = "https://a:8080/b";
71
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "b", NULL);
72
	if (url == NULL)
73
		errx(EXIT_FAILURE, "failed expect");
74
	if (strcmp(url, expect))
75
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
76
	free(url);
77

78
	expect = "https://a:8080/b";
79
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "/b", NULL);
80
	if (url == NULL)
81
		errx(EXIT_FAILURE, "failed expect");
82
	if (strcmp(url, expect))
83
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
84
	free(url);
85

86
	expect = "https://a:8080";
87
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, "", NULL);
88
	if (url == NULL)
89
		errx(EXIT_FAILURE, "failed expect");
90
	if (strcmp(url, expect))
91
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
92
	free(url);
93

94
	expect = "https://a:8080";
95
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 8080, NULL, NULL);
96
	if (url == NULL)
97
		errx(EXIT_FAILURE, "failed expect");
98
	if (strcmp(url, expect))
99
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
100
	free(url);
101

102
	expect = "https://a";
103
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 0, NULL, NULL);
104
	if (url == NULL)
105
		errx(EXIT_FAILURE, "failed expect");
106
	if (strcmp(url, expect))
107
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
108
	free(url);
109

110
	expect = "https://a/b";
111
	url = khttp_urlabs(KSCHEME_HTTPS, "a", 0, "b", NULL);
112
	if (url == NULL)
113
		errx(EXIT_FAILURE, "failed expect");
114
	if (strcmp(url, expect))
115
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
116
	free(url);
117

118
	expect = "mailto:b";
119
	url = khttp_urlabs(KSCHEME_MAILTO, NULL, 0, "b", NULL);
120
	if (url == NULL)
121
		errx(EXIT_FAILURE, "failed expect");
122
	if (strcmp(url, expect))
123
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
124
	free(url);
125

126
	expect = "mailto:b";
127
	url = khttp_urlabs(KSCHEME_MAILTO, "", 0, "b", NULL);
128
	if (url == NULL)
129
		errx(EXIT_FAILURE, "failed expect");
130
	if (strcmp(url, expect))
131
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
132
	free(url);
133

134
	expect = "mailto:b";
135
	url = khttp_urlabs(KSCHEME_MAILTO, "", 8080, "b", NULL);
136
	if (url == NULL)
137
		errx(EXIT_FAILURE, "failed expect");
138
	if (strcmp(url, expect))
139
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
140
	free(url);
141

142
	expect = "mailto:b?c=d";
143
	url = khttp_urlabs(KSCHEME_MAILTO, "", 8080, "b", "c", "d", NULL);
144
	if (url == NULL)
145
		errx(EXIT_FAILURE, "failed expect");
146
	if (strcmp(url, expect))
147
		errx(EXIT_FAILURE, "%s: failed expect: %s", expect, url);
148
	free(url);
149

150
	return EXIT_SUCCESS;
151
}
152

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.