/core/alien/alien-tests.factor

http://github.com/abeaumont/factor · Factor · 87 lines · 60 code · 26 blank · 1 comment · 6 complexity · 4f25bb333b9e15a2fa96260ba459a5f7 MD5 · raw file

  1. USING: accessors alien alien.accessors alien.syntax byte-arrays arrays
  2. kernel kernel.private namespaces tools.test sequences libc math
  3. system prettyprint layouts alien.libraries sets ;
  4. FROM: namespaces => set ;
  5. IN: alien.tests
  6. [ t ] [ -1 <alien> alien-address 0 > ] unit-test
  7. [ t ] [ 0 <alien> 0 <alien> = ] unit-test
  8. [ f ] [ 0 <alien> 1024 <alien> = ] unit-test
  9. [ f ] [ "hello" 1024 <alien> = ] unit-test
  10. [ f ] [ 0 <alien> ] unit-test
  11. [ f ] [ 0 f <displaced-alien> ] unit-test
  12. ! Testing the various bignum accessor
  13. 10 <byte-array> "dump" set
  14. [ "dump" get alien-address ] must-fail
  15. [ 123 ] [
  16. 123 "dump" get 0 set-alien-signed-1
  17. "dump" get 0 alien-signed-1
  18. ] unit-test
  19. [ 12345 ] [
  20. 12345 "dump" get 0 set-alien-signed-2
  21. "dump" get 0 alien-signed-2
  22. ] unit-test
  23. [ 12345678 ] [
  24. 12345678 "dump" get 0 set-alien-signed-4
  25. "dump" get 0 alien-signed-4
  26. ] unit-test
  27. [ 12345678901234567 ] [
  28. 12345678901234567 "dump" get 0 set-alien-signed-8
  29. "dump" get 0 alien-signed-8
  30. ] unit-test
  31. [ -1 ] [
  32. -1 "dump" get 0 set-alien-signed-8
  33. "dump" get 0 alien-signed-8
  34. ] unit-test
  35. cell 8 = [
  36. [ 0x123412341234 ] [
  37. 8 <byte-array>
  38. 0x123412341234 over 0 set-alien-signed-8
  39. 0 alien-signed-8
  40. ] unit-test
  41. [ 0x123412341234 ] [
  42. 8 <byte-array>
  43. 0x123412341234 over 0 set-alien-signed-cell
  44. 0 alien-signed-cell
  45. ] unit-test
  46. ] when
  47. [ "ALIEN: 1234" ] [ 0x1234 <alien> unparse ] unit-test
  48. [ ] [ 0 B{ 1 2 3 } <displaced-alien> drop ] unit-test
  49. [ 0 B{ 1 2 3 } <displaced-alien> alien-address ] must-fail
  50. [ 1 1 <displaced-alien> ] must-fail
  51. [ f ] [ 1 B{ 1 2 3 } <displaced-alien> pinned-c-ptr? ] unit-test
  52. [ f ] [ 2 B{ 1 2 3 } <displaced-alien> 1 swap <displaced-alien> pinned-c-ptr? ] unit-test
  53. [ t ] [ 0 B{ 1 2 3 } <displaced-alien> 1 swap <displaced-alien> underlying>> byte-array? ] unit-test
  54. [ "( displaced alien )" ] [ 1 B{ 1 2 3 } <displaced-alien> unparse ] unit-test
  55. SYMBOL: initialize-test
  56. f initialize-test set-global
  57. [ 31337 ] [ initialize-test [ 31337 ] initialize-alien ] unit-test
  58. [ 31337 ] [ initialize-test [ 69 ] initialize-alien ] unit-test
  59. [ ] [ initialize-test get BAD-ALIEN >>alien drop ] unit-test
  60. [ 7575 ] [ initialize-test [ 7575 ] initialize-alien ] unit-test
  61. [ { BAD-ALIEN } ] [ { BAD-ALIEN BAD-ALIEN BAD-ALIEN } members ] unit-test