|  | // Copyright (c) 2015-2016 The Khronos Group Inc. | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | #include "test/unit_spirv.h" | 
|  |  | 
|  | namespace spvtools { | 
|  | namespace { | 
|  |  | 
|  | TEST(FixWord, Default) { | 
|  | spv_endianness_t endian; | 
|  | if (I32_ENDIAN_HOST == I32_ENDIAN_LITTLE) { | 
|  | endian = SPV_ENDIANNESS_LITTLE; | 
|  | } else { | 
|  | endian = SPV_ENDIANNESS_BIG; | 
|  | } | 
|  | uint32_t word = 0x53780921; | 
|  | ASSERT_EQ(word, spvFixWord(word, endian)); | 
|  | } | 
|  |  | 
|  | TEST(FixWord, Reorder) { | 
|  | spv_endianness_t endian; | 
|  | if (I32_ENDIAN_HOST == I32_ENDIAN_LITTLE) { | 
|  | endian = SPV_ENDIANNESS_BIG; | 
|  | } else { | 
|  | endian = SPV_ENDIANNESS_LITTLE; | 
|  | } | 
|  | uint32_t word = 0x53780921; | 
|  | uint32_t result = 0x21097853; | 
|  | ASSERT_EQ(result, spvFixWord(word, endian)); | 
|  | } | 
|  |  | 
|  | TEST(FixDoubleWord, Default) { | 
|  | spv_endianness_t endian = | 
|  | (I32_ENDIAN_HOST == I32_ENDIAN_LITTLE ? SPV_ENDIANNESS_LITTLE | 
|  | : SPV_ENDIANNESS_BIG); | 
|  | uint32_t low = 0x53780921; | 
|  | uint32_t high = 0xdeadbeef; | 
|  | uint64_t result = 0xdeadbeef53780921; | 
|  | ASSERT_EQ(result, spvFixDoubleWord(low, high, endian)); | 
|  | } | 
|  |  | 
|  | TEST(FixDoubleWord, Reorder) { | 
|  | spv_endianness_t endian = | 
|  | (I32_ENDIAN_HOST == I32_ENDIAN_LITTLE ? SPV_ENDIANNESS_BIG | 
|  | : SPV_ENDIANNESS_LITTLE); | 
|  | uint32_t low = 0x53780921; | 
|  | uint32_t high = 0xdeadbeef; | 
|  | uint64_t result = 0xefbeadde21097853; | 
|  | ASSERT_EQ(result, spvFixDoubleWord(low, high, endian)); | 
|  | } | 
|  |  | 
|  | }  // namespace | 
|  | }  // namespace spvtools |