⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 string-test.c

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 C
📖 第 1 页 / 共 2 页
字号:
  data = string->data;  len = string->len;  for (i = 0; i < repeat; ++i)    {      if (len < ftext_len || memcmp(ftext, data, ftext_len))        return fail(pool, "comparing failed");      data += ftext_len;      len -= ftext_len;    }  if (len < 1 || memcmp(data, "\0", 1))    return fail(pool, "comparing failed");  data += 1;  len -= 1;  for (i = 0; i < repeat; ++i)    {      if (len < ftext_len || memcmp(ftext, data, ftext_len))        return fail(pool, "comparing failed");      data += ftext_len;      len -= ftext_len;    }  if (len)    return fail(pool, "comparing failed");  return SVN_NO_ERROR;}                      static svn_error_t *test12(const char **msg,        svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  svn_stringbuf_t *s;  const char fname[] = "string-test.tmp";  apr_file_t *file;  apr_status_t status;  apr_size_t len;  int i, repeat;  const char ftext[] =    "Just some boring text. Avoiding newlines 'cos I don't know"    "if any of the Subversion platfoms will mangle them! There's no"    "need to test newline handling here anyway, it's not relevant.";  *msg = "create string from file";  if (msg_only)    return SVN_NO_ERROR;  status = apr_file_open(&file, fname, APR_WRITE | APR_TRUNCATE | APR_CREATE,                         APR_OS_DEFAULT, pool);  if (status)    return fail(pool, "opening file");  repeat = 100;  /* Some text */  for (i = 0; i < repeat; ++i)    {      status = apr_file_write_full(file, ftext, sizeof(ftext) - 1, &len);      if (status)        return fail(pool, "writing file");    }  /* A null byte, I don't *think* any of our platforms mangle these */  status = apr_file_write_full(file, "\0", 1, &len);  if (status)    return fail(pool, "writing file");  /* Some more text */  for (i = 0; i < repeat; ++i)    {      status = apr_file_write_full(file, ftext, sizeof(ftext) - 1, &len);      if (status)        return fail(pool, "writing file");    }  status = apr_file_close(file);  if (status)    return fail(pool, "closing file");  SVN_ERR(svn_stringbuf_from_file(&s, fname, pool));  SVN_ERR(check_string_contents(s, ftext, sizeof(ftext) - 1, repeat, pool));  /* Reset to avoid false positives */  s = NULL;  status = apr_file_open(&file, fname, APR_READ, APR_OS_DEFAULT, pool);  if (status)    return fail(pool, "opening file");  SVN_ERR(svn_stringbuf_from_aprfile(&s, file, pool));  SVN_ERR(check_string_contents(s, ftext, sizeof(ftext) - 1, repeat, pool));  status = apr_file_close(file);  if (status)    return fail(pool, "closing file");  return SVN_NO_ERROR;}/* Helper function for checking correctness of find_char_backward */static svn_error_t *test_find_char_backward(const char* data,                        apr_size_t len,                        char ch,                        apr_size_t pos,                        svn_boolean_t msg_only,                        apr_pool_t *pool){  apr_size_t i;  if (msg_only)    return SVN_NO_ERROR;  a = svn_stringbuf_create(data, pool);  i = svn_stringbuf_find_char_backward(a, ch);  if (i == pos)    return SVN_NO_ERROR;  else    return fail(pool, "test failed");}static svn_error_t *test13(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "find_char_backward; middle case";  a = svn_stringbuf_create("test, test", pool);  return    test_find_char_backward(a->data, a->len, ',', 4, msg_only, pool);}static svn_error_t *test14(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "find_char_backward; 0 case";  a = svn_stringbuf_create(",test test", pool);  return    test_find_char_backward(a->data, a->len, ',', 0, msg_only, pool);}static svn_error_t *test15(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "find_char_backward; strlen - 1 case";  a = svn_stringbuf_create("testing,", pool);  return test_find_char_backward(a->data,                                 a->len,                                 ',',                                 a->len - 1,                                 msg_only,                                 pool);}static svn_error_t *test16(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "find_char_backward; len = 0 case";  a = svn_stringbuf_create("", pool);  return    test_find_char_backward(a->data, a->len, ',', 0, msg_only, pool);}static svn_error_t *test17(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "find_char_backward; no occurence case";  a = svn_stringbuf_create("test test test", pool);  return test_find_char_backward(a->data,                                 a->len,                                 ',',                                 a->len,                                 msg_only,                                 pool);}static svn_error_t *test_first_non_whitespace(const char *str,                          const apr_size_t pos,                          svn_boolean_t msg_only,                          apr_pool_t *pool){  apr_size_t i;  if (msg_only)    return SVN_NO_ERROR;  a = svn_stringbuf_create(str, pool);  i = svn_stringbuf_first_non_whitespace(a);  if (i == pos)    return SVN_NO_ERROR;  else    return fail(pool, "test failed");}static svn_error_t *test18(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "check whitespace removal; common case";  return test_first_non_whitespace("   \ttest", 4, msg_only, pool);}static svn_error_t *test19(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "check whitespace removal; no whitespace case";  return test_first_non_whitespace("test", 0, msg_only, pool);}static svn_error_t *test20(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "check whitespace removal; all whitespace case";  return test_first_non_whitespace("   ", 3, msg_only, pool);}static svn_error_t *test21(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "check that whitespace will be stripped correctly";  if (msg_only)    return SVN_NO_ERROR;  a = svn_stringbuf_create("    \ttest\t\t  \t  ", pool);  b = svn_stringbuf_create("test", pool);  svn_stringbuf_strip_whitespace(a);  if (svn_stringbuf_compare(a, b) == TRUE)    return SVN_NO_ERROR;  else    return fail(pool, "test failed");}static svn_error_t *test_stringbuf_unequal(const char* str1,                       const char* str2,                       svn_boolean_t msg_only,                       apr_pool_t *pool){  if (msg_only)    return SVN_NO_ERROR;  a = svn_stringbuf_create(str1, pool);  b = svn_stringbuf_create(str2, pool);  if (svn_stringbuf_compare(a, b))    return fail(pool, "test failed");  else    return SVN_NO_ERROR;}static svn_error_t *test22(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "compare stringbufs; different lengths";  return test_stringbuf_unequal("abc", "abcd", msg_only, pool);}static svn_error_t *test23(const char **msg,       svn_boolean_t msg_only,       svn_test_opts_t *opts,       apr_pool_t *pool){  *msg = "compare stringbufs; same length, different content";  return test_stringbuf_unequal("abc", "abb", msg_only, pool);}/*   ====================================================================   If you add a new test to this file, update this array.   (These globals are required by our included main())*//* An array of all test functions */struct svn_test_descriptor_t test_funcs[] =  {    SVN_TEST_NULL,    SVN_TEST_PASS(test1),    SVN_TEST_PASS(test2),    SVN_TEST_PASS(test3),    SVN_TEST_PASS(test4),    SVN_TEST_PASS(test5),    SVN_TEST_PASS(test6),    SVN_TEST_PASS(test7),    SVN_TEST_PASS(test8),    SVN_TEST_PASS(test9),    SVN_TEST_PASS(test10),    SVN_TEST_PASS(test11),    SVN_TEST_PASS(test12),    SVN_TEST_PASS(test13),    SVN_TEST_PASS(test14),    SVN_TEST_PASS(test15),    SVN_TEST_PASS(test16),    SVN_TEST_PASS(test17),    SVN_TEST_PASS(test18),    SVN_TEST_PASS(test19),    SVN_TEST_PASS(test20),    SVN_TEST_PASS(test21),    SVN_TEST_PASS(test22),    SVN_TEST_PASS(test23),    SVN_TEST_NULL  };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -