meson.build 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. project('comparison', 'c')
  2. # Compare equality of strings
  3. var1 = 'foo'
  4. var2 = 'bar'
  5. if var1 == var2
  6. exe1 = executable('broken', 'broken.c')
  7. else
  8. exe1 = executable('prog1', 'prog.c')
  9. endif
  10. if var1 == var1
  11. exe2 = executable('prog2', 'prog.c')
  12. else
  13. exe2 = executable('broken', 'broken.c')
  14. endif
  15. if var1 != var2
  16. exe3 = executable('prog3', 'prog.c')
  17. else
  18. exe3 = executable('broken', 'broken.c')
  19. endif
  20. if var1 != var1
  21. exe4 = executable('broken', 'broken.c')
  22. else
  23. exe4 = executable('prog4', 'prog.c')
  24. endif
  25. test('equalfalse', exe1)
  26. test('equaltrue', exe2)
  27. test('nequaltrue', exe3)
  28. test('nequalfalse', exe4)
  29. # Non-equality comparisons
  30. var3 = 3
  31. var4 = 4
  32. if var3 < var4
  33. exe5 = executable('prog5', 'prog.c')
  34. else
  35. exe5 = executable('broken', 'broken.c')
  36. endif
  37. if var3 < var3
  38. exe6 = executable('broken', 'broken.c')
  39. else
  40. exe6 = executable('prog6', 'prog.c')
  41. endif
  42. if var4 > var3
  43. exe7 = executable('prog7', 'prog.c')
  44. else
  45. exe7 = executable('broken', 'broken.c')
  46. endif
  47. if var3 > var3
  48. exe8 = executable('broken', 'broken.c')
  49. else
  50. exe8 = executable('prog8', 'prog.c')
  51. endif
  52. if var4 <= var3
  53. exe9 = executable('broken', 'broken.c')
  54. else
  55. exe9 = executable('prog9', 'prog.c')
  56. endif
  57. if var3 <= var3
  58. exe10 = executable('prog10', 'prog.c')
  59. else
  60. exe10 = executable('broken', 'broken.c')
  61. endif
  62. if var3 >= var4
  63. exe11 = executable('broken', 'broken.c')
  64. else
  65. exe11 = executable('prog11', 'prog.c')
  66. endif
  67. if var3 >= var3
  68. exe12 = executable('prog12', 'prog.c')
  69. else
  70. exe12 = executable('broken', 'broken.c')
  71. endif
  72. test('lttrue', exe5)
  73. test('ltfalse', exe6)
  74. test('gttrue', exe7)
  75. test('gtfalse', exe8)
  76. test('lefalse', exe9)
  77. test('letrue', exe10)
  78. test('gefalse', exe11)
  79. test('getrue', exe12)
  80. # Non-elementary type comparisons
  81. if exe1 == exe2
  82. exe13 = executable('broken', 'broken.c')
  83. else
  84. exe13 = executable('prog13', 'prog.c')
  85. endif
  86. if exe1 == exe1
  87. exe14 = executable('prog14', 'prog.c')
  88. else
  89. exe14 = executable('broken', 'broken.c')
  90. endif
  91. if exe1 != exe2
  92. exe15 = executable('prog15', 'prog.c')
  93. else
  94. exe15 = executable('broken', 'broken.c')
  95. endif
  96. if exe1 != exe1
  97. exe16 = executable('broken', 'broken.c')
  98. else
  99. exe16 = executable('prog16', 'prog.c')
  100. endif
  101. test('equalfalse', exe13)
  102. test('equaltrue', exe14)
  103. test('nequaltrue', exe15)
  104. test('nequalfalse', exe16)