tfillchr.pp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. const
  2. err: boolean = false;
  3. var
  4. a: array[0..512] of byte;
  5. procedure test_fillchar;
  6. var
  7. i, j: longint;
  8. k: byte;
  9. l: longint;
  10. begin
  11. for i := 0 to 512 do
  12. begin
  13. a[i] := 255;
  14. end;
  15. { lengths }
  16. for i := 0 to 256 do
  17. { alignments }
  18. for j := 0 to 31 do
  19. { values }
  20. for k := 0 to 1 do
  21. begin
  22. fillchar(a[j+4],i,k);
  23. { check whether we didn't write a byte too early }
  24. for l := 0 to j+3 do
  25. begin
  26. if a[l] <> 255 then
  27. begin
  28. writeln('Fillchar test error 1');
  29. err := true;
  30. halt(1);
  31. end;
  32. a[l] := 255;
  33. end;
  34. { check whether the actual values were written correctly }
  35. for l := j+4 to j+i+3 do
  36. begin
  37. if a[l] <> k then
  38. begin
  39. writeln('Fillchar test error 2');
  40. err := true;
  41. halt(1);
  42. end;
  43. a[l] := 255;
  44. end;
  45. { check whether we didn't write past the end }
  46. for l := j+i+4 to 512 do
  47. begin
  48. if a[l] <> 255 then
  49. begin
  50. writeln('Fillchar test error 3');
  51. err := true;
  52. halt(1);
  53. end;
  54. a[l] := 255;
  55. end;
  56. end;
  57. end;
  58. begin
  59. test_fillchar;
  60. if err then
  61. halt(1);
  62. end.