Lines Matching refs:util
35 #include "util.h"
44 util::streq(StringRef::from_lit("alpha"), StringRef::from_lit("alpha")));
45 CU_ASSERT(!util::streq(StringRef::from_lit("alpha"),
47 CU_ASSERT(!util::streq(StringRef::from_lit("alphabravo"),
50 !util::streq(StringRef::from_lit("alpha"), StringRef::from_lit("alphA")));
51 CU_ASSERT(!util::streq(StringRef{}, StringRef::from_lit("a")));
52 CU_ASSERT(util::streq(StringRef{}, StringRef{}));
53 CU_ASSERT(!util::streq(StringRef::from_lit("alpha"), StringRef{}));
56 !util::streq(StringRef::from_lit("alph"), StringRef::from_lit("alpha")));
58 !util::streq(StringRef::from_lit("alpha"), StringRef::from_lit("alph")));
60 !util::streq(StringRef::from_lit("alpha"), StringRef::from_lit("alphA")));
62 CU_ASSERT(util::streq_l("alpha", "alpha", 5));
63 CU_ASSERT(util::streq_l("alpha", "alphabravo", 5));
64 CU_ASSERT(!util::streq_l("alpha", "alphabravo", 6));
65 CU_ASSERT(!util::streq_l("alphabravo", "alpha", 5));
66 CU_ASSERT(!util::streq_l("alpha", "alphA", 5));
67 CU_ASSERT(!util::streq_l("", "a", 1));
68 CU_ASSERT(util::streq_l("", "", 0));
69 CU_ASSERT(!util::streq_l("alpha", "", 0));
73 CU_ASSERT(util::strieq(std::string("alpha"), std::string("alpha")));
74 CU_ASSERT(util::strieq(std::string("alpha"), std::string("AlPhA")));
75 CU_ASSERT(util::strieq(std::string(), std::string()));
76 CU_ASSERT(!util::strieq(std::string("alpha"), std::string("AlPhA ")));
77 CU_ASSERT(!util::strieq(std::string(), std::string("AlPhA ")));
80 util::strieq(StringRef::from_lit("alpha"), StringRef::from_lit("alpha")));
82 util::strieq(StringRef::from_lit("alpha"), StringRef::from_lit("AlPhA")));
83 CU_ASSERT(util::strieq(StringRef{}, StringRef{}));
84 CU_ASSERT(!util::strieq(StringRef::from_lit("alpha"),
87 !util::strieq(StringRef::from_lit(""), StringRef::from_lit("AlPhA ")));
89 CU_ASSERT(util::strieq_l("alpha", "alpha", 5));
90 CU_ASSERT(util::strieq_l("alpha", "AlPhA", 5));
91 CU_ASSERT(util::strieq_l("", static_cast<const char *>(nullptr), 0));
92 CU_ASSERT(!util::strieq_l("alpha", "AlPhA ", 6));
93 CU_ASSERT(!util::strieq_l("", "AlPhA ", 6));
95 CU_ASSERT(util::strieq_l("alpha", StringRef::from_lit("alpha")));
96 CU_ASSERT(util::strieq_l("alpha", StringRef::from_lit("AlPhA")));
97 CU_ASSERT(util::strieq_l("", StringRef{}));
98 CU_ASSERT(!util::strieq_l("alpha", StringRef::from_lit("AlPhA ")));
99 CU_ASSERT(!util::strieq_l("", StringRef::from_lit("AlPhA ")));
104 util::inp_strlower(a);
108 util::inp_strlower(a);
112 util::inp_strlower(a);
120 util::to_base64(balloc, StringRef::from_lit("AAA--B_")));
122 util::to_base64(balloc, StringRef::from_lit("AAA--B_B")));
127 util::to_token68(x);
131 util::to_token68(x);
138 util::percent_encode_token(balloc, StringRef::from_lit("h2")));
140 util::percent_encode_token(balloc, StringRef::from_lit("h3~")));
142 util::percent_encode_token(balloc, StringRef::from_lit("100%")));
144 util::percent_encode_token(balloc, StringRef::from_lit("http 2")));
150 CU_ASSERT("foobar" == util::percent_decode(std::begin(s), std::end(s)));
154 CU_ASSERT("f%6" == util::percent_decode(std::begin(s), std::end(s)));
158 CU_ASSERT("f%" == util::percent_decode(std::begin(s), std::end(s)));
162 CU_ASSERT("foobar" == util::percent_decode(
166 util::percent_decode(balloc, StringRef::from_lit("%66%6")));
168 CU_ASSERT("f%" == util::percent_decode(balloc, StringRef::from_lit("%66%")));
174 util::quote_string(balloc, StringRef::from_lit("alpha")));
175 CU_ASSERT("" == util::quote_string(balloc, StringRef::from_lit("")));
177 util::quote_string(balloc, StringRef::from_lit("\"alpha\"")));
181 CU_ASSERT("0" == util::utox(0));
182 CU_ASSERT("1" == util::utox(1));
183 CU_ASSERT("F" == util::utox(15));
184 CU_ASSERT("10" == util::utox(16));
185 CU_ASSERT("3B9ACA07" == util::utox(1000000007));
186 CU_ASSERT("100000000" == util::utox(1LL << 32));
190 CU_ASSERT("Thu, 01 Jan 1970 00:00:00 GMT" == util::http_date(0));
191 CU_ASSERT("Wed, 29 Feb 2012 09:15:16 GMT" == util::http_date(1330506916));
196 util::format_http_date(http_buf.data(),
199 util::format_http_date(http_buf.data(),
210 CU_ASSERT(util::select_h2(&out, &outlen, t1, sizeof(t1) - 1));
221 CU_ASSERT(!util::select_h2(&out, &outlen, t2, sizeof(t2) - 1));
225 CU_ASSERT(util::select_h2(&out, &outlen, t3, sizeof(t3) - 1));
236 CU_ASSERT(!util::select_h2(&out, &outlen, t4, sizeof(t4) - 1));
240 CU_ASSERT(!util::select_h2(&out, &outlen, t5, sizeof(t5) - 1));
245 CU_ASSERT(util::select_h2(&out, &outlen, t6, sizeof(t6) - 1));
246 CU_ASSERT(util::streq(NGHTTP2_H2_16, StringRef{out, outlen}));
250 CU_ASSERT(util::ipv6_numeric_addr("::1"));
251 CU_ASSERT(util::ipv6_numeric_addr("2001:0db8:85a3:0042:1000:8a2e:0370:7334"));
253 CU_ASSERT(!util::ipv6_numeric_addr("127.0.0.1"));
255 CU_ASSERT(!util::ipv6_numeric_addr("localhost"));
261 CU_ASSERT(("0" == StringRef{buf, util::utos(buf, 0)}));
262 CU_ASSERT(("123" == StringRef{buf, util::utos(buf, 123)}));
264 StringRef{buf, util::utos(buf, 18446744073709551615ULL)}));
270 CU_ASSERT("0" == util::make_string_ref_uint(balloc, 0));
271 CU_ASSERT("123" == util::make_string_ref_uint(balloc, 123));
273 util::make_string_ref_uint(balloc, 18446744073709551615ULL));
277 CU_ASSERT("0" == util::utos_unit(0));
278 CU_ASSERT("1023" == util::utos_unit(1023));
279 CU_ASSERT("1K" == util::utos_unit(1024));
280 CU_ASSERT("1K" == util::utos_unit(1025));
281 CU_ASSERT("1M" == util::utos_unit(1 << 20));
282 CU_ASSERT("1G" == util::utos_unit(1 << 30));
283 CU_ASSERT("1024G" == util::utos_unit(1LL << 40));
287 CU_ASSERT("0" == util::utos_funit(0));
288 CU_ASSERT("1023" == util::utos_funit(1023));
289 CU_ASSERT("1.00K" == util::utos_funit(1024));
290 CU_ASSERT("1.00K" == util::utos_funit(1025));
291 CU_ASSERT("1.09K" == util::utos_funit(1119));
292 CU_ASSERT("1.27K" == util::utos_funit(1300));
293 CU_ASSERT("1.00M" == util::utos_funit(1 << 20));
294 CU_ASSERT("1.18M" == util::utos_funit(1234567));
295 CU_ASSERT("1.00G" == util::utos_funit(1 << 30));
296 CU_ASSERT("4492450797.23G" == util::utos_funit(4823732313248234343LL));
297 CU_ASSERT("1024.00G" == util::utos_funit(1LL << 40));
301 CU_ASSERT(0 == util::parse_uint_with_unit("0"));
302 CU_ASSERT(1023 == util::parse_uint_with_unit("1023"));
303 CU_ASSERT(1024 == util::parse_uint_with_unit("1k"));
304 CU_ASSERT(2048 == util::parse_uint_with_unit("2K"));
305 CU_ASSERT(1 << 20 == util::parse_uint_with_unit("1m"));
306 CU_ASSERT(1 << 21 == util::parse_uint_with_unit("2M"));
307 CU_ASSERT(1 << 30 == util::parse_uint_with_unit("1g"));
308 CU_ASSERT(1LL << 31 == util::parse_uint_with_unit("2G"));
310 util::parse_uint_with_unit("9223372036854775807"));
312 CU_ASSERT(-1 == util::parse_uint_with_unit("9223372036854775808"));
313 CU_ASSERT(-1 == util::parse_uint_with_unit("10000000000000000000"));
314 CU_ASSERT(-1 == util::parse_uint_with_unit("9223372036854775807G"));
316 CU_ASSERT(-1 == util::parse_uint_with_unit("1.1"));
317 CU_ASSERT(-1 == util::parse_uint_with_unit("1a"));
318 CU_ASSERT(-1 == util::parse_uint_with_unit("a1"));
319 CU_ASSERT(-1 == util::parse_uint_with_unit("1T"));
320 CU_ASSERT(-1 == util::parse_uint_with_unit(""));
324 CU_ASSERT(0 == util::parse_uint("0"));
325 CU_ASSERT(1023 == util::parse_uint("1023"));
326 CU_ASSERT(-1 == util::parse_uint("1k"));
327 CU_ASSERT(9223372036854775807LL == util::parse_uint("9223372036854775807"));
329 CU_ASSERT(-1 == util::parse_uint("9223372036854775808"));
330 CU_ASSERT(-1 == util::parse_uint("10000000000000000000"));
332 CU_ASSERT(-1 == util::parse_uint("1.1"));
333 CU_ASSERT(-1 == util::parse_uint("1a"));
334 CU_ASSERT(-1 == util::parse_uint("a1"));
335 CU_ASSERT(-1 == util::parse_uint("1T"));
336 CU_ASSERT(-1 == util::parse_uint(""));
340 CU_ASSERT(0. == util::parse_duration_with_unit("0"));
341 CU_ASSERT(123. == util::parse_duration_with_unit("123"));
342 CU_ASSERT(123. == util::parse_duration_with_unit("123s"));
343 CU_ASSERT(0.500 == util::parse_duration_with_unit("500ms"));
344 CU_ASSERT(123. == util::parse_duration_with_unit("123S"));
345 CU_ASSERT(0.500 == util::parse_duration_with_unit("500MS"));
346 CU_ASSERT(180 == util::parse_duration_with_unit("3m"));
347 CU_ASSERT(3600 * 5 == util::parse_duration_with_unit("5h"));
351 CU_ASSERT(err == util::parse_duration_with_unit("9223372036854775808"));
353 CU_ASSERT(err == util::parse_duration_with_unit("0u"));
354 CU_ASSERT(err == util::parse_duration_with_unit("0xs"));
355 CU_ASSERT(err == util::parse_duration_with_unit("0mt"));
356 CU_ASSERT(err == util::parse_duration_with_unit("0mss"));
357 CU_ASSERT(err == util::parse_duration_with_unit("s"));
358 CU_ASSERT(err == util::parse_duration_with_unit("ms"));
362 CU_ASSERT("0" == util::duration_str(0.));
363 CU_ASSERT("1s" == util::duration_str(1.));
364 CU_ASSERT("500ms" == util::duration_str(0.5));
365 CU_ASSERT("1500ms" == util::duration_str(1.5));
366 CU_ASSERT("2m" == util::duration_str(120.));
367 CU_ASSERT("121s" == util::duration_str(121.));
368 CU_ASSERT("1h" == util::duration_str(3600.));
372 CU_ASSERT("0us" == util::format_duration(std::chrono::microseconds(0)));
373 CU_ASSERT("999us" == util::format_duration(std::chrono::microseconds(999)));
374 CU_ASSERT("1.00ms" == util::format_duration(std::chrono::microseconds(1000)));
375 CU_ASSERT("1.09ms" == util::format_duration(std::chrono::microseconds(1090)));
376 CU_ASSERT("1.01ms" == util::format_duration(std::chrono::microseconds(1009)));
378 util::format_duration(std::chrono::microseconds(999990)));
380 util::format_duration(std::chrono::microseconds(1000000)));
382 util::format_duration(std::chrono::microseconds(1050000)));
384 CU_ASSERT("0us" == util::format_duration(0.));
385 CU_ASSERT("999us" == util::format_duration(0.000999));
386 CU_ASSERT("1.00ms" == util::format_duration(0.001));
387 CU_ASSERT("1.09ms" == util::format_duration(0.00109));
388 CU_ASSERT("1.01ms" == util::format_duration(0.001009));
389 CU_ASSERT("999.99ms" == util::format_duration(0.99999));
390 CU_ASSERT("1.00s" == util::format_duration(1.));
391 CU_ASSERT("1.05s" == util::format_duration(1.05));
395 CU_ASSERT(util::starts_with(StringRef::from_lit("foo"),
397 CU_ASSERT(util::starts_with(StringRef::from_lit("fooo"),
399 CU_ASSERT(util::starts_with(StringRef::from_lit("ofoo"), StringRef{}));
400 CU_ASSERT(!util::starts_with(StringRef::from_lit("ofoo"),
403 CU_ASSERT(util::istarts_with(StringRef::from_lit("FOO"),
405 CU_ASSERT(util::istarts_with(StringRef::from_lit("ofoo"), StringRef{}));
406 CU_ASSERT(util::istarts_with(StringRef::from_lit("fOOo"),
408 CU_ASSERT(!util::istarts_with(StringRef::from_lit("ofoo"),
411 CU_ASSERT(util::istarts_with_l(StringRef::from_lit("fOOo"), "Foo"));
412 CU_ASSERT(!util::istarts_with_l(StringRef::from_lit("ofoo"), "foo"));
417 util::ends_with(StringRef::from_lit("foo"), StringRef::from_lit("foo")));
418 CU_ASSERT(util::ends_with(StringRef::from_lit("foo"), StringRef{}));
420 util::ends_with(StringRef::from_lit("ofoo"), StringRef::from_lit("foo")));
422 !util::ends_with(StringRef::from_lit("ofoo"), StringRef::from_lit("fo")));
425 util::iends_with(StringRef::from_lit("fOo"), StringRef::from_lit("Foo")));
426 CU_ASSERT(util::iends_with(StringRef::from_lit("foo"), StringRef{}));
427 CU_ASSERT(util::iends_with(StringRef::from_lit("oFoo"),
429 CU_ASSERT(!util::iends_with(StringRef::from_lit("ofoo"),
432 CU_ASSERT(util::iends_with_l(StringRef::from_lit("oFoo"), "fOO"));
433 CU_ASSERT(!util::iends_with_l(StringRef::from_lit("ofoo"), "fo"));
437 CU_ASSERT(1001939696 == util::parse_http_date(StringRef::from_lit(
454 util::common_log_date(1001939696).c_str());
456 util::iso8601_date(1001939696000LL + 123).c_str());
461 util::format_common_log(common_buf.data(),
469 util::format_iso8601(iso8601_buf.data(),
487 auto n = util::get_uint64(v.data());
495 auto n = util::get_uint64(v.data());
502 auto res = util::parse_config_str_list(StringRef::from_lit("a"));
506 res = util::parse_config_str_list(StringRef::from_lit("a,"));
511 res = util::parse_config_str_list(StringRef::from_lit(":a::"), ':');
518 res = util::parse_config_str_list(StringRef{});
522 res = util::parse_config_str_list(StringRef::from_lit("alpha,bravo,charlie"));
532 CU_ASSERT("localhost" == util::make_http_hostport(
535 util::make_http_hostport(balloc, StringRef::from_lit("::1"), 443));
538 util::make_http_hostport(balloc, StringRef::from_lit("localhost"), 3000));
542 std::array<char, util::max_hostport> hostport_buf;
544 util::make_hostport(std::begin(hostport_buf),
546 CU_ASSERT("[::1]:443" == util::make_hostport(std::begin(hostport_buf),
552 util::make_hostport(balloc, StringRef::from_lit("localhost"), 80));
554 util::make_hostport(balloc, StringRef::from_lit("::1"), 443));
558 CU_ASSERT(util::strifind(StringRef::from_lit("gzip, deflate, bzip2"),
561 CU_ASSERT(util::strifind(StringRef::from_lit("gzip, deflate, bzip2"),
564 CU_ASSERT(util::strifind(StringRef::from_lit("gzip, deflate, bzip2"),
567 CU_ASSERT(util::strifind(StringRef::from_lit("nghttp2"), StringRef{}));
570 CU_ASSERT(!util::strifind(StringRef{}, StringRef{}));
572 CU_ASSERT(!util::strifind(StringRef::from_lit("nghttp2"),
581 auto p = util::random_alpha_digit(std::begin(data), std::end(data), gen);
595 util::format_hex(balloc, StringRef::from_lit("\x0f\xf0")));
596 CU_ASSERT("" == util::format_hex(balloc, StringRef::from_lit("")));
600 CU_ASSERT(util::is_hex_string(StringRef{}));
601 CU_ASSERT(util::is_hex_string(StringRef::from_lit("0123456789abcdef")));
602 CU_ASSERT(util::is_hex_string(StringRef::from_lit("0123456789ABCDEF")));
603 CU_ASSERT(!util::is_hex_string(StringRef::from_lit("000")));
604 CU_ASSERT(!util::is_hex_string(StringRef::from_lit("XX")));
611 util::decode_hex(balloc, StringRef::from_lit("0ff0")));
612 CU_ASSERT("" == util::decode_hex(balloc, StringRef{}));
617 util::extract_host(StringRef::from_lit("foo")));
619 util::extract_host(StringRef::from_lit("foo:")));
621 util::extract_host(StringRef::from_lit("foo:0")));
623 util::extract_host(StringRef::from_lit("[::1]")));
625 util::extract_host(StringRef::from_lit("[::1]:")));
627 CU_ASSERT(util::extract_host(StringRef::from_lit(":foo")).empty());
628 CU_ASSERT(util::extract_host(StringRef::from_lit("[::1")).empty());
629 CU_ASSERT(util::extract_host(StringRef::from_lit("[::1]0")).empty());
630 CU_ASSERT(util::extract_host(StringRef{}).empty());
635 util::split_hostport(StringRef::from_lit("foo")));
638 util::split_hostport(StringRef::from_lit("foo:80")));
641 util::split_hostport(StringRef::from_lit("[::1]:80")));
643 util::split_hostport(StringRef::from_lit("[::1]")));
646 util::split_hostport(StringRef{}));
648 util::split_hostport(StringRef::from_lit("[::1]:")));
650 util::split_hostport(StringRef::from_lit("foo:")));
652 util::split_hostport(StringRef::from_lit("[::1:")));
654 util::split_hostport(StringRef::from_lit("[::1]80")));
659 util::split_str(StringRef::from_lit(""), ','));
661 util::split_str(StringRef::from_lit("alpha"), ','));
664 util::split_str(StringRef::from_lit("alpha,"), ','));
667 util::split_str(StringRef::from_lit("alpha,bravo"), ','));
671 util::split_str(StringRef::from_lit("alpha,bravo,charlie"), ','));
676 util::split_str(StringRef::from_lit("alpha,bravo,charlie"), ',', 0));
678 util::split_str(StringRef::from_lit(""), ',', 1));
680 util::split_str(StringRef::from_lit(""), ',', 2));
684 util::split_str(StringRef::from_lit("alpha,bravo,charlie"), ',', 2));
686 util::split_str(StringRef::from_lit("alpha"), ',', 2));
689 util::split_str(StringRef::from_lit("alpha,"), ',', 2));
691 util::split_str(StringRef::from_lit("alpha"), ',', 0));
694 util::split_str(StringRef::from_lit("alpha,bravo,charlie"), ',', 1));
700 CU_ASSERT("alpha" == util::rstrip(balloc, StringRef::from_lit("alpha")));
701 CU_ASSERT("alpha" == util::rstrip(balloc, StringRef::from_lit("alpha ")));
702 CU_ASSERT("alpha" == util::rstrip(balloc, StringRef::from_lit("alpha \t")));
703 CU_ASSERT("" == util::rstrip(balloc, StringRef::from_lit("")));
704 CU_ASSERT("" == util::rstrip(balloc, StringRef::from_lit("\t\t\t ")));