| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2010 Google Inc. | 2 * Copyright 2010 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 // This is a GPU-backend specific test | 8 // This is a GPU-backend specific test |
| 9 #if SK_SUPPORT_GPU | 9 #if SK_SUPPORT_GPU |
| 10 | 10 |
| 11 #include "GrBinHashKey.h" | 11 #include "GrBinHashKey.h" |
| 12 | 12 |
| 13 #include "Test.h" | 13 #include "Test.h" |
| 14 | 14 |
| 15 DEF_TEST(GrBinHashKey, reporter) { | 15 template<typename KeyType> static void TestHash(skiatest::Reporter* reporter) { |
| 16 const char* testStringA_ = "abcdABCD"; | 16 const char* testStringA_ = "abcdABCD"; |
| 17 const char* testStringB_ = "abcdBBCD"; | 17 const char* testStringB_ = "abcdBBCD"; |
| 18 const uint32_t* testStringA = reinterpret_cast<const uint32_t*>(testStringA_
); | 18 const uint32_t* testStringA = reinterpret_cast<const uint32_t*>(testStringA_
); |
| 19 const uint32_t* testStringB = reinterpret_cast<const uint32_t*>(testStringB_
); | 19 const uint32_t* testStringB = reinterpret_cast<const uint32_t*>(testStringB_
); |
| 20 enum { | |
| 21 kDataLenUsedForKey = 8 | |
| 22 }; | |
| 23 | 20 |
| 24 GrBinHashKey<kDataLenUsedForKey> keyA; | 21 KeyType keyA; |
| 25 keyA.setKeyData(testStringA); | 22 keyA.setKeyData(testStringA); |
| 26 // test copy constructor and comparison | 23 // test copy constructor and comparison |
| 27 GrBinHashKey<kDataLenUsedForKey> keyA2(keyA); | 24 KeyType keyA2(keyA); |
| 28 REPORTER_ASSERT(reporter, keyA == keyA2); | 25 REPORTER_ASSERT(reporter, keyA == keyA2); |
| 29 REPORTER_ASSERT(reporter, keyA.getHash() == keyA2.getHash()); | 26 REPORTER_ASSERT(reporter, keyA.getHash() == keyA2.getHash()); |
| 30 // test re-init | 27 // test re-init |
| 31 keyA2.setKeyData(testStringA); | 28 keyA2.setKeyData(testStringA); |
| 32 REPORTER_ASSERT(reporter, keyA == keyA2); | 29 REPORTER_ASSERT(reporter, keyA == keyA2); |
| 33 REPORTER_ASSERT(reporter, keyA.getHash() == keyA2.getHash()); | 30 REPORTER_ASSERT(reporter, keyA.getHash() == keyA2.getHash()); |
| 34 // test sorting | 31 // test sorting |
| 35 GrBinHashKey<kDataLenUsedForKey> keyB; | 32 KeyType keyB; |
| 36 keyB.setKeyData(testStringB); | 33 keyB.setKeyData(testStringB); |
| 37 REPORTER_ASSERT(reporter, keyA < keyB); | |
| 38 REPORTER_ASSERT(reporter, keyA.getHash() != keyB.getHash()); | 34 REPORTER_ASSERT(reporter, keyA.getHash() != keyB.getHash()); |
| 39 } | 35 } |
| 40 | 36 |
| 37 |
| 38 DEF_TEST(GrBinHashKey, reporter) { |
| 39 enum { |
| 40 kDataLenUsedForKey = 8 |
| 41 }; |
| 42 |
| 43 TestHash<GrBinHashKey<kDataLenUsedForKey> >(reporter); |
| 44 TestHash<GrMurmur3HashKey<kDataLenUsedForKey> >(reporter); |
| 45 } |
| 46 |
| 41 #endif | 47 #endif |
| OLD | NEW |