spirv_test_framework_unittest.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. # Copyright (c) 2019 Google LLC
  2. #
  3. # Licensed under the Apache License, Version 2.0 (the "License");
  4. # you may not use this file except in compliance with the License.
  5. # You may obtain a copy of the License at
  6. #
  7. # http://www.apache.org/licenses/LICENSE-2.0
  8. #
  9. # Unless required by applicable law or agreed to in writing, software
  10. # distributed under the License is distributed on an "AS IS" BASIS,
  11. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. # See the License for the specific language governing permissions and
  13. # limitations under the License.
  14. """Tests for the spirv test framework module."""
  15. from spirv_test_framework import get_all_test_methods, get_all_superclasses
  16. import unittest
  17. # Classes to be used in testing get_all_{superclasses|test_methods}()
  18. class Root:
  19. def check_root(self):
  20. pass
  21. class A(Root):
  22. def check_a(self):
  23. pass
  24. class B(Root):
  25. def check_b(self):
  26. pass
  27. class C(Root):
  28. def check_c(self):
  29. pass
  30. class D(Root):
  31. def check_d(self):
  32. pass
  33. class E(Root):
  34. def check_e(self):
  35. pass
  36. class H(B, C, D):
  37. def check_h(self):
  38. pass
  39. class I(E):
  40. def check_i(self):
  41. pass
  42. class O(H, I):
  43. def check_o(self):
  44. pass
  45. class U(A, O):
  46. def check_u(self):
  47. pass
  48. class X(U, A):
  49. def check_x(self):
  50. pass
  51. class R1:
  52. def check_r1(self):
  53. pass
  54. class R2:
  55. def check_r2(self):
  56. pass
  57. class Multi(R1, R2):
  58. def check_multi(self):
  59. pass
  60. class TestSpirvTestFramework(unittest.TestCase):
  61. def test_get_all_superclasses(self):
  62. self.assertEqual(get_all_superclasses(A), [Root])
  63. self.assertEqual(get_all_superclasses(B), [Root])
  64. self.assertEqual(get_all_superclasses(C), [Root])
  65. self.assertEqual(get_all_superclasses(D), [Root])
  66. self.assertEqual(get_all_superclasses(E), [Root])
  67. self.assertEqual(get_all_superclasses(H), [Root, B, C, D])
  68. self.assertEqual(get_all_superclasses(I), [Root, E])
  69. self.assertEqual(get_all_superclasses(O), [Root, B, C, D, E, H, I])
  70. self.assertEqual(get_all_superclasses(
  71. U), [Root, B, C, D, E, H, I, A, O])
  72. self.assertEqual(get_all_superclasses(
  73. X), [Root, B, C, D, E, H, I, A, O, U])
  74. self.assertEqual(get_all_superclasses(Multi), [R1, R2])
  75. def test_get_all_methods(self):
  76. self.assertEqual(get_all_test_methods(A), ['check_root', 'check_a'])
  77. self.assertEqual(get_all_test_methods(B), ['check_root', 'check_b'])
  78. self.assertEqual(get_all_test_methods(C), ['check_root', 'check_c'])
  79. self.assertEqual(get_all_test_methods(D), ['check_root', 'check_d'])
  80. self.assertEqual(get_all_test_methods(E), ['check_root', 'check_e'])
  81. self.assertEqual(
  82. get_all_test_methods(H),
  83. ['check_root', 'check_b', 'check_c', 'check_d', 'check_h'])
  84. self.assertEqual(get_all_test_methods(
  85. I), ['check_root', 'check_e', 'check_i'])
  86. self.assertEqual(
  87. get_all_test_methods(O), [
  88. 'check_root', 'check_b', 'check_c', 'check_d', 'check_e', 'check_h',
  89. 'check_i', 'check_o'
  90. ])
  91. self.assertEqual(
  92. get_all_test_methods(U), [
  93. 'check_root', 'check_b', 'check_c', 'check_d', 'check_e', 'check_h',
  94. 'check_i', 'check_a', 'check_o', 'check_u'
  95. ])
  96. self.assertEqual(
  97. get_all_test_methods(X), [
  98. 'check_root', 'check_b', 'check_c', 'check_d', 'check_e', 'check_h',
  99. 'check_i', 'check_a', 'check_o', 'check_u', 'check_x'
  100. ])
  101. self.assertEqual(
  102. get_all_test_methods(Multi), ['check_r1', 'check_r2', 'check_multi'])