/extra/llvm/types/types-tests.factor

http://github.com/abeaumont/factor · Factor · 40 lines · 32 code · 6 blank · 2 comment · 0 complexity · 989f99bc700c5f9ac3aa5f01b73ccdb0 MD5 · raw file

  1. ! Copyright (C) 2009 Matthew Willis.
  2. ! See http://factorcode.org/license.txt for BSD license.
  3. USING: kernel llvm.types sequences tools.test ;
  4. [ T{ integer f 32 } ] [ " i32 " parse-type ] unit-test
  5. [ float ] [ " float " parse-type ] unit-test
  6. [ T{ pointer f f x86_fp80 } ] [ " x86_fp80 * " parse-type ] unit-test
  7. [ T{ vector f f 4 T{ integer f 32 } } ] [ " < 4 x i32 > " parse-type ] unit-test
  8. [ T{ struct f f { float double } f } ] [ TYPE: { float , double } ; ] unit-test
  9. [ T{ array f f 0 float } ] [ TYPE: [ 0 x float ] ; ] unit-test
  10. [ label void metadata ]
  11. [ [ " label " " void " " metadata " ] [ parse-type ] each ] unit-test
  12. [ T{ function f f float { float float } t } ]
  13. [ TYPE: float ( float , float , ... ) ; ] unit-test
  14. [ T{ struct f f { float TYPE: i32 (i32)* ; } t } ]
  15. [ TYPE: < { float, i32 (i32)* } > ; ] unit-test
  16. [ t ] [ TYPE: i32 ; TYPE: i32 ; [ >tref ] same? ] unit-test
  17. [ t ] [ TYPE: i32 * ; TYPE: i32 * ; [ >tref ] same? ] unit-test
  18. [ TYPE: i32 ; ] [ TYPE: i32 ; >tref tref> ] unit-test
  19. [ TYPE: float ; ] [ TYPE: float ; >tref tref> ] unit-test
  20. [ TYPE: double ; ] [ TYPE: double ; >tref tref> ] unit-test
  21. [ TYPE: x86_fp80 ; ] [ TYPE: x86_fp80 ; >tref tref> ] unit-test
  22. [ TYPE: fp128 ; ] [ TYPE: fp128 ; >tref tref> ] unit-test
  23. [ TYPE: ppc_fp128 ; ] [ TYPE: ppc_fp128 ; >tref tref> ] unit-test
  24. [ TYPE: opaque ; ] [ TYPE: opaque ; >tref tref> ] unit-test
  25. [ TYPE: label ; ] [ TYPE: label ; >tref tref> ] unit-test
  26. [ TYPE: void ; ] [ TYPE: void ; >tref tref> ] unit-test
  27. [ TYPE: i32* ; ] [ TYPE: i32* ; >tref tref> ] unit-test
  28. [ TYPE: < 2 x i32 > ; ] [ TYPE: < 2 x i32 > ; >tref tref> ] unit-test
  29. [ TYPE: [ 0 x i32 ] ; ] [ TYPE: [ 0 x i32 ] ; >tref tref> ] unit-test
  30. [ TYPE: { i32, i32 } ; ] [ TYPE: { i32, i32 } ; >tref tref> ] unit-test
  31. [ TYPE: < { i32, i32 } > ; ] [ TYPE: < { i32, i32 } > ; >tref tref> ] unit-test
  32. [ TYPE: i32 ( i32 ) ; ] [ TYPE: i32 ( i32 ) ; >tref tref> ] unit-test
  33. [ TYPE: \1* ; ] [ TYPE: \1* ; >tref tref> ] unit-test
  34. [ TYPE: { i32, \2* } ; ] [ TYPE: { i32, \2* } ; >tref tref> ] unit-test