PageRenderTime 48ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/trunk/Examples/test-suite/java/smart_pointer_const_overload_runme.java

#
Java | 99 lines | 56 code | 28 blank | 15 comment | 26 complexity | d0d56abdc1eb1a4c509925133aa6f8ac MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
  1. import smart_pointer_const_overload.*;
  2. public class smart_pointer_const_overload_runme {
  3. static int CONST_ACCESS = 1;
  4. static int MUTABLE_ACCESS = 2;
  5. static {
  6. System.loadLibrary("smart_pointer_const_overload");
  7. }
  8. public static void test(Bar b, Foo f) {
  9. Assert(f.getX() == 0);
  10. // Test member variable get
  11. Assert(b.getX() == 0);
  12. Assert(f.getAccess() == CONST_ACCESS);
  13. // Test member variable set
  14. b.setX(1);
  15. Assert(f.getX() == 1);
  16. Assert(f.getAccess() == MUTABLE_ACCESS);
  17. // Test const method
  18. Assert(b.getx() == 1);
  19. Assert(f.getAccess() == CONST_ACCESS);
  20. // Test mutable method
  21. b.setx(2);
  22. Assert(f.getX() == 2);
  23. Assert(f.getAccess() == MUTABLE_ACCESS);
  24. // Test extended const method
  25. Assert(b.getx2() == 2);
  26. Assert(f.getAccess() == CONST_ACCESS);
  27. // Test extended mutable method
  28. b.setx2(3);
  29. Assert(f.getX() == 3);
  30. Assert(f.getAccess() == MUTABLE_ACCESS);
  31. // Test static method
  32. b.stat();
  33. Assert(f.getAccess() == CONST_ACCESS);
  34. // Test const member
  35. f.setAccess(MUTABLE_ACCESS);
  36. Assert(b.getY() == 0);
  37. Assert(f.getAccess() == CONST_ACCESS);
  38. // Test get through mutable pointer to const member
  39. f.setAccess(MUTABLE_ACCESS);
  40. Assert(smart_pointer_const_overload.get_int(b.getYp()) == 0);
  41. Assert(f.getAccess() == CONST_ACCESS);
  42. // Test get through const pointer to mutable member
  43. f.setX(4);
  44. f.setAccess(MUTABLE_ACCESS);
  45. Assert(smart_pointer_const_overload.get_int(b.getXp()) == 4);
  46. Assert(f.getAccess() == CONST_ACCESS);
  47. // Test set through const pointer to mutable member
  48. f.setAccess(MUTABLE_ACCESS);
  49. smart_pointer_const_overload.set_int(b.getXp(), 5);
  50. Assert(f.getX() == 5);
  51. Assert(f.getAccess() == CONST_ACCESS);
  52. // Test set pointer to const member
  53. b.setYp(smart_pointer_const_overload.new_int(6));
  54. Assert(f.getY() == 0);
  55. Assert(smart_pointer_const_overload.get_int(f.getYp()) == 6);
  56. Assert(f.getAccess() == MUTABLE_ACCESS);
  57. smart_pointer_const_overload.delete_int(f.getYp());
  58. }
  59. public static void main(String argv[]) {
  60. Foo f = new Foo();
  61. Bar b = new Bar(f);
  62. //Foo f2 = new Foo();
  63. //Bar b2 = new Bar2(f2);
  64. test(b, f);
  65. //test(b2, f2);
  66. }
  67. public static void Assert(boolean b) {
  68. if (!b)
  69. throw new RuntimeException("Assertion failed");
  70. }
  71. }