| // 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 |