/test/language/unclassified/test_object_size4.e

http://github.com/tybor/Liberty · Specman e · 61 lines · 32 code · 5 blank · 24 comment · 1 complexity · 1c4bcfe16cd2bceebaba2520b674af96 MD5 · raw file

  1. -- This file is part of SmartEiffel The GNU Eiffel Compiler Tools and Libraries.
  2. -- See the Copyright notice at the end of this file.
  3. --
  4. class TEST_OBJECT_SIZE4
  5. create {}
  6. make
  7. feature {ANY}
  8. make
  9. local
  10. s, s2: INTEGER; str: STRING; a: ARRAY[STRING]
  11. do
  12. s := 1.object_size
  13. s := s * 3 -- Object ID + count + capacity
  14. str := "bar"
  15. s := s + str.to_pointer.object_size
  16. s2 := str.object_size
  17. assert(("foo").object_size >= s - 1.object_size)
  18. -- *
  19. -- Because alignment for 64 bit machines.
  20. s := s + 1.object_size
  21. a := {ARRAY[STRING] 1, << "foo" >> }
  22. s2 := a.object_size
  23. assert({ARRAY[STRING] 1, << "foo" >> }.object_size > 0)
  24. end
  25. feature {}
  26. assert (b: BOOLEAN)
  27. do
  28. cpt := cpt + 1
  29. if not b then
  30. std_output.put_string("TEST_OBJECT_SIZE4: ERROR Test # ")
  31. std_output.put_integer(cpt)
  32. std_output.put_string("%N")
  33. else
  34. -- std_output.put_string("Yes%N");
  35. end
  36. end
  37. cpt: INTEGER
  38. end -- class TEST_OBJECT_SIZE4
  39. --
  40. -- ------------------------------------------------------------------------------------------------------------------------------
  41. -- Copyright notice below. Please read.
  42. --
  43. -- SmartEiffel is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License,
  44. -- as published by the Free Software Foundation; either version 2, or (at your option) any later version.
  45. -- SmartEiffel is distributed in the hope that it will be useful but WITHOUT ANY WARRANTY; without even the implied warranty
  46. -- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have
  47. -- received a copy of the GNU General Public License along with SmartEiffel; see the file COPYING. If not, write to the Free
  48. -- Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
  49. --
  50. -- Copyright(C) 1994-2002: INRIA - LORIA (INRIA Lorraine) - ESIAL U.H.P. - University of Nancy 1 - FRANCE
  51. -- Copyright(C) 2003-2006: INRIA - LORIA (INRIA Lorraine) - I.U.T. Charlemagne - University of Nancy 2 - FRANCE
  52. --
  53. -- Authors: Dominique COLNET, Philippe RIBET, Cyril ADRIAN, Vincent CROIZIER, Frederic MERIZEN
  54. --
  55. -- http://SmartEiffel.loria.fr - SmartEiffel@loria.fr
  56. -- ------------------------------------------------------------------------------------------------------------------------------