tstrutils2.pp 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. program tstrutils2;
  2. // tests MBCS compatibility of strutils ansistartstext and -endstext.
  3. // (case-insensitive)
  4. {$mode objfpc}
  5. {$h+}
  6. uses
  7. StrUtils,
  8. {$ifdef unix}
  9. cwstring
  10. {$endif unix}
  11. ;
  12. var
  13. ResultCounter: Integer = 0;
  14. function TestValue(const Value: Boolean): Boolean;
  15. begin
  16. Result := Value;
  17. if not Value then
  18. WriteLn('Failed: ', ResultCounter);
  19. Inc(ResultCounter);
  20. end;
  21. function TestOK: Boolean;
  22. begin
  23. TestOK :=
  24. // AnsiStartsText
  25. not AnsiStartsText('', '')
  26. and not AnsiStartsText('', 'ab')
  27. and not AnsiStartsText('ab', '')
  28. and AnsiStartsText('abc', 'abc')
  29. and not AnsiStartsText('abc', 'def')
  30. and AnsiStartsText('abc', 'abcedfg')
  31. and not AnsiStartsText('abc', 'ab')
  32. and AnsiStartsText('áÉíç', 'áéíÇ')
  33. and AnsiStartsText('áé', 'áÉíç')
  34. and not AnsiStartsText('áÉíç', 'Áé')
  35. and not AnsiStartsText('ÁÉíç', 'áéio')
  36. // AnsiEndsText
  37. and AnsiEndsText('', '')
  38. and AnsiEndsText('', 'ab')
  39. and not AnsiEndsText('ab', '')
  40. and AnsiEndsText('abc', 'abc')
  41. and not AnsiEndsText('abc', 'def')
  42. and AnsiEndsText('dfg', 'abcedfg')
  43. and not AnsiEndsText('dfg', 'df')
  44. and AnsiEndsText('áÉíç', 'Áéíç')
  45. and AnsiEndsText('áé', 'íçáÉ')
  46. and not AnsiEndsText('áÉíç', 'áé')
  47. and not AnsiEndsText('íçÁÉ', 'ioÁé');
  48. end;
  49. begin
  50. if TestOK() then
  51. begin
  52. WriteLn('Test OK');
  53. halt(0);
  54. end
  55. else
  56. begin
  57. WriteLn('Test Failure!');
  58. halt(1);
  59. end;
  60. end.