Disable abseil hash checking in Chromium
This change makes VerifyTypeImplementsAbslHashCorrectly a nop when
compiling in Chromium, because we aren't allowed to use abseil's
hash_testing.h due to component build + DEPS issues. The unittests will
still work the same outside of Chromium, and in Chromium, everything
other than the hash checking is the same.
Bug: 1159046
Change-Id: I8997bbf2fb080a6ef1b5b475f239d229204b258c
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/2691326
Reviewed-by: Ryan Keane <rwkeane@google.com>
Commit-Queue: Brandon Tolsch <btolsch@chromium.org>
diff --git a/discovery/BUILD.gn b/discovery/BUILD.gn
index 2f5ff33..11598c8 100644
--- a/discovery/BUILD.gn
+++ b/discovery/BUILD.gn
@@ -120,14 +120,24 @@
sources = [
"common/testing/mock_reporting_client.h",
"dnssd/testing/fake_dns_record_factory.cc",
+ "mdns/testing/hash_test_util.h",
"mdns/testing/mdns_test_util.cc",
"mdns/testing/mdns_test_util.h",
]
+ defines = []
+ if (build_with_chromium) {
+ sources += [ "mdns/testing/hash_test_util_nop.h" ]
+ } else {
+ defines += [ "HASH_TEST_UTIL_USE_ABSL" ]
+ sources += [ "mdns/testing/hash_test_util_abseil.h" ]
+ }
+
public_deps = [
":mdns",
"../third_party/abseil",
"../third_party/googletest:gmock",
+ "../third_party/googletest:gtest",
]
}
diff --git a/discovery/mdns/mdns_records_unittest.cc b/discovery/mdns/mdns_records_unittest.cc
index f30b884..4cb3460 100644
--- a/discovery/mdns/mdns_records_unittest.cc
+++ b/discovery/mdns/mdns_records_unittest.cc
@@ -9,9 +9,9 @@
#include <utility>
#include <vector>
-#include "absl/hash/hash_testing.h"
#include "discovery/mdns/mdns_reader.h"
#include "discovery/mdns/mdns_writer.h"
+#include "discovery/mdns/testing/hash_test_util.h"
#include "discovery/mdns/testing/mdns_test_util.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
@@ -109,7 +109,7 @@
EXPECT_FALSE(fourth < fifth);
EXPECT_FALSE(fifth < fourth);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly(
{first, second, third, fourth, fifth}));
}
@@ -157,8 +157,7 @@
EXPECT_EQ(rdata1, rdata2);
EXPECT_NE(rdata1, rdata3);
- EXPECT_TRUE(
- absl::VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
}
TEST(MdnsRawRecordRdataTest, CopyAndMove) {
@@ -198,7 +197,7 @@
EXPECT_NE(rdata1, rdata5);
EXPECT_NE(rdata1, rdata6);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly(
{rdata1, rdata2, rdata3, rdata4, rdata5, rdata6}));
}
@@ -224,8 +223,7 @@
EXPECT_EQ(rdata1, rdata2);
EXPECT_NE(rdata1, rdata3);
- EXPECT_TRUE(
- absl::VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
}
TEST(MdnsARecordRdataTest, CopyAndMove) {
@@ -268,8 +266,7 @@
EXPECT_EQ(rdata1, rdata2);
EXPECT_NE(rdata1, rdata3);
- EXPECT_TRUE(
- absl::VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
}
TEST(MdnsAAAARecordRdataTest, CopyAndMove) {
@@ -297,8 +294,7 @@
EXPECT_EQ(rdata1, rdata2);
EXPECT_NE(rdata1, rdata3);
- EXPECT_TRUE(
- absl::VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3}));
}
TEST(MdnsPtrRecordRdataTest, CopyAndMove) {
@@ -325,8 +321,8 @@
EXPECT_NE(rdata1, rdata3);
EXPECT_NE(rdata1, rdata4);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
- {rdata1, rdata2, rdata3, rdata4}));
+ EXPECT_TRUE(
+ VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3, rdata4}));
}
TEST(MdnsTxtRecordRdataTest, CopyAndMove) {
@@ -456,8 +452,8 @@
EXPECT_NE(rdata1, rdata4);
EXPECT_NE(rdata3, rdata4);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
- {rdata1, rdata2, rdata3, rdata4}));
+ EXPECT_TRUE(
+ VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3, rdata4}));
}
TEST(MdnsNsecRecordRdataTest, CopyAndMove) {
@@ -507,8 +503,8 @@
EXPECT_NE(rdata2, rdata4);
EXPECT_NE(rdata3, rdata4);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
- {rdata1, rdata2, rdata3, rdata4}));
+ EXPECT_TRUE(
+ VerifyTypeImplementsAbslHashCorrectly({rdata1, rdata2, rdata3, rdata4}));
}
TEST(MdnsOptRecordRdataTest, CopyAndMove) {
@@ -593,7 +589,7 @@
}
}
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly(
{record1, record2, record3, record4, record5, record6, record7, record8,
record9}));
}
@@ -639,7 +635,7 @@
EXPECT_NE(question1, question4);
EXPECT_NE(question1, question5);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly(
{question1, question2, question3, question4, question5}));
}
@@ -767,7 +763,7 @@
EXPECT_NE(message1, message7);
EXPECT_NE(message1, message8);
- EXPECT_TRUE(absl::VerifyTypeImplementsAbslHashCorrectly(
+ EXPECT_TRUE(VerifyTypeImplementsAbslHashCorrectly(
{message1, message2, message3, message4, message5, message6, message7,
message8}));
}
diff --git a/discovery/mdns/testing/hash_test_util.h b/discovery/mdns/testing/hash_test_util.h
new file mode 100644
index 0000000..1965534
--- /dev/null
+++ b/discovery/mdns/testing/hash_test_util.h
@@ -0,0 +1,14 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_H_
+#define DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_H_
+
+#if HASH_TEST_UTIL_USE_ABSL
+#include "discovery/mdns/testing/hash_test_util_abseil.h"
+#else
+#include "discovery/mdns/testing/hash_test_util_nop.h"
+#endif
+
+#endif // DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_H_
diff --git a/discovery/mdns/testing/hash_test_util_abseil.h b/discovery/mdns/testing/hash_test_util_abseil.h
new file mode 100644
index 0000000..dead96a
--- /dev/null
+++ b/discovery/mdns/testing/hash_test_util_abseil.h
@@ -0,0 +1,25 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_ABSEIL_H_
+#define DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_ABSEIL_H_
+
+#include <utility>
+
+#include "absl/hash/hash_testing.h"
+#include "gtest/gtest.h"
+
+namespace openscreen {
+namespace discovery {
+
+template <int&..., typename T>
+testing::AssertionResult VerifyTypeImplementsAbslHashCorrectly(
+ std::initializer_list<T> values) {
+ absl::VerifyTypeImplementsAbslHashCorrectly(std::move(values));
+}
+
+} // namespace discovery
+} // namespace openscreen
+
+#endif // DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_ABSEIL_H_
diff --git a/discovery/mdns/testing/hash_test_util_nop.h b/discovery/mdns/testing/hash_test_util_nop.h
new file mode 100644
index 0000000..97328f7
--- /dev/null
+++ b/discovery/mdns/testing/hash_test_util_nop.h
@@ -0,0 +1,22 @@
+// Copyright 2021 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_NOP_H_
+#define DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_NOP_H_
+
+#include "gtest/gtest.h"
+
+namespace openscreen {
+namespace discovery {
+
+template <int&..., typename T>
+testing::AssertionResult VerifyTypeImplementsAbslHashCorrectly(
+ std::initializer_list<T> values) {
+ return testing::AssertionSuccess();
+}
+
+} // namespace discovery
+} // namespace openscreen
+
+#endif // DISCOVERY_MDNS_TESTING_HASH_TEST_UTIL_NOP_H_