meson.build 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. project('plusassign', 'c')
  2. x = []
  3. x += 'a'
  4. if x.length() != 1
  5. error('Incorrect append')
  6. endif
  7. if x[0] != 'a'
  8. error('Incorrect append 2.')
  9. endif
  10. y = x
  11. x += 'b'
  12. if y.length() != 1
  13. error('Immutability broken.')
  14. endif
  15. if y[0] != 'a'
  16. error('Immutability broken 2.')
  17. endif
  18. if x.length() != 2
  19. error('Incorrect append 3')
  20. endif
  21. if x[0] != 'a'
  22. error('Incorrect append 4.')
  23. endif
  24. if x[1] != 'b'
  25. error('Incorrect append 5.')
  26. endif
  27. # Now with evil added: append yourself.
  28. x += x
  29. if x.length() != 4
  30. error('Incorrect selfappend.')
  31. endif
  32. # += on strings
  33. bra = 'bra'
  34. foo = 'A'
  35. foo += bra
  36. foo += 'cada'
  37. foo += bra
  38. assert (foo == 'Abracadabra', 'string += failure [@0@]'.format(foo))
  39. assert (bra == 'bra', 'string += modified right argument!')
  40. foo += ' ' + foo
  41. assert (foo == 'Abracadabra Abracadabra', 'string += failure [@0@]'.format(foo))
  42. # += on ints
  43. foo = 5
  44. foo += 6
  45. assert (foo == 11, 'int += failure [@0@]'.format(foo))
  46. bar = 99
  47. foo += bar
  48. assert (foo == 110, 'int += failure [@0@]'.format(foo))
  49. assert (bar == 99, 'int += modified right argument"')
  50. bar += foo + 1
  51. assert (bar == 210, 'int += failure [@0@]'.format(bar))
  52. assert (foo == 110, 'int += modified right argument"')