X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2Ftest%2FUriTest.cpp;h=1431d63da0e74389eb691d0536d41b366a737ec3;hb=c10a6640488dc4805bc383b98734e9c6bf616be1;hp=9796720315734a424a405d9592a0b06b2b35d151;hpb=7ffe7766f032914384aa6e0b9598bab7d9a90602;p=folly.git diff --git a/folly/test/UriTest.cpp b/folly/test/UriTest.cpp index 97967203..1431d63d 100644 --- a/folly/test/UriTest.cpp +++ b/folly/test/UriTest.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2014 Facebook, Inc. + * Copyright 2017 Facebook, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,19 +15,14 @@ */ #include -#include +#include #include #include -#include #include using namespace folly; -namespace { - -} // namespace - TEST(Uri, Simple) { { fbstring s("http://www.facebook.com/hello/world?query#fragment"); @@ -239,7 +234,7 @@ TEST(Uri, Simple) { EXPECT_EQ("/etc/motd", u.path()); EXPECT_EQ("", u.query()); EXPECT_EQ("", u.fragment()); - EXPECT_EQ("file:///etc/motd", u.fbstr()); + EXPECT_EQ("file:/etc/motd", u.fbstr()); } { @@ -352,7 +347,7 @@ TEST(Uri, Simple) { try { Uri u(s); CHECK(false) << "Control should not have reached here"; - } catch (const std::invalid_argument& ex) { + } catch (const std::invalid_argument&) { // success } } @@ -363,7 +358,7 @@ TEST(Uri, Simple) { try { Uri u(s); CHECK(false) << "Control should not have reached here"; - } catch (const std::invalid_argument& ex) { + } catch (const std::invalid_argument&) { // success } } @@ -374,7 +369,7 @@ TEST(Uri, Simple) { try { Uri u(s); CHECK(false) << "Control should not have reached here"; - } catch (const std::invalid_argument& ex) { + } catch (const std::invalid_argument&) { // success } } @@ -385,79 +380,31 @@ TEST(Uri, Simple) { try { Uri u(s); CHECK(false) << "Control should not have reached here"; - } catch (const std::invalid_argument& ex) { + } catch (const std::invalid_argument&) { // success } } -} -/** - * Result of benchmark varies by the complexity of query. - * ============================================================================ - * folly/test/UriTest.cpp relative time/iter iters/s - * ============================================================================ - * init_uri_simple 4.88us 204.80K - * init_uri_simple_with_query_parsing 22.46us 44.52K - * init_uri_complex 5.92us 168.85K - * init_uri_complex_with_query_parsing 48.70us 20.53K - * ============================================================================ - */ -BENCHMARK(init_uri_simple, iters) { - const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); - for (size_t i = 0; i < iters; ++i) { - Uri u(s); - } -} - -BENCHMARK(init_uri_simple_with_query_parsing, iters) { - const fbstring s("http://localhost?&key1=foo&key2=&key3&=bar&=bar=&"); - for (size_t i = 0; i < iters; ++i) { + // No authority (no "//") is valid + { + fbstring s("this:is/a/valid/uri"); Uri u(s); - u.getQueryParams(); + EXPECT_EQ("this", u.scheme()); + EXPECT_EQ("is/a/valid/uri", u.path()); + EXPECT_EQ(s, u.fbstr()); } -} - -BENCHMARK(init_uri_complex, iters) { - const fbstring s( - "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" - "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" - "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" - "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" - "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" - "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" - "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" - "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" - "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" - "tYn4"); - for (size_t i = 0; i < iters; ++i) { + { + fbstring s("this:is:another:valid:uri"); Uri u(s); + EXPECT_EQ("this", u.scheme()); + EXPECT_EQ("is:another:valid:uri", u.path()); + EXPECT_EQ(s, u.fbstr()); } -} - -BENCHMARK(init_uri_complex_with_query_parsing, iters) { - const fbstring s( - "https://mock.example.com/farm/track.php?TmOxQUDF=uSmTS_VwhjKnh_JME&DI" - "h=fbbN&GRsoIm=bGshjaUqavZxQai&UMT=36k18N4dn21&3U=CD8o4A4497W152j6m0V%14" - "%57&Hy=t%05mpr.80JUZ7ne_%23zS8DcA%0qc_%291ymamz096%11Zfb3r%09ZqPD%311ZX" - "tqJd600ot&5U96U-Rh-VZ=-D_6-9xKYj%1gW6b43s1B9-j21P0oUW5-t46G4kgt&ezgj=mcW" - "TTQ.c&Oh=%2PblUfuC%7C997048884827569%03xnyJ%2L1pi7irBioQ6D4r7nNHNdo6v7Y%" - "84aurnSJ%2wCFePHMlGZmIHGfCe7392_lImWsSvN&sBeNN=Nf%80yOE%6X10M64F4gG197aX" - "R2B4g2533x235A0i4e%57%58uWB%04Erw.60&VMS4=Ek_%02GC0Pkx%6Ov_%207WICUz007%" - "04nYX8N%46zzpv%999h&KGmBt988y=q4P57C-Dh-Nz-x_7-5oPxz%1gz3N03t6c7-R67N4DT" - "Y6-f98W1&Lts&%02dOty%8eEYEnLz4yexQQLnL4MGU2JFn3OcmXcatBcabZgBdDdy67hdgW" - "tYn4"); - for (size_t i = 0; i < iters; ++i) { + { + fbstring s("this:is@another:valid:uri"); Uri u(s); - u.getQueryParams(); - } -} - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - auto r = RUN_ALL_TESTS(); - if (r) { - return r; + EXPECT_EQ("this", u.scheme()); + EXPECT_EQ("is@another:valid:uri", u.path()); + EXPECT_EQ(s, u.fbstr()); } - runBenchmarks(); - return 0; }