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
15 #include "source/fuzz/uniform_buffer_element_descriptor.h"
16
17 #include "gtest/gtest.h"
18
19 namespace spvtools {
20 namespace fuzz {
21 namespace {
22
TEST(UniformBufferElementDescriptorTest,TestEquality)23 TEST(UniformBufferElementDescriptorTest, TestEquality) {
24 // Test that equality works as expected for various buffer element
25 // descriptors.
26
27 protobufs::UniformBufferElementDescriptor descriptor1 =
28 MakeUniformBufferElementDescriptor(0, 0, {1, 2, 3});
29 protobufs::UniformBufferElementDescriptor descriptor2 =
30 MakeUniformBufferElementDescriptor(0, 0, {1, 2, 3});
31 protobufs::UniformBufferElementDescriptor descriptor3 =
32 MakeUniformBufferElementDescriptor(0, 1, {1, 2, 3});
33 protobufs::UniformBufferElementDescriptor descriptor4 =
34 MakeUniformBufferElementDescriptor(1, 0, {1, 2, 3});
35 protobufs::UniformBufferElementDescriptor descriptor5 =
36 MakeUniformBufferElementDescriptor(1, 1, {1, 2, 3});
37 protobufs::UniformBufferElementDescriptor descriptor6 =
38 MakeUniformBufferElementDescriptor(0, 0, {1, 2, 4});
39 protobufs::UniformBufferElementDescriptor descriptor7 =
40 MakeUniformBufferElementDescriptor(0, 0, {1, 2});
41
42 ASSERT_TRUE(
43 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor1));
44 ASSERT_TRUE(
45 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor2));
46 ASSERT_TRUE(
47 UniformBufferElementDescriptorEquals()(&descriptor3, &descriptor3));
48 ASSERT_TRUE(
49 UniformBufferElementDescriptorEquals()(&descriptor4, &descriptor4));
50 ASSERT_TRUE(
51 UniformBufferElementDescriptorEquals()(&descriptor5, &descriptor5));
52 ASSERT_TRUE(
53 UniformBufferElementDescriptorEquals()(&descriptor6, &descriptor6));
54 ASSERT_TRUE(
55 UniformBufferElementDescriptorEquals()(&descriptor7, &descriptor7));
56
57 ASSERT_FALSE(
58 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor3));
59 ASSERT_FALSE(
60 UniformBufferElementDescriptorEquals()(&descriptor3, &descriptor1));
61
62 ASSERT_FALSE(
63 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor4));
64 ASSERT_FALSE(
65 UniformBufferElementDescriptorEquals()(&descriptor4, &descriptor1));
66
67 ASSERT_FALSE(
68 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor5));
69 ASSERT_FALSE(
70 UniformBufferElementDescriptorEquals()(&descriptor5, &descriptor1));
71
72 ASSERT_FALSE(
73 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor6));
74 ASSERT_FALSE(
75 UniformBufferElementDescriptorEquals()(&descriptor6, &descriptor1));
76
77 ASSERT_FALSE(
78 UniformBufferElementDescriptorEquals()(&descriptor1, &descriptor7));
79 ASSERT_FALSE(
80 UniformBufferElementDescriptorEquals()(&descriptor7, &descriptor1));
81 }
82
83 } // namespace
84 } // namespace fuzz
85 } // namespace spvtools
86