From b24a4c9b4811534e19e67cbbadcd402c09a0fada Mon Sep 17 00:00:00 2001 From: stefanocasazza Date: Wed, 27 Jun 2018 18:42:13 +0200 Subject: [PATCH] sync --- include/ulib/string.h | 19 ++++--- src/ulib/net/server/plugin/usp/db.usp | 52 ++++++++++++++++--- src/ulib/net/server/plugin/usp/fortune.h | 34 ++++++++---- src/ulib/net/server/plugin/usp/world.h | 4 ++ src/ulib/orm/driver/orm_driver_pgsql.cpp | 4 +- tests/examples/TSA/tsaserial | 2 +- .../ULib/docker/ulib-mongodb.dockerfile | 2 +- .../ULib/docker/ulib-mysql.dockerfile | 2 +- .../ULib/docker/ulib-postgres.dockerfile | 2 +- .../ULib/docker/ulib-postgres_fit.dockerfile | 2 +- .../FrameworkBenchmarks/ULib/src/db.usp | 52 ++++++++++++++++--- .../FrameworkBenchmarks/ULib/src/fortune.h | 34 ++++++++---- .../FrameworkBenchmarks/ULib/src/world.h | 4 ++ 13 files changed, 166 insertions(+), 47 deletions(-) diff --git a/include/ulib/string.h b/include/ulib/string.h index fb7a08d8..48fa4286 100644 --- a/include/ulib/string.h +++ b/include/ulib/string.h @@ -332,20 +332,19 @@ public: int r = *(const unsigned char*)str - *(const unsigned char*)s; - if (r == 0) + if (r) U_RETURN(r); + + uint32_t len = U_min(_length, n); + + if (len > 1) { - uint32_t len = U_min(_length, n); + r = memcmp(str+1, s+1, len-1); - if (len > 1) - { - r = memcmp(str+1, s+1, len-1); - - if (r) U_RETURN(r); - } - - r = _length < n ? -1 : _length > n; // _length - n; + if (r) U_RETURN(r); } + r = _length < n ? -1 : _length > n; // _length - n; + U_RETURN(r); } diff --git a/src/ulib/net/server/plugin/usp/db.usp b/src/ulib/net/server/plugin/usp/db.usp index 1784ccf6..0da69447 100644 --- a/src/ulib/net/server/plugin/usp/db.usp +++ b/src/ulib/net/server/plugin/usp/db.usp @@ -5,7 +5,27 @@ TechEmpower Web Framework Benchmarks diff --git a/src/ulib/net/server/plugin/usp/fortune.h b/src/ulib/net/server/plugin/usp/fortune.h index eb0d4bb2..06070a5c 100644 --- a/src/ulib/net/server/plugin/usp/fortune.h +++ b/src/ulib/net/server/plugin/usp/fortune.h @@ -121,7 +121,7 @@ public: U_INTERNAL_ASSERT_POINTER(pvfortune) - Fortune* elem = pvfortune->at(1+i); + Fortune* elem = pvfortune->at(i); elem->id = _id; @@ -141,16 +141,30 @@ public: char* pwbuffer = UClientImage_Base::wbuffer->pend(); - (void) memcpy(pwbuffer, U_CONSTANT_TO_PARAM("Fortunes")); - pwbuffer += U_CONSTANT_SIZE("Fortunes
idmessage
"); + u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','!','d','o','c','t','y','p')); + u_put_unalignedp64(pwbuffer+8, U_MULTICHAR_CONSTANT64('e',' ','h','t','m','l','>','<')); + u_put_unalignedp64(pwbuffer+16, U_MULTICHAR_CONSTANT64('h','t','m','l','>','<','h','e')); + u_put_unalignedp64(pwbuffer+24, U_MULTICHAR_CONSTANT64('a','d','>','<','t','i','t','l')); + u_put_unalignedp64(pwbuffer+32, U_MULTICHAR_CONSTANT64('e','>','F','o','r','t','u','n')); + u_put_unalignedp64(pwbuffer+40, U_MULTICHAR_CONSTANT64('e','s','<','/','t','i','t','l')); + u_put_unalignedp64(pwbuffer+48, U_MULTICHAR_CONSTANT64('e','>','<','/','h','e','a','d')); + u_put_unalignedp64(pwbuffer+56, U_MULTICHAR_CONSTANT64('>','<','b','o','d','y','>','<')); + u_put_unalignedp64(pwbuffer+64, U_MULTICHAR_CONSTANT64('t','a','b','l','e','>','<','t')); + u_put_unalignedp64(pwbuffer+72, U_MULTICHAR_CONSTANT64('r','>','<','t','h','>','i','d')); + u_put_unalignedp64(pwbuffer+80, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','t','h')); + u_put_unalignedp64(pwbuffer+88, U_MULTICHAR_CONSTANT64('>','m','e','s','s','a','g','e')); + u_put_unalignedp64(pwbuffer+96, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','/','t')); + u_put_unalignedp16(pwbuffer+104, U_MULTICHAR_CONSTANT16('r','>')); - Fortune* elem = pvfortune->at(0); + pwbuffer += U_CONSTANT_SIZE("Fortunes
idmessage
"); + + handlerQuery(); + + Fortune* elem = pvfortune->last(); elem->id = 0; elem->message.rep->replace(U_CONSTANT_TO_PARAM("Additional fortune added at request time.")); - handlerQuery(); - pvfortune->sort(Fortune::cmp_obj); for (uint32_t sz, i = 0, n = pvfortune->size(); i < n; ++i) @@ -171,10 +185,12 @@ public: u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','/','t','d','>','<','/','t')); u_put_unalignedp16(pwbuffer+8, U_MULTICHAR_CONSTANT16('r','>')); - pwbuffer += 10; + pwbuffer += 8+2; } - (void) memcpy(pwbuffer, U_CONSTANT_TO_PARAM("
idmessage
")); + u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','/','t','a','b','l','e','>')); + u_put_unalignedp64(pwbuffer+8, U_MULTICHAR_CONSTANT64('<','/','b','o','d','y','>','<')); + u_put_unalignedp64(pwbuffer+16, U_MULTICHAR_CONSTANT64('/','h','t','m','l','>','\0','\0')); UClientImage_Base::wbuffer->size_adjust(pwbuffer + U_CONSTANT_SIZE("")); @@ -193,7 +209,7 @@ public: for (uint32_t i = 0; i < 13; ++i) { - U_NEW(Fortune, elem, Fortune(i)); + U_NEW(Fortune, elem, Fortune(i+1)); pvfortune->push(elem); } diff --git a/src/ulib/net/server/plugin/usp/world.h b/src/ulib/net/server/plugin/usp/world.h index a7fbe886..6bab7b76 100644 --- a/src/ulib/net/server/plugin/usp/world.h +++ b/src/ulib/net/server/plugin/usp/world.h @@ -9,6 +9,10 @@ #include #include +#ifdef U_STATIC_ORM_DRIVER_PGSQL +# include +#endif + class World { public: // Check for memory error diff --git a/src/ulib/orm/driver/orm_driver_pgsql.cpp b/src/ulib/orm/driver/orm_driver_pgsql.cpp index 8a46ebb3..82cc9b0c 100644 --- a/src/ulib/orm/driver/orm_driver_pgsql.cpp +++ b/src/ulib/orm/driver/orm_driver_pgsql.cpp @@ -379,7 +379,7 @@ bool UPgSqlStatement::setBindParam(UOrmDriver* pdrv) num_bind_result = U_SYSCALL(PQnfields, "%p", res); - # ifdef DEBUG +# ifdef DEBUG uint32_t i; Oid paramtype; @@ -400,7 +400,7 @@ bool UPgSqlStatement::setBindParam(UOrmDriver* pdrv) U_INTERNAL_DUMP("result[%u] (%s): size = %d type = %d format = %d", i, fname, fsize, paramtype, fformat) } - # endif +# endif } if (num_bind_param) diff --git a/tests/examples/TSA/tsaserial b/tests/examples/TSA/tsaserial index 3a3e01ef..975bd739 100644 --- a/tests/examples/TSA/tsaserial +++ b/tests/examples/TSA/tsaserial @@ -1 +1 @@ -0173 +017A diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mongodb.dockerfile b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mongodb.dockerfile index 803765ab..9d2e97dc 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mongodb.dockerfile +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mongodb.dockerfile @@ -83,7 +83,7 @@ ADD ./ /ulib WORKDIR /ulib ENV MONGODB_HOST=tfb-database -ENV UMEMPOOL="96,0,0,47,16401,-14,-20,-18,26" +ENV UMEMPOOL="96,0,0,97,16417,-14,-20,-18,26" CMD setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp && \ $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mysql.dockerfile b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mysql.dockerfile index fa83d847..713357e3 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mysql.dockerfile +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-mysql.dockerfile @@ -79,7 +79,7 @@ WORKDIR /ulib ENV ORM_DRIVER="mysql" ENV ORM_OPTION="host=tfb-database user=benchmarkdbuser password=benchmarkdbpass character-set=utf8 dbname=hello_world" -ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31" +ENV UMEMPOOL="96,0,0,97,16417,-14,-20,-18,26" CMD setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp && \ $IROOT/ULib/bin/userver_tcp -c $IROOT/ULib/benchmark.cfg diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres.dockerfile b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres.dockerfile index ac8949e1..b3e9c2e6 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres.dockerfile +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres.dockerfile @@ -78,7 +78,7 @@ ADD ./ /ulib WORKDIR /ulib ENV ORM_DRIVER="pgsql" -ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31" +ENV UMEMPOOL="96,0,0,97,16417,-14,-20,-18,26" ENV ORM_OPTION="host=tfb-database user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8" CMD setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp && \ diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres_fit.dockerfile b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres_fit.dockerfile index 5ba2a54a..74bab0b1 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres_fit.dockerfile +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/docker/ulib-postgres_fit.dockerfile @@ -78,7 +78,7 @@ ADD ./ /ulib WORKDIR /ulib ENV ORM_DRIVER="pgsql" -ENV UMEMPOOL="581,0,0,59,16409,-7,-20,-23,31" +ENV UMEMPOOL="96,0,0,97,16417,-14,-20,-18,26" ENV ORM_OPTION="host=tfb-database user=benchmarkdbuser password=benchmarkdbpass dbname=hello_world client_encoding=UTF8" CMD setcap cap_sys_nice,cap_sys_resource,cap_net_bind_service,cap_net_raw+eip $IROOT/ULib/bin/userver_tcp && \ diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/db.usp b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/db.usp index 1784ccf6..0da69447 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/db.usp +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/db.usp @@ -5,7 +5,27 @@ TechEmpower Web Framework Benchmarks diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h index bf80f378..a2169d61 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/fortune.h @@ -121,7 +121,7 @@ public: U_INTERNAL_ASSERT_POINTER(pvfortune) - Fortune* elem = pvfortune->at(1+i); + Fortune* elem = pvfortune->at(i); elem->id = _id; @@ -141,16 +141,30 @@ public: char* pwbuffer = UClientImage_Base::wbuffer->pend(); - (void) memcpy(pwbuffer, U_CONSTANT_TO_PARAM("Fortunes")); - pwbuffer += U_CONSTANT_SIZE("Fortunes
idmessage
"); + u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','!','d','o','c','t','y','p')); + u_put_unalignedp64(pwbuffer+8, U_MULTICHAR_CONSTANT64('e',' ','h','t','m','l','>','<')); + u_put_unalignedp64(pwbuffer+16, U_MULTICHAR_CONSTANT64('h','t','m','l','>','<','h','e')); + u_put_unalignedp64(pwbuffer+24, U_MULTICHAR_CONSTANT64('a','d','>','<','t','i','t','l')); + u_put_unalignedp64(pwbuffer+32, U_MULTICHAR_CONSTANT64('e','>','F','o','r','t','u','n')); + u_put_unalignedp64(pwbuffer+40, U_MULTICHAR_CONSTANT64('e','s','<','/','t','i','t','l')); + u_put_unalignedp64(pwbuffer+48, U_MULTICHAR_CONSTANT64('e','>','<','/','h','e','a','d')); + u_put_unalignedp64(pwbuffer+56, U_MULTICHAR_CONSTANT64('>','<','b','o','d','y','>','<')); + u_put_unalignedp64(pwbuffer+64, U_MULTICHAR_CONSTANT64('t','a','b','l','e','>','<','t')); + u_put_unalignedp64(pwbuffer+72, U_MULTICHAR_CONSTANT64('r','>','<','t','h','>','i','d')); + u_put_unalignedp64(pwbuffer+80, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','t','h')); + u_put_unalignedp64(pwbuffer+88, U_MULTICHAR_CONSTANT64('>','m','e','s','s','a','g','e')); + u_put_unalignedp64(pwbuffer+96, U_MULTICHAR_CONSTANT64('<','/','t','h','>','<','/','t')); + u_put_unalignedp16(pwbuffer+104, U_MULTICHAR_CONSTANT16('r','>')); - Fortune* elem = pvfortune->at(0); + pwbuffer += U_CONSTANT_SIZE("Fortunes
idmessage
"); + + handlerQuery(); + + Fortune* elem = pvfortune->last(); elem->id = 0; elem->message.rep->replace(U_CONSTANT_TO_PARAM("Additional fortune added at request time.")); - handlerQuery(); - pvfortune->sort(Fortune::cmp_obj); for (uint32_t sz, i = 0, n = pvfortune->size(); i < n; ++i) @@ -171,10 +185,12 @@ public: u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','/','t','d','>','<','/','t')); u_put_unalignedp16(pwbuffer+8, U_MULTICHAR_CONSTANT16('r','>')); - pwbuffer += 10; + pwbuffer += 8+2; } - (void) memcpy(pwbuffer, U_CONSTANT_TO_PARAM("
idmessage
")); + u_put_unalignedp64(pwbuffer, U_MULTICHAR_CONSTANT64('<','/','t','a','b','l','e','>')); + u_put_unalignedp64(pwbuffer+8, U_MULTICHAR_CONSTANT64('<','/','b','o','d','y','>','<')); + u_put_unalignedp64(pwbuffer+16, U_MULTICHAR_CONSTANT64('/','h','t','m','l','>','\0','\0')); UClientImage_Base::wbuffer->size_adjust(pwbuffer + U_CONSTANT_SIZE("")); @@ -193,7 +209,7 @@ public: for (uint32_t i = 0; i < 13; ++i) { - U_NEW(Fortune, elem, Fortune(i)); + U_NEW(Fortune, elem, Fortune(i+1)); pvfortune->push(elem); } diff --git a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/world.h b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/world.h index f7c22f4d..55647225 100644 --- a/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/world.h +++ b/tests/examples/benchmark/FrameworkBenchmarks/ULib/src/world.h @@ -9,6 +9,10 @@ #include #include +#ifdef U_STATIC_ORM_DRIVER_PGSQL +# include +#endif + class World { public: // Check for memory error