/cogl/tests/conform/test-conform-main.c

https://gitlab.com/tchaik/mutter · C · 157 lines · 118 code · 31 blank · 8 comment · 7 complexity · d3ae96dcee38ea752f943bdfc8e00df2 MD5 · raw file

  1. #include "cogl-config.h"
  2. #include <cogl/cogl.h>
  3. #include <glib.h>
  4. #include <locale.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include "test-utils.h"
  8. /* A bit of sugar for adding new conformance tests */
  9. #define ADD_TEST(FUNC, REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS) \
  10. G_STMT_START { \
  11. extern void FUNC (void); \
  12. if (strcmp (#FUNC, argv[1]) == 0) \
  13. { \
  14. test_utils_init (REQUIREMENTS, KNOWN_FAIL_REQUIREMENTS); \
  15. FUNC (); \
  16. test_utils_fini (); \
  17. exit (0); \
  18. } \
  19. } G_STMT_END
  20. #define UNPORTED_TEST(FUNC)
  21. int
  22. main (int argc, char **argv)
  23. {
  24. int i;
  25. if (argc != 2)
  26. {
  27. g_printerr ("usage %s UNIT_TEST\n", argv[0]);
  28. exit (1);
  29. }
  30. /* Just for convenience in case people try passing the wrapper
  31. * filenames for the UNIT_TEST argument we normalize '-' characters
  32. * to '_' characters... */
  33. for (i = 0; argv[1][i]; i++)
  34. {
  35. if (argv[1][i] == '-')
  36. argv[1][i] = '_';
  37. }
  38. /* This file is run through a sed script during the make step so the
  39. * lines containing the tests need to be formatted on a single line
  40. * each.
  41. */
  42. UNPORTED_TEST (test_object);
  43. UNPORTED_TEST (test_fixed);
  44. UNPORTED_TEST (test_materials);
  45. ADD_TEST (test_pipeline_user_matrix, 0, 0);
  46. ADD_TEST (test_blend_strings, 0, 0);
  47. ADD_TEST (test_blend, 0, 0);
  48. ADD_TEST (test_premult, 0, TEST_KNOWN_FAILURE);
  49. UNPORTED_TEST (test_readpixels);
  50. #ifdef COGL_HAS_COGL_PATH_SUPPORT
  51. ADD_TEST (test_path, 0, 0);
  52. ADD_TEST (test_path_clip, 0, 0);
  53. #endif
  54. ADD_TEST (test_depth_test, 0, 0);
  55. ADD_TEST (test_color_mask, 0, 0);
  56. ADD_TEST (test_backface_culling, 0, TEST_REQUIREMENT_NPOT);
  57. ADD_TEST (test_layer_remove, 0, 0);
  58. ADD_TEST (test_sparse_pipeline, 0, 0);
  59. ADD_TEST (test_npot_texture, 0, 0);
  60. UNPORTED_TEST (test_multitexture);
  61. UNPORTED_TEST (test_texture_mipmaps);
  62. ADD_TEST (test_sub_texture, 0, 0);
  63. ADD_TEST (test_pixel_buffer_map, 0, 0);
  64. ADD_TEST (test_pixel_buffer_set_data, 0, 0);
  65. ADD_TEST (test_pixel_buffer_sub_region, 0, 0);
  66. UNPORTED_TEST (test_texture_rectangle);
  67. ADD_TEST (test_texture_3d, TEST_REQUIREMENT_TEXTURE_3D, 0);
  68. ADD_TEST (test_wrap_modes, 0, 0);
  69. UNPORTED_TEST (test_texture_pixmap_x11);
  70. ADD_TEST (test_texture_get_set_data, 0, 0);
  71. ADD_TEST (test_atlas_migration, 0, 0);
  72. ADD_TEST (test_read_texture_formats, 0, TEST_KNOWN_FAILURE);
  73. ADD_TEST (test_write_texture_formats, 0, 0);
  74. ADD_TEST (test_alpha_textures, 0, 0);
  75. ADD_TEST (test_wrap_rectangle_textures,
  76. TEST_REQUIREMENT_TEXTURE_RECTANGLE,
  77. TEST_KNOWN_FAILURE);
  78. UNPORTED_TEST (test_vertex_buffer_contiguous);
  79. UNPORTED_TEST (test_vertex_buffer_interleved);
  80. UNPORTED_TEST (test_vertex_buffer_mutability);
  81. ADD_TEST (test_primitive, 0, 0);
  82. ADD_TEST (test_just_vertex_shader, TEST_REQUIREMENT_GLSL, 0);
  83. ADD_TEST (test_pipeline_uniforms, TEST_REQUIREMENT_GLSL, 0);
  84. ADD_TEST (test_snippets, TEST_REQUIREMENT_GLSL, 0);
  85. ADD_TEST (test_custom_attributes, TEST_REQUIREMENT_GLSL, 0);
  86. ADD_TEST (test_offscreen, 0, 0);
  87. ADD_TEST (test_framebuffer_get_bits,
  88. TEST_REQUIREMENT_OFFSCREEN | TEST_REQUIREMENT_GL,
  89. 0);
  90. ADD_TEST (test_point_size, 0, 0);
  91. ADD_TEST (test_point_size_attribute,
  92. TEST_REQUIREMENT_PER_VERTEX_POINT_SIZE, 0);
  93. ADD_TEST (test_point_size_attribute_snippet,
  94. TEST_REQUIREMENT_PER_VERTEX_POINT_SIZE |
  95. TEST_REQUIREMENT_GLSL, 0);
  96. ADD_TEST (test_point_sprite,
  97. TEST_REQUIREMENT_POINT_SPRITE,
  98. 0);
  99. ADD_TEST (test_point_sprite_orientation,
  100. TEST_REQUIREMENT_POINT_SPRITE,
  101. TEST_KNOWN_FAILURE);
  102. ADD_TEST (test_point_sprite_glsl,
  103. TEST_REQUIREMENT_POINT_SPRITE |
  104. TEST_REQUIREMENT_GLSL,
  105. 0);
  106. ADD_TEST (test_version, 0, 0);
  107. ADD_TEST (test_alpha_test, 0, 0);
  108. ADD_TEST (test_map_buffer_range, TEST_REQUIREMENT_MAP_WRITE, 0);
  109. ADD_TEST (test_primitive_and_journal, 0, 0);
  110. ADD_TEST (test_copy_replace_texture, 0, 0);
  111. ADD_TEST (test_pipeline_cache_unrefs_texture, 0, 0);
  112. ADD_TEST (test_pipeline_shader_state, TEST_REQUIREMENT_GLSL, 0);
  113. UNPORTED_TEST (test_viewport);
  114. ADD_TEST (test_gles2_context, TEST_REQUIREMENT_GLES2_CONTEXT, 0);
  115. ADD_TEST (test_gles2_context_fbo, TEST_REQUIREMENT_GLES2_CONTEXT, 0);
  116. ADD_TEST (test_gles2_context_copy_tex_image,
  117. TEST_REQUIREMENT_GLES2_CONTEXT,
  118. 0);
  119. ADD_TEST (test_euler_quaternion, 0, 0);
  120. ADD_TEST (test_color_hsl, 0, 0);
  121. ADD_TEST (test_fence, TEST_REQUIREMENT_FENCE, 0);
  122. ADD_TEST (test_texture_no_allocate, 0, 0);
  123. ADD_TEST (test_texture_rg, TEST_REQUIREMENT_TEXTURE_RG, 0);
  124. g_printerr ("Unknown test name \"%s\"\n", argv[1]);
  125. return 1;
  126. }