tstring.in
上传用户:zhongxx05
上传日期:2007-06-06
资源大小:33641k
文件大小:15k
源码类别:

Symbian

开发平台:

C/C++

  1. # CHXString() <stringID>
  2. # CHXString(CHXString) <stringID> <stringID>
  3. # CHXString(char,int) <stringID> <character> <size>
  4. # CHXString(char*) <stringID> <string>
  5. # CHXString(char*,int) <stringID> <string> <size>
  6. # CHXString(uchar*) <stringID> <string>
  7. # GetLength <stringID> <expected length>
  8. # IsEmpty <stringID> <0 = not empty, 1 = is empty>
  9. # Empty <stringID>
  10. # (char*) <stringID> <expected string>
  11. # GetAt <stringID> <index> <expected char return>
  12. # SetAt <stringID> <index> <char>
  13. # [] <stringID> <index> <expected char return>
  14. # =CHXString <stringID> <from string: <stringID>>
  15. # =char <stringID> <from char>
  16. # =char* <stringID> <from string>
  17. # =uchar* <stringID> <from string>
  18. # +=CHXString <stringID> <from string: <stringID>>
  19. # +=char <stringID> <from char>
  20. # +=char* <stringID> <from string>
  21. # CHXString+CHXString <stringID> <stringID> <expected string>
  22. # CHXString+char <stringID> <char> <expected string>
  23. # char+CHXString <char> <stringID> <expected string>
  24. # CHXString+char* <stringID> <string> <expected string>
  25. # char*+CHXString <string> <stringID> <expected string>
  26. # Center <stringID> <length>
  27. # Compare <stringID> <string> <expected value or "+" for any pos num, "-" for any neg num>
  28. # CompareNoCase <stringID> <string> <expected value or "+" for any pos num, "-" for any neg num>
  29. # Mid <stringID> <index> <length> <expected string>
  30. # Mid <stringID> <index> <expected string>
  31. # Left <stringID> <length> <expected string>
  32. # Right <stringID> <length> <expected string>
  33. # CountFields <stringID> <delimeter char> <expected value>
  34. # NthField <stringID> <delimeter char> <field index> <expected string>
  35. # GetNthField <stringID> <delimeter char> <field index> <expected string>
  36. # SpanIncluding <stringID> <string> <expected string>
  37. # SpanExcluding <stringID> <string> <expected string>
  38. # MakeUpper <stringID>
  39. # MakeLower <stringID>
  40. # TrimRight <stringID>
  41. # TrimLeft <stringID>
  42. # FindChar <stringID> <char> <expected value>
  43. # FindChar* <stringID> <string> <expected value>
  44. # ReverseFind <stringID> <char> <expected value>
  45. # FindAndReplace <stringID> <search string> <repl string> <repl all bool> <expected value>
  46. # AppendULONG <stringID> <ULONG value>
  47. # AppendEndOfLine <stringID>
  48. # FreeExtra <stringID>
  49. # GetAllocLength <stringID> <expected value>
  50. # GetAllocLength <stringID> <min expected value> <max expected value> 
  51. # SetMinBufSize <stringID> <new value> <expected return value>
  52. # The GetBuffer() functions get a char* ptr to the string's buffer.  The
  53. # ReleaseBuffer() functions tell the string that the buffer is done being
  54. # messed with and our char* ptr is reset to NULL.  The Buffer* command
  55. # manipulate the char* ptr that was gotten from the specified stringID.
  56. #
  57. # GetBuffer     <stringID> <length> [<expected value>]
  58. # GetBufferSetLength <stringID> <length> <expected value>
  59. # BufferSet     <stringID> [<index>] <string>
  60. # BufferFill    <stringID> [<index>] <string> <repeat count>
  61. # BufferEndString <stringID> <index>
  62. # ReleaseBuffer <stringID>
  63. # ReleaseBuffer <stringID> <length>
  64. #
  65. # FormatInt <stringID> <format> <data1> [... <data10>]
  66. # FormatLong <stringID> <format> <data1> [... <data10>]
  67. # FormatUInt <stringID> <format> <data1> [... <data10>]
  68. # FormatULong <stringID> <format> <data1> [... <data10>]
  69. # FormatChar* <stringID> <format> <data1> [... <data10>]
  70. # FormatChar <stringID> <format> <data1> [... <data10>]
  71. # FormatDouble <stringID> <format> <data1> [... <data10>]
  72. #
  73. # FormatMixed does a mixture of miscellaneous combinations of formattings
  74. # and verifies the results in C++ code.
  75. #
  76. # FormatMixed
  77. CHXString() A
  78. GetLength A 0
  79. IsEmpty A 1
  80. (char*) A ""
  81. CHXString(char,int) A  10
  82. GetLength A 0
  83. IsEmpty A 1
  84. (char*) A ""
  85. CHXString(char,int) A Z 1
  86. GetLength A 1
  87. IsEmpty A 0
  88. (char*) A "Z"
  89. CHXString(char,int) B Y 10
  90. GetLength B 10
  91. IsEmpty B 0
  92. (char*) B "YYYYYYYYYY"
  93. CHXString(CHXString) A B
  94. GetLength A 10
  95. IsEmpty A 0
  96. (char*) A "YYYYYYYYYY"
  97. GetLength B 10
  98. IsEmpty B 0
  99. (char*) B "YYYYYYYYYY"
  100. CHXString(char*) A blah
  101. GetLength A 4
  102. IsEmpty A 0
  103. (char*) A blah
  104. CHXString(char*,int) A "this is a test" 6
  105. GetLength A 6
  106. (char*) A "this i"
  107. CHXString(uchar*) A foo
  108. GetLength A 3
  109. (char*) A foo
  110. CHXString(char*) A foobar
  111. GetAt A 0 f
  112. SetAt A 1 0
  113. SetAt A 2 0
  114. (char*) A f00bar
  115. [] A 0 f
  116. [] A 1 0
  117. # Causes assertions in CHXString:
  118. # GetAt A 8 ""
  119. # SetAt A 3 ""
  120. CHXString(char*) B blah
  121. (char*) B blah
  122. GetLength B 4
  123. =CHXString B A
  124. (char*) B f00bar
  125. GetLength B 6
  126. GetLength A 6
  127. =char A ""
  128. GetLength A 0
  129. (char*) A ""
  130. GetLength A 0
  131. =char A z
  132. GetLength A 1
  133. (char*) A z
  134. GetLength B 6
  135. =char* B xyzzy
  136. GetLength B 5
  137. (char*) B xyzzy
  138. =uchar* A uuuu
  139. (char*) A uuuu
  140. +=CHXString A B
  141. (char*) A uuuuxyzzy
  142. +=char B X
  143. (char*) B xyzzyX
  144. +=char B ""
  145. (char*) B xyzzyX
  146. +=char* B zzz
  147. (char*) B xyzzyXzzz
  148. CHXString+CHXString A A uuuuxyzzyuuuuxyzzy
  149. CHXString+char A 7 uuuuxyzzy7
  150. char+CHXString = A =uuuuxyzzy
  151. CHXString+char* A 666 uuuuxyzzy666
  152. char*+CHXString ==> A ==>uuuuxyzzy
  153. CHXString(char*) A 6chars
  154. Center A 12
  155. (char*) A "   6chars"
  156. Center A 13
  157. (char*) A "   6chars"
  158. Center A 14
  159. (char*) A "    6chars"
  160. Center A 1
  161. (char*) A 6chars
  162. Mid A 0 6chars
  163. Mid A 2 hars
  164. Mid A 2 2 ha
  165. Mid A 2 99 hars
  166. Mid A 2 0 ""
  167. Mid A 6 ""
  168. #assertion: Mid A -1 ""
  169. Left A 10 6chars
  170. Left A 1 6
  171. Left A 3 6ch
  172. Left A 0 ""
  173. #assertion: Left A -1 ""
  174. Right A 10 6chars
  175. Right A 1 s
  176. Right A 3 ars
  177. Right A 0 ""
  178. #assertion: Right A -1 ""
  179. Compare A 6chars 0
  180. Compare A 7chars -
  181. Compare A 5chars +
  182. Compare A 6Chars +
  183. CompareNoCase A 6Chars 0
  184. Compare A 6CHARS +
  185. CompareNoCase A 6CHARS 0
  186. CHXString(char*) B "a,b,c|d,e,f|g,h,i"
  187. CountFields B , 7
  188. CountFields B | 3
  189. NthField    B | 0 "a,b,c"
  190. NthField    B | 1 "a,b,c"
  191. NthField    B | -1 ""
  192. NthField    B | -999 ""
  193. NthField    B | 2 "d,e,f"
  194. NthField    B | 99 ""
  195. GetNthField B | 1 "a,b,c"
  196. GetNthField B | 2 "d,e,f"
  197. GetNthField B | 99 ""
  198. NthField    B "," 2 "b"
  199. NthField    B "," 1 "a"
  200. NthField    B "," 3 "c|d"
  201. NthField    B "," 99 ""
  202. GetNthField B "," 1 "a"
  203. GetNthField B "," 2 "b"
  204. GetNthField B "," 3 "c|d"
  205. GetNthField B "," 5 "f|g"
  206. GetNthField B "," 99 ""
  207. SpanIncluding B ",abc" "a,b,c"
  208. SpanExcluding B ","    a
  209. MakeUpper B
  210. (char*) B "A,B,C|D,E,F|G,H,I"
  211. MakeLower B
  212. (char*) B "a,b,c|d,e,f|g,h,i"
  213. TrimRight B
  214. (char*) B "a,b,c|d,e,f|g,h,i"
  215. +=char* B " X  "
  216. (char*) B "a,b,c|d,e,f|g,h,i X  "
  217. TrimRight B
  218. (char*) B "a,b,c|d,e,f|g,h,i X"
  219. CHXString(char*) A "     a  b   "
  220. TrimLeft  A
  221. (char*)   A "a  b   "
  222. TrimRight A
  223. (char*)   A "a  b"
  224. TrimLeft  A
  225. (char*)   A "a  b"
  226. AppendULONG A 10101
  227. (char*)   A "a  b10101"
  228. # NOTE: This will add different character sequence depending on platform,
  229. #       so reset string to known value after this. (the C++ code verifies
  230. #       that the proper platform-specific sequence is at the end)
  231. AppendEndOfLine A
  232. # Test GetBuffer(), ReleaseBuffer(), GetBufferSetLength(), and SetMinBufSize()
  233. #  functionallity
  234. # Test the case where we call GetBuffer() w/ the string size
  235. CHXString(char*) A "testing"
  236. GetAllocLength  A 7
  237. GetBuffer       A 7 "testing"
  238. GetAllocLength  A 7
  239. ReleaseBuffer   A
  240. GetAllocLength  A 7
  241. #  Test the case where we call GetBuffer() w/ less than the string size
  242. CHXString(char*) A "testing"
  243. GetAllocLength  A 7
  244. GetBuffer       A 4 "testing"
  245. GetAllocLength  A 7
  246. ReleaseBuffer   A
  247. GetAllocLength  A 7
  248. #  Test the case where we call GetBuffer() w/ greater than the string size
  249. CHXString(char*) A "testing"
  250. GetAllocLength  A 7
  251. GetBuffer       A 20 "testing"
  252. GetAllocLength  A 7
  253. ReleaseBuffer   A
  254. GetAllocLength  A 7
  255. #  Test the case where we shorten the string
  256. CHXString(char*) A "testing"
  257. GetAllocLength  A 7
  258. GetBuffer       A 7 "testing"
  259. GetAllocLength  A 7
  260. BufferEndString  A 4
  261. GetAllocLength  A 7
  262. ReleaseBuffer   A
  263. GetAllocLength  A 4
  264. (char*) A "test"
  265. #  Test the case where we lengthen the string
  266. CHXString(char*) A "testing"
  267. GetAllocLength  A 7
  268. GetBuffer       A 20 "testing"
  269. GetAllocLength  A 7
  270. BufferFill       A 7 " something" 1
  271. BufferEndString  A 17
  272. GetAllocLength  A 7
  273. ReleaseBuffer   A
  274. GetAllocLength  A 17
  275. (char*) A "testing something"
  276. # Test making the string empty
  277. CHXString(char*) A "testing"
  278. GetAllocLength  A 7
  279. GetBuffer       A 20 "testing"
  280. GetAllocLength  A 7
  281. BufferEndString A 0
  282. GetAllocLength  A 7
  283. ReleaseBuffer   A
  284. GetAllocLength  A 0
  285. # Test calling Release() with the string size
  286. CHXString(char*) A "testing"
  287. GetAllocLength  A 7
  288. GetBuffer       A 7 "testing"
  289. ReleaseBuffer   A 7
  290. GetAllocLength  A 7
  291. (char*)         A "testing"
  292. # Test calling Release() with a smaller size
  293. CHXString(char*) A "testing"
  294. GetAllocLength  A 7
  295. GetBuffer       A 7 "testing"
  296. ReleaseBuffer   A 4
  297. GetAllocLength  A 4
  298. (char*)         A "test"
  299. # Test to make sure GetBuffer() does not
  300. # operate on a shared copy
  301. CHXString(char*)   A "test123"
  302. CHXString(CHXString) B A
  303. (char*)            A "test123"
  304. (char*)            B "test123"
  305. GetBuffer          A 10 "test123"
  306. BufferSet          A 7 "456"
  307. BufferEndString    A 10
  308. (char*)            A "test123456"
  309. (char*)            B "test123"
  310. # Test to make sure GetBufferSetLength() null terminates the buffer
  311. Empty A
  312. GetBufferSetLength A 5 ""
  313. GetAllocLength     A 5
  314. BufferSet          A "01234"
  315. ReleaseBuffer      A
  316. GetAllocLength     A 5
  317. (char*)            A "01234"
  318. # Test to make sure GetBufferSetLength() null terminates the buffer
  319. Empty A
  320. GetBufferSetLength A 5 ""
  321. GetAllocLength     A 5
  322. BufferSet          A 0 "012"
  323. BufferSet          A 3 "56"
  324. ReleaseBuffer      A
  325. GetAllocLength     A 5
  326. (char*)            A "01256"
  327. # Test calling GetBufferSetLength() with a larger string size
  328. CHXString()        A
  329. GetAllocLength     A 0
  330. GetBufferSetLength A 10 ""
  331. GetAllocLength     A 10
  332. ReleaseBuffer      A
  333. GetAllocLength     A 0
  334. (char*)            A ""
  335. # Test calling GetBufferSetLength() with a larger string size
  336. CHXString(char*)   A "test"
  337. GetAllocLength     A 4
  338. GetBufferSetLength A 10 "test"
  339. GetAllocLength     A 10
  340. ReleaseBuffer      A
  341. GetAllocLength     A 4
  342. (char*)            A "test"
  343. # Test calling GetBufferSetLength() with a string size
  344. CHXString(char*)   A "testing"
  345. GetAllocLength     A 7
  346. GetBufferSetLength A 7 "testing"
  347. GetAllocLength     A 7
  348. ReleaseBuffer      A
  349. GetAllocLength     A 7
  350. (char*)            A "testing"
  351. # Test calling GetBufferSetLength() with a smaller size
  352. CHXString(char*)   A "testing"
  353. GetAllocLength     A 7
  354. GetBufferSetLength A 4 "test"
  355. GetAllocLength     A 4
  356. ReleaseBuffer      A
  357. GetAllocLength     A 4
  358. (char*)            A "test"
  359. # Test calling GetBufferSetLength() with 0
  360. CHXString(char*)   A "testing"
  361. GetAllocLength     A 7
  362. GetBufferSetLength A 0 ""
  363. GetAllocLength     A 0
  364. ReleaseBuffer      A
  365. GetAllocLength     A 0
  366. (char*)            A ""
  367. # Test to make sure GetBufferSetLength() does not
  368. # operate on a shared copy
  369. CHXString(char*)   A "test123"
  370. CHXString(CHXString) B A
  371. (char*)            A "test123"
  372. (char*)            B "test123"
  373. GetBufferSetLength A 10 "test123"
  374. BufferSet          A 7 "456"
  375. (char*)            A "test123456"
  376. (char*)            B "test123"
  377. # Test calling SetMinBufSize() with string size
  378. CHXString(char*)   A "testing"
  379. GetAllocLength     A 7
  380. SetMinBufSize      A 7 7
  381. GetAllocLength     A 7
  382. (char*)            A "testing"
  383. # Test calling SetMinBufSize() with smaller size
  384. CHXString(char*)   A "testing"
  385. GetAllocLength     A 7
  386. SetMinBufSize      A 4 7
  387. GetAllocLength     A 7
  388. (char*)            A "testing"
  389. # Test calling SetMinBufSize() with larger size
  390. CHXString(char*)   A "testing"
  391. GetAllocLength     A 7
  392. SetMinBufSize      A 20 20
  393. GetAllocLength     A 7
  394. (char*)            A "testing"
  395. Empty A
  396. SetMinBufSize    A 10 10
  397. GetAllocLength   A 0
  398. SetMinBufSize    A 5  5
  399. GetAllocLength   A 0
  400. SetMinBufSize    A 0  0
  401. GetAllocLength   A 0
  402. GetLength A 0
  403. =char*           A a
  404. GetAllocLength   A 1
  405. +=char*          A "x   "
  406. (char*)          A "ax   "
  407. GetAllocLength   A 5
  408. TrimRight        A
  409. GetAllocLength   A 2
  410. GetBuffer        A 30
  411. BufferFill       A 0 " " 29
  412. BufferEndString  A 29
  413. ReleaseBuffer    A
  414. (char*)          A "                             "
  415. TrimRight        A
  416. (char*)          A ""
  417. GetBuffer        A 30
  418. BufferSet        A "abc"
  419. BufferFill       A 3 eieio 5
  420. BufferEndString  A 28
  421. ReleaseBuffer    A
  422. GetLength        A 28
  423. GetBuffer        A 20
  424. ReleaseBuffer    A 20
  425. GetLength        A 20
  426. (char*)          A abceieioeieioeieioei
  427. GetBuffer        A 27
  428. BufferSet        A "abcdefghijklmnopqrstuvwxyz"
  429. ReleaseBuffer    A 6
  430. GetLength        A 6
  431. (char*)          A abcdef
  432. GetBuffer        A 20
  433. BufferEndString  A 0
  434. ReleaseBuffer    A
  435. (char*)          A ""
  436. GetAllocLength   A 0
  437. GetBuffer        A 20
  438. BufferSet        A abcdef
  439. ReleaseBuffer    A 0
  440. (char*)          A ""
  441. GetAllocLength   A 0
  442. GetBuffer        A 20
  443. BufferSet        A abcdef
  444. ReleaseBuffer    A 1
  445. (char*)          A "a"
  446. GetAllocLength   A 1
  447. FormatInt        A "%05d,%05d" 1 2
  448. (char*)          A "00001,00002"
  449. FormatInt        A "%02d" 0
  450. (char*)          A "00"
  451. FormatInt        A "%02x" 10
  452. (char*)          A "0a"
  453. FormatInt        A "%02d,%d" 0 0
  454. (char*)          A "00,0"
  455. FormatInt        A "%02d,%05d" 0 -200
  456. (char*)          A "00,-0200"
  457. FormatLong       B "%ld,%10lx,%1ld" 1 10 100
  458. (char*)          B "1,         a,100"
  459. FormatUInt       A "%5.1u" 123 -2000000000
  460. (char*)          A "  123"
  461. FormatUInt       A "%5.1u,%u" 123 2000000000
  462. (char*)          A "  123,2000000000"
  463. FormatULong      A "%06lu" 123
  464. (char*)          A 000123
  465. # NOTE: %d expected value assumes ASCII 'a'...
  466. FormatChar       A "%d,%c" a a
  467. (char*)          A "97,a"
  468. # NOTE: I'm not sure how much leeway the '%g' format has, so the expected
  469. #       output may actually be different...
  470. FormatDouble     B "%g" 1.234567890123456789
  471. (char*)          B "1.2346" "1.23457" "1.234568" "1.2345679" "1.23456789012346"
  472. FormatDouble     B "%5.2f" 1.23456789
  473. (char*)          B " 1.23"
  474. FormatDouble     B "%5.2e" 123456789
  475. (char*)          B "1.23e+08" "1.23e+008" "1.23E+08"
  476. FormatDouble     B "%5.2E" 123456789
  477. (char*)          B "1.23E+08" "1.23E+008" 
  478. FormatDouble     B "%.5E" 123456789e+10
  479. (char*)          B "1.23457E+18" "1.23457E+018"
  480. FormatPtr        B "%p" 0x08010203
  481. (char*)          B "8010203" "08010203" "0x8010203" "0x08010203"
  482. FormatPtr        B "%p" 0x0
  483. (char*)          B "(nil)" "00000000" "0x00000000" "0x0"
  484. FormatULong A "%lu %lu" 150000 350000
  485. FormatULong A  "#($Bandwidth >= %lu) && ($Bandwidth < %lu)" 150000 350000
  486. FormatMixed
  487. CHXString(char*) A "c:\foo\bar\foobar"
  488. FindAndReplace A "\" "/" 1 1
  489. (char*) A "c:/foo/bar/foobar"