• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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