亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? string.c

?? 基于sip協議的網絡電話源碼
?? C
字號:
/* $Id: string.c 1193 2007-04-15 09:54:17Z bennylp $ *//*  * Copyright (C)2003-2007 Benny Prijono <benny@prijono.org> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA  */#include <pj/string.h>#include <pj/pool.h>#include <pj/log.h>#include <pj/os.h>#include "test.h"#define THIS_FILE	"string.c"/** * \page page_pjlib_string_test Test: String * * This file provides implementation of \b string_test(). It tests the * functionality of the string API. * * \section sleep_test_sec Scope of the Test * * API tested: *  - pj_str() *  - pj_strcmp() *  - pj_strcmp2() *  - pj_stricmp() *  - pj_strlen() *  - pj_strncmp() *  - pj_strnicmp() *  - pj_strchr() *  - pj_strdup() *  - pj_strdup2() *  - pj_strcpy() *  - pj_strcat() *  - pj_strtrim() *  - pj_utoa() *  - pj_strtoul() *  - pj_strtoul2() *  - pj_create_random_string() *  - ... and mode.. * * This file is <b>pjlib-test/string.c</b> * * \include pjlib-test/string.c */#if INCLUDE_STRING_TEST#ifdef _MSC_VER#   pragma warning(disable: 4204)#endif#define HELLO_WORLD	"Hello World"#define JUST_HELLO	"Hello"#define UL_VALUE	3456789012UL#if 1/* See if both integers have the same sign */PJ_INLINE(int) cmp(const char *expr, int i, int j){    i = !((i>0 && j>0) || (i<0 && j<0) || (i==0 && j==0));    if (i) {	PJ_LOG(3,(THIS_FILE,"   error: %s: expecting %d, got %d", expr, j, i));    }    return i;}#else/* For strict comparison, must be equal */PJ_INLINE(int) cmp(const char *expr, int i, int j){    PJ_UNUSED_ARG(expr);    return i!=j;}#endif#define C(expr, res)	cmp(#expr, expr, res)static int stricmp_test(void){/* This specificly tests and benchmark pj_stricmp(), pj_stricmp_alnum(). * In addition, it also tests pj_stricmp2(), pj_strnicmp(), and  * pj_strnicmp2(). */#define STRTEST(res,S1,S2,code)	\	    do { \		s1.ptr=S1; s1.slen=S1?len:0; \		s2.ptr=S2; s2.slen=S2?len:0; \		pj_get_timestamp(&t1); \	        if (C(pj_stricmp(&s1,&s2),res)) return code; \		pj_get_timestamp(&t2); \		pj_sub_timestamp(&t2, &t1); \		pj_add_timestamp(&e1, &t2); \		pj_get_timestamp(&t1); \	        if (C(pj_stricmp_alnum(&s1,&s2),res)) return code-1; \		pj_get_timestamp(&t2); \		pj_sub_timestamp(&t2, &t1); \		pj_add_timestamp(&e2, &t2); \		if (C(pj_stricmp2(&s1,S2),res)) return code*10; \		if (C(pj_strnicmp(&s1,&s2,len),res)) return code*100; \		if (C(pj_strnicmp2(&s1,S2,len),res)) return code*1000; \	    } while (0)    char *buf;    pj_str_t s1, s2;    pj_timestamp t1, t2, e1, e2, zero;    pj_uint32_t c1, c2;    int len;    e1.u32.hi = e1.u32.lo = e2.u32.hi = e2.u32.lo = 0;    pj_thread_sleep(0);    /* Compare empty strings. */    len=0;    STRTEST( 0, "","",-500);    STRTEST( 0, NULL,"",-502);    STRTEST( 0, "",NULL,-504);    STRTEST( 0, NULL,NULL,-506);    STRTEST( 0, "hello","world",-508);    /* equal, length=1      * use buffer to simulate non-aligned string.     */    buf = "a""A";    len=1;    STRTEST( 0, "a",buf+0,-510);    STRTEST( 0, "a",buf+1,-512);    STRTEST( -1, "O", "P", -514);    STRTEST(-1, NULL, "a", -516);    STRTEST(1, "a", NULL, -518);    /* equal, length=2      * use buffer to simulate non-aligned string.     */    buf = "aa""Aa""aA""AA";    len=2;    STRTEST( 0, "aa",buf+0,-520);    STRTEST( 0, "aa",buf+2,-522);    STRTEST( 0, "aa",buf+4,-524);    STRTEST( 0, "aa",buf+6,-524);    /* equal, length=3      * use buffer to simulate non-aligned string.     */    buf = "aaa""Aaa""aAa""aaA""AAa""aAA""AaA""AAA";    len=3;    STRTEST( 0, "aaa",buf+0,-530);    STRTEST( 0, "aaa",buf+3,-532);    STRTEST( 0, "aaa",buf+6,-534);    STRTEST( 0, "aaa",buf+9,-536);    STRTEST( 0, "aaa",buf+12,-538);    STRTEST( 0, "aaa",buf+15,-540);    STRTEST( 0, "aaa",buf+18,-542);    STRTEST( 0, "aaa",buf+21,-534);    /* equal, length=4 */    len=4;    STRTEST( 0, "aaaa","aaaa",-540);    STRTEST( 0, "aaaa","Aaaa",-542);    STRTEST( 0, "aaaa","aAaa",-544);    STRTEST( 0, "aaaa","aaAa",-546);    STRTEST( 0, "aaaa","aaaA",-548);    STRTEST( 0, "aaaa","AAaa",-550);    STRTEST( 0, "aaaa","aAAa",-552);    STRTEST( 0, "aaaa","aaAA",-554);    STRTEST( 0, "aaaa","AaAa",-556);    STRTEST( 0, "aaaa","aAaA",-558);    STRTEST( 0, "aaaa","AaaA",-560);    STRTEST( 0, "aaaa","AAAa",-562);    STRTEST( 0, "aaaa","aAAA",-564);    STRTEST( 0, "aaaa","AAaA",-566);    STRTEST( 0, "aaaa","AaAA",-568);    STRTEST( 0, "aaaa","AAAA",-570);    /* equal, length=5 */    buf = "aaaAa""AaaaA""AaAaA""AAAAA";    len=5;    STRTEST( 0, "aaaaa",buf+0,-580);    STRTEST( 0, "aaaaa",buf+5,-582);    STRTEST( 0, "aaaaa",buf+10,-584);    STRTEST( 0, "aaaaa",buf+15,-586);    /* not equal, length=1 */    len=1;    STRTEST( -1, "a", "b", -600);    /* not equal, length=2 */    buf = "ab""ba";    len=2;    STRTEST( -1, "aa", buf+0, -610);    STRTEST( -1, "aa", buf+2, -612);    /* not equal, length=3 */    buf = "aab""aba""baa";    len=3;    STRTEST( -1, "aaa", buf+0, -620);    STRTEST( -1, "aaa", buf+3, -622);    STRTEST( -1, "aaa", buf+6, -624);    /* not equal, length=4 */    buf = "aaab""aaba""abaa""baaa";    len=4;    STRTEST( -1, "aaaa", buf+0, -630);    STRTEST( -1, "aaaa", buf+4, -632);    STRTEST( -1, "aaaa", buf+8, -634);    STRTEST( -1, "aaaa", buf+12, -636);    /* not equal, length=5 */    buf="aaaab""aaaba""aabaa""abaaa""baaaa";    len=5;    STRTEST( -1, "aaaaa", buf+0, -640);    STRTEST( -1, "aaaaa", buf+5, -642);    STRTEST( -1, "aaaaa", buf+10, -644);    STRTEST( -1, "aaaaa", buf+15, -646);    STRTEST( -1, "aaaaa", buf+20, -648);    zero.u32.hi = zero.u32.lo = 0;    c1 = pj_elapsed_cycle(&zero, &e1);    c2 = pj_elapsed_cycle(&zero, &e2);    if (c1 < c2) {	PJ_LOG(3,("", "  info: pj_stricmp_alnum is slower than pj_stricmp!"));	//return -700;    }    PJ_LOG(3, ("", "  time: stricmp=%u, stricmp_alnum=%u (speedup=%d.%02dx)", 		   c1, c2,		   (c1 * 100 / c2) / 100,		   (c1 * 100 / c2) % 100));    return 0;#undef STRTEST}/* This tests pj_strcmp(), pj_strcmp2(), pj_strncmp(), pj_strncmp2() */static int strcmp_test(void){#define STR_TEST(res,S1,S2,code)    \	    do { \		s1.ptr=S1; s1.slen=S1?len:0; \		s2.ptr=S2; s2.slen=S2?len:0; \	        if (C(pj_strcmp(&s1,&s2),res)) return code; \		if (C(pj_strcmp2(&s1,S2),res)) return code-1; \		if (C(pj_strncmp(&s1,&s2,len),res)) return code-2; \		if (C(pj_strncmp2(&s1,S2,len),res)) return code-3; \	    } while (0)    pj_str_t s1, s2;    int len;        /* Test with length == 0 */    len=0;    STR_TEST(0, "", "", -400);    STR_TEST(0, NULL, "", -405);    STR_TEST(0, "", NULL, -410);    STR_TEST(0, NULL, NULL, -415);    STR_TEST(0, "hello", "", -420);    STR_TEST(0, "hello", NULL, -425);    /* Test with length != 0 */    len = 2;    STR_TEST(0, "12", "12", -430);    STR_TEST(1, "12", "1", -435);    STR_TEST(-1, "1", "12", -440);    STR_TEST(-1, NULL, "12", -445);    STR_TEST(1, "12", NULL, -450);    return 0;#undef STR_TEST}int string_test(void){    const pj_str_t hello_world = { HELLO_WORLD, strlen(HELLO_WORLD) };    const pj_str_t just_hello = { JUST_HELLO, strlen(JUST_HELLO) };    pj_str_t s1, s2, s3, s4, s5;    enum { RCOUNT = 10, RLEN = 16 };    pj_str_t random[RCOUNT];    pj_pool_t *pool;    int i;    pool = pj_pool_create(mem, NULL, 4096, 0, NULL);    if (!pool) return -5;        /*      * pj_str(), pj_strcmp(), pj_stricmp(), pj_strlen(),      * pj_strncmp(), pj_strchr()      */    s1 = pj_str(HELLO_WORLD);    if (pj_strcmp(&s1, &hello_world) != 0)	return -10;    if (pj_stricmp(&s1, &hello_world) != 0)	return -20;    if (pj_strcmp(&s1, &just_hello) <= 0)	return -30;    if (pj_stricmp(&s1, &just_hello) <= 0)	return -40;    if (pj_strlen(&s1) != strlen(HELLO_WORLD))	return -50;    if (pj_strncmp(&s1, &hello_world, 5) != 0)	return -60;    if (pj_strnicmp(&s1, &hello_world, 5) != 0)	return -70;    if (pj_strchr(&s1, HELLO_WORLD[1]) != s1.ptr+1)	return -80;    /*      * pj_strdup()      */    if (!pj_strdup(pool, &s2, &s1))	return -100;    if (pj_strcmp(&s1, &s2) != 0)	return -110;        /*      * pj_strcpy(), pj_strcat()      */    s3.ptr = pj_pool_alloc(pool, 256);    if (!s3.ptr) 	return -200;    pj_strcpy(&s3, &s2);    pj_strcat(&s3, &just_hello);    if (pj_strcmp2(&s3, HELLO_WORLD JUST_HELLO) != 0)	return -210;    /*      * pj_strdup2(), pj_strtrim().      */    pj_strdup2(pool, &s4, " " HELLO_WORLD "\t ");    pj_strtrim(&s4);    if (pj_strcmp2(&s4, HELLO_WORLD) != 0)	return -250;    /*      * pj_utoa()      */    s5.ptr = pj_pool_alloc(pool, 16);    if (!s5.ptr)	return -270;    s5.slen = pj_utoa(UL_VALUE, s5.ptr);    /*      * pj_strtoul()      */    if (pj_strtoul(&s5) != UL_VALUE)	return -280;    /*     * pj_strtoul2()     */    s5 = pj_str("123456");    pj_strtoul2(&s5, NULL, 10);	/* Crash test */    if (pj_strtoul2(&s5, &s4, 10) != 123456UL)	return -290;    if (s4.slen != 0)	return -291;    if (pj_strtoul2(&s5, &s4, 16) != 0x123456UL)	return -292;    s5 = pj_str("0123ABCD");    if (pj_strtoul2(&s5, &s4, 10) != 123)	return -293;    if (s4.slen != 4)	return -294;    if (s4.ptr == NULL || *s4.ptr != 'A')	return -295;    if (pj_strtoul2(&s5, &s4, 16) != 0x123ABCDUL)	return -296;    if (s4.slen != 0)	return -297;    /*      * pj_create_random_string()      * Check that no duplicate strings are returned.     */    for (i=0; i<RCOUNT; ++i) {	int j;		random[i].ptr = pj_pool_alloc(pool, RLEN);	if (!random[i].ptr)	    return -320;        random[i].slen = RLEN;	pj_create_random_string(random[i].ptr, RLEN);	for (j=0; j<i; ++j) {	    if (pj_strcmp(&random[i], &random[j])==0)		return -330;	}    }    /* Done. */    pj_pool_release(pool);    /* Case sensitive comparison test. */    i = strcmp_test();    if (i != 0)	return i;    /* Caseless comparison test. */    i = stricmp_test();    if (i != 0)	return i;    return 0;}#else/* To prevent warning about "translation unit is empty" * when this test is disabled.  */int dummy_string_test;#endif	/* INCLUDE_STRING_TEST */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频一区二区不卡| 欧美国产一区在线| 久久久久久一级片| 亚洲一区二区三区四区五区黄| 久久精品国产一区二区三| 99久久婷婷国产综合精品电影| 欧美一区二区三区日韩视频| 国产日韩精品一区二区三区 | www久久精品| 亚洲福利国产精品| 色系网站成人免费| 国产精品麻豆网站| 国产综合色在线| 日韩欧美一区在线观看| 亚洲美女视频一区| 99视频有精品| 国产精品久久久久精k8 | 亚洲国产精品t66y| 精彩视频一区二区| 欧美一区二区视频在线观看2022 | 国产91精品一区二区麻豆亚洲| 欧美另类z0zxhd电影| 一区二区三区.www| 一本久道久久综合中文字幕| 国产精品短视频| 成人深夜视频在线观看| 欧美激情一区在线| av一区二区三区黑人| 久久精品一二三| 国产成人av一区| 国产亚洲精品aa| 国产精品主播直播| 亚洲国产精品传媒在线观看| 豆国产96在线|亚洲| 中文字幕精品三区| www.亚洲激情.com| 亚洲欧美日韩在线| 欧美色图一区二区三区| 亚洲国产成人av网| 欧美人xxxx| 久久精品噜噜噜成人av农村| 精品国产精品网麻豆系列| 国内久久精品视频| 国产亚洲精品福利| 91麻豆国产福利精品| 亚洲国产一二三| 91精品国产综合久久久久久漫画 | 免费一级片91| 久久久91精品国产一区二区三区| 国产精品91xxx| 亚洲免费观看高清完整| 欧美性猛交xxxxxx富婆| 日韩影院精彩在线| 久久久久久久久久美女| 91在线无精精品入口| 丝袜美腿亚洲色图| 久久久久久久免费视频了| 国产精品888| 一区二区三区免费网站| 91精品国产高清一区二区三区| 狠狠色综合色综合网络| 亚洲图片你懂的| 欧美一区国产二区| 99久久综合99久久综合网站| 午夜久久久影院| 久久久精品免费观看| 色婷婷久久综合| 久久精品国产99国产| 中文字幕综合网| 欧美一区二区三区公司| 成人综合在线视频| 日韩精品免费专区| 综合av第一页| 亚洲精品一区二区三区精华液 | 亚洲综合偷拍欧美一区色| 日韩一区二区三| 色综合久久久久久久久| 老司机精品视频一区二区三区| 亚洲视频免费在线| 久久先锋资源网| 欧美优质美女网站| 成人国产免费视频| 精品在线一区二区| 亚洲国产精品一区二区久久恐怖片| 久久天堂av综合合色蜜桃网| 欧美日本一区二区三区| 91美女在线视频| 国产精品一区久久久久| 日韩综合小视频| 亚洲一区在线看| 中文字幕一区二区三区四区不卡| 日韩欧美一级特黄在线播放| 欧美日韩精品欧美日韩精品一综合| 高清不卡一二三区| 精品一区二区三区在线播放| 午夜影院在线观看欧美| 亚洲激情男女视频| 国产精品久久毛片a| 国产欧美一区二区三区在线看蜜臀 | 欧美大片在线观看一区二区| 欧美性三三影院| 色拍拍在线精品视频8848| eeuss影院一区二区三区| 国产精品一区免费视频| 精品影视av免费| 免费久久精品视频| 麻豆精品久久久| 免费成人美女在线观看.| 午夜精品一区在线观看| 亚洲午夜影视影院在线观看| 亚洲欧美日韩久久| 依依成人精品视频| 亚洲午夜激情av| 亚洲国产婷婷综合在线精品| 自拍偷拍亚洲欧美日韩| 亚洲精品网站在线观看| 亚洲人成在线播放网站岛国| 日韩毛片精品高清免费| 亚洲另类一区二区| 亚洲综合成人网| 奇米在线7777在线精品| 韩国一区二区三区| 国产成人免费av在线| 懂色av中文一区二区三区| 成人av在线一区二区三区| 91欧美一区二区| 欧美无乱码久久久免费午夜一区| 欧美日韩一卡二卡三卡 | 色婷婷av一区二区三区之一色屋| 99久久精品一区| 精品婷婷伊人一区三区三| 欧美一区二区三区在线| 久久亚洲综合色一区二区三区| 国产精品网友自拍| 一区二区三区精品在线| 日韩国产高清影视| 国产在线一区二区综合免费视频| 成人毛片老司机大片| 91黄色免费版| 日韩亚洲欧美综合| 国产精品久久久久久久久搜平片 | 自拍偷拍国产亚洲| 天堂va蜜桃一区二区三区 | 欧美亚洲动漫另类| 日韩一区二区在线播放| 国产欧美日韩另类一区| 洋洋av久久久久久久一区| 麻豆视频观看网址久久| 成人国产精品免费观看动漫| 欧美精品一二三| 国产精品色哟哟网站| 天堂va蜜桃一区二区三区| 成人免费视频网站在线观看| 欧美亚洲尤物久久| 久久一留热品黄| 亚洲18色成人| 99国产精品久久久久久久久久久 | 国产精品欧美极品| 日韩国产在线一| 成人激情黄色小说| 日韩欧美一级二级| 伊人一区二区三区| 成人午夜又粗又硬又大| 欧美成人女星排名| 午夜视黄欧洲亚洲| 色综合天天狠狠| 久久综合久久综合久久综合| 午夜久久电影网| jizz一区二区| 久久精品亚洲一区二区三区浴池| 亚洲va天堂va国产va久| www.av精品| 日本一区二区三区视频视频| 日本欧美一区二区三区乱码| 欧美在线你懂的| 国产清纯在线一区二区www| 午夜国产精品一区| 色婷婷精品大视频在线蜜桃视频| 欧美激情一区在线观看| 国内精品国产三级国产a久久| 欧美人妖巨大在线| 亚洲免费av高清| 91丨porny丨蝌蚪视频| 国产精品伦理一区二区| 国产伦精品一区二区三区在线观看 | 色婷婷综合久久久中文字幕| 中文av一区二区| 成人aa视频在线观看| 欧美国产丝袜视频| 国产激情偷乱视频一区二区三区| 这里只有精品视频在线观看| 亚洲高清三级视频| 欧美日韩国产bt| 亚洲h在线观看| 91精品国产色综合久久久蜜香臀| 亚洲超碰97人人做人人爱| 欧美性淫爽ww久久久久无| 亚洲国产中文字幕| 欧美日韩精品专区| 欧美aaaaaa午夜精品|