Reland of Enable GN check for webrtc/base (patchset #3 id:230001 of https://codereview.webrtc.org/2838683002/ )
Reason for revert:
Fourth attempt to land.
Waiting for https://codereview.webrtc.org/2845013003 to
avoid conflicts on webrtc/modules/audio_coding:neteq_unittest_tools.
Original issue's description:
> Revert of Enable GN check for webrtc/base (patchset #13 id:240001 of https://codereview.webrtc.org/2717083002/ )
>
> Reason for revert:
> Breaks Chromium because in Chromium we import WebRTC with rtc_include_tests=false (https://bugs.chromium.org/p/chromium/issues/detail?id=713179#c6).
>
> Chromium uses webrtc/test/fuzzers and this CL adds test dependencies to neteq_rtc_fuzzer.
>
> Original issue's description:
> > Enable GN check for webrtc/base
> >
> > It's not possible to enable it for the rtc_base_approved
> > target but since a larger refactoring is ongoing for webrtc/base
> > this CL doesn't attempt to fix that.
> >
> > Changes made:
> > * Move webrtc/system_wrappers/include/stringize_macros.h into
> > webrtc/base:rtc_base_approved_unittests (and corresponding
> > unit test to rtc_base_approved_unittests).
> > * Move md5digest.* from rtc_base_approved to rtc_base_test_utils target.
> > * Move webrtc/system_wrappers/include/stringize_macros.h (+test) into
> > webrtc/base.
> > * Remove unused use include of webrtc/base/fileutils.h in
> > webrtc/base/pathutils.cc
> >
> > BUG=webrtc:6828, webrtc:3806, webrtc:7480
> > NOTRY=True
> >
> > Review-Url: https://codereview.webrtc.org/2717083002
> > Cr-Commit-Position: refs/heads/master@{#17766}
> > Committed: https://chromium.googlesource.com/external/webrtc/+/ed754e71ae8866db641677073274e86fe704eeac
>
> TBR=perkj@webrtc.org,tommi@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org
> # Not skipping CQ checks because original CL landed more than 1 days ago.
> BUG=webrtc:6828, webrtc:3806, webrtc:7480
> NOTRY=True
>
> Review-Url: https://codereview.webrtc.org/2838683002
> Cr-Commit-Position: refs/heads/master@{#17849}
> Committed: https://chromium.googlesource.com/external/webrtc/+/11ed366c487a938815cd52ad2ab5467b0f90e1ae
TBR=perkj@webrtc.org,tommi@webrtc.org,nisse@webrtc.org,kjellander@webrtc.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
BUG=webrtc:6828, webrtc:3806, webrtc:7480
Review-Url: https://codereview.webrtc.org/2852663002
Cr-Commit-Position: refs/heads/master@{#17927}
diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn
index a3ee03f..2a17d92 100644
--- a/webrtc/base/BUILD.gn
+++ b/webrtc/base/BUILD.gn
@@ -92,6 +92,10 @@
# The subset of rtc_base approved for use outside of libjingle.
rtc_static_library("rtc_base_approved") {
+ # TODO(kjellander): Remove (bugs.webrtc.org/7480)
+ # Enabling GN check triggers a cyclic dependency caused by rate_limiter.cc:
+ # :rtc_base_approved -> //webrtc/system_wrappers -> :rtc_base_approved
+ check_includes = false
defines = []
libs = []
deps = []
@@ -136,8 +140,6 @@
"location.h",
"md5.cc",
"md5.h",
- "md5digest.cc",
- "md5digest.h",
"mod_ops.h",
"onetimeevent.h",
"optional.cc",
@@ -172,6 +174,7 @@
"string_to_number.h",
"stringencode.cc",
"stringencode.h",
+ "stringize_macros.h",
"stringutils.cc",
"stringutils.h",
"swap_queue.h",
@@ -655,21 +658,74 @@
]
}
+config("rtc_base_tests_utils_exported_config") {
+ defines = [ "GTEST_RELATIVE_PATH" ]
+}
+
+config("rtc_base_tests_utils_warnings_config") {
+ if (is_win && is_clang) {
+ cflags = [
+ # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
+ "-Wno-reorder",
+ "-Wno-sign-compare",
+ ]
+ }
+}
+
+rtc_source_set("rtc_base_tests_utils") {
+ testonly = true
+ sources = [
+ # Also use this as a convenient dumping ground for misc files that are
+ # included by multiple targets below.
+ "cpu_time.cc",
+ "cpu_time.h",
+ "fakeclock.cc",
+ "fakeclock.h",
+ "fakenetwork.h",
+ "fakesslidentity.h",
+ "firewallsocketserver.cc",
+ "firewallsocketserver.h",
+ "gunit.h",
+ "httpserver.cc",
+ "httpserver.h",
+ "md5digest.cc",
+ "md5digest.h",
+ "memory_usage.cc",
+ "memory_usage.h",
+ "natserver.cc",
+ "natserver.h",
+ "natsocketfactory.cc",
+ "natsocketfactory.h",
+ "nattypes.cc",
+ "nattypes.h",
+ "proxyserver.cc",
+ "proxyserver.h",
+ "sigslottester.h",
+ "sigslottester.h.pump",
+ "testbase64.h",
+ "testechoserver.h",
+ "testutils.h",
+ "timedelta.h",
+ ]
+ configs += [ ":rtc_base_tests_utils_warnings_config" ]
+ public_configs = [ ":rtc_base_tests_utils_exported_config" ]
+ deps = [
+ ":rtc_base",
+ "../test:field_trial",
+ "../test:test_support",
+ ]
+ public_deps = [
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ if (!build_with_chromium && is_clang) {
+ # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+ suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ }
+}
+
if (rtc_include_tests) {
- config("rtc_base_tests_utils_exported_config") {
- defines = [ "GTEST_RELATIVE_PATH" ]
- }
-
- config("rtc_base_tests_utils_warnings_config") {
- if (is_win && is_clang) {
- cflags = [
- # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6270
- "-Wno-reorder",
- "-Wno-sign-compare",
- ]
- }
- }
-
rtc_source_set("rtc_base_tests_main") {
testonly = true
sources = [
@@ -677,56 +733,9 @@
]
public_configs = [ ":rtc_base_tests_utils_exported_config" ]
deps = [
- ":rtc_base_tests_utils",
- ]
- public_deps = [
- "//testing/gmock",
- "//testing/gtest",
- ]
-
- if (!build_with_chromium && is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
- }
- }
-
- rtc_source_set("rtc_base_tests_utils") {
- testonly = true
- sources = [
- # Also use this as a convenient dumping ground for misc files that are
- # included by multiple targets below.
- "cpu_time.cc",
- "cpu_time.h",
- "fakeclock.cc",
- "fakeclock.h",
- "fakenetwork.h",
- "fakesslidentity.h",
- "firewallsocketserver.cc",
- "firewallsocketserver.h",
- "gunit.h",
- "httpserver.cc",
- "httpserver.h",
- "memory_usage.cc",
- "memory_usage.h",
- "natserver.cc",
- "natserver.h",
- "natsocketfactory.cc",
- "natsocketfactory.h",
- "nattypes.cc",
- "nattypes.h",
- "proxyserver.cc",
- "proxyserver.h",
- "sigslottester.h",
- "sigslottester.h.pump",
- "testbase64.h",
- "testechoserver.h",
- "testutils.h",
- "timedelta.h",
- ]
- configs += [ ":rtc_base_tests_utils_warnings_config" ]
- public_configs = [ ":rtc_base_tests_utils_exported_config" ]
- deps = [
":rtc_base",
+ ":rtc_base_approved",
+ ":rtc_base_tests_utils",
"../test:field_trial",
"../test:test_support",
]
@@ -763,6 +772,9 @@
deps = [
":rtc_base",
":rtc_base_tests_main",
+ ":rtc_base_tests_utils",
+ "../system_wrappers:system_wrappers",
+ "../test:test_support",
"//testing/gtest",
]
if (is_win) {
@@ -817,6 +829,7 @@
"safe_minmax_unittest.cc",
"string_to_number_unittest.cc",
"stringencode_unittest.cc",
+ "stringize_macros_unittest.cc",
"stringutils_unittest.cc",
"swap_queue_unittest.cc",
"thread_annotations_unittest.cc",
@@ -825,8 +838,13 @@
"timeutils_unittest.cc",
]
deps = [
+ ":rtc_base",
":rtc_base_approved",
":rtc_base_tests_main",
+ ":rtc_base_tests_utils",
+ ":rtc_task_queue",
+ "../system_wrappers:system_wrappers",
+ "../test:test_support",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -850,7 +868,9 @@
]
deps = [
":rtc_base_tests_main",
+ ":rtc_base_tests_utils",
":rtc_task_queue",
+ "../test:test_support",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
@@ -872,8 +892,10 @@
"numerics/percentile_filter_unittest.cc",
]
deps = [
+ ":rtc_base_approved",
":rtc_base_tests_main",
":rtc_numerics",
+ "../test:test_support",
]
}
@@ -939,6 +961,8 @@
}
deps = [
":rtc_base_tests_main",
+ ":rtc_base_tests_utils",
+ "../test:test_support",
]
public_deps = [
":rtc_base",
diff --git a/webrtc/base/location.h b/webrtc/base/location.h
index a541bbe..541be9a 100644
--- a/webrtc/base/location.h
+++ b/webrtc/base/location.h
@@ -13,7 +13,7 @@
#include <string>
-#include "webrtc/system_wrappers/include/stringize_macros.h"
+#include "webrtc/base/stringize_macros.h"
namespace rtc {
diff --git a/webrtc/base/pathutils.cc b/webrtc/base/pathutils.cc
index 75dabb5..3036774 100644
--- a/webrtc/base/pathutils.cc
+++ b/webrtc/base/pathutils.cc
@@ -16,7 +16,6 @@
#endif // WEBRTC_WIN
#include "webrtc/base/checks.h"
-#include "webrtc/base/fileutils.h"
#include "webrtc/base/logging.h"
#include "webrtc/base/pathutils.h"
#include "webrtc/base/stringutils.h"
diff --git a/webrtc/system_wrappers/include/stringize_macros.h b/webrtc/base/stringize_macros.h
similarity index 86%
rename from webrtc/system_wrappers/include/stringize_macros.h
rename to webrtc/base/stringize_macros.h
index 9c8e7e9..7e2f44d 100644
--- a/webrtc/system_wrappers/include/stringize_macros.h
+++ b/webrtc/base/stringize_macros.h
@@ -15,8 +15,8 @@
// symbols (or their output) and manipulating preprocessor symbols
// that define strings.
-#ifndef WEBRTC_SYSTEM_WRAPPERS_INCLUDE_STRINGIZE_MACROS_H_
-#define WEBRTC_SYSTEM_WRAPPERS_INCLUDE_STRINGIZE_MACROS_H_
+#ifndef WEBRTC_BASE_STRINGIZE_MACROS_H_
+#define WEBRTC_BASE_STRINGIZE_MACROS_H_
// This is not very useful as it does not expand defined symbols if
// called directly. Use its counterpart without the _NO_EXPANSION
@@ -35,4 +35,4 @@
// STRINGIZE(B(y)) produces "myobj->FunctionCall(y)"
#define STRINGIZE(x) STRINGIZE_NO_EXPANSION(x)
-#endif // WEBRTC_SYSTEM_WRAPPERS_INCLUDE_STRINGIZE_MACROS_H_
+#endif // WEBRTC_BASE_STRINGIZE_MACROS_H_
diff --git a/webrtc/system_wrappers/source/stringize_macros_unittest.cc b/webrtc/base/stringize_macros_unittest.cc
similarity index 94%
rename from webrtc/system_wrappers/source/stringize_macros_unittest.cc
rename to webrtc/base/stringize_macros_unittest.cc
index 8b103c5..d0ba113 100644
--- a/webrtc/system_wrappers/source/stringize_macros_unittest.cc
+++ b/webrtc/base/stringize_macros_unittest.cc
@@ -8,7 +8,7 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#include "webrtc/system_wrappers/include/stringize_macros.h"
+#include "webrtc/base/stringize_macros.h"
#include "webrtc/test/gtest.h"
diff --git a/webrtc/common_audio/resampler/sinc_resampler_unittest.cc b/webrtc/common_audio/resampler/sinc_resampler_unittest.cc
index 82546d0..990580d 100644
--- a/webrtc/common_audio/resampler/sinc_resampler_unittest.cc
+++ b/webrtc/common_audio/resampler/sinc_resampler_unittest.cc
@@ -19,11 +19,11 @@
#include <algorithm>
#include <memory>
+#include "webrtc/base/stringize_macros.h"
#include "webrtc/base/timeutils.h"
#include "webrtc/common_audio/resampler/sinc_resampler.h"
#include "webrtc/common_audio/resampler/sinusoidal_linear_chirp_source.h"
#include "webrtc/system_wrappers/include/cpu_features_wrapper.h"
-#include "webrtc/system_wrappers/include/stringize_macros.h"
#include "webrtc/test/gmock.h"
#include "webrtc/test/gtest.h"
diff --git a/webrtc/modules/audio_coding/BUILD.gn b/webrtc/modules/audio_coding/BUILD.gn
index 1867d93..f50cf82 100644
--- a/webrtc/modules/audio_coding/BUILD.gn
+++ b/webrtc/modules/audio_coding/BUILD.gn
@@ -1621,6 +1621,7 @@
"..:module_api",
"../..:webrtc_common",
"../../base:rtc_base_approved",
+ "../../base:rtc_base_tests_utils",
"../../common_audio",
"../../test:rtp_test_utils",
"../rtp_rtcp",
diff --git a/webrtc/system_wrappers/BUILD.gn b/webrtc/system_wrappers/BUILD.gn
index 6a056c2..325c016 100644
--- a/webrtc/system_wrappers/BUILD.gn
+++ b/webrtc/system_wrappers/BUILD.gn
@@ -27,7 +27,6 @@
"include/rw_lock_wrapper.h",
"include/sleep.h",
"include/static_instance.h",
- "include/stringize_macros.h",
"include/timestamp_extrapolator.h",
"include/trace.h",
"source/aligned_malloc.cc",
@@ -211,7 +210,6 @@
"source/metrics_unittest.cc",
"source/ntp_time_unittest.cc",
"source/rtp_to_ntp_estimator_unittest.cc",
- "source/stringize_macros_unittest.cc",
]
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
diff --git a/webrtc/test/BUILD.gn b/webrtc/test/BUILD.gn
index c696979..40ffc38 100644
--- a/webrtc/test/BUILD.gn
+++ b/webrtc/test/BUILD.gn
@@ -22,12 +22,17 @@
":field_trial",
":rtp_test_utils",
":test_common",
- ":test_main",
":test_renderer",
":test_support",
- ":test_support_unittests",
":video_test_common",
]
+
+ if (!build_with_chromium) {
+ deps += [
+ ":test_main",
+ ":test_support_unittests",
+ ]
+ }
}
rtc_source_set("video_test_common") {
@@ -96,23 +101,50 @@
]
}
-test_support_unittests_resources = [
- "//resources/foreman_cif_short.yuv",
- "//resources/video_coding/frame-ethernet-ii.pcap",
- "//resources/video_coding/frame-loopback.pcap",
- "//resources/video_coding/pltype103.rtp",
- "//resources/video_coding/pltype103_header_only.rtp",
- "//resources/video_coding/ssrcs-2.pcap",
- "//resources/video_coding/ssrcs-3.pcap",
-]
+rtc_source_set("test_support") {
+ testonly = true
-if (is_ios) {
- bundle_data("test_support_unittests_bundle_data") {
- testonly = true
- sources = test_support_unittests_resources
- outputs = [
- "{{bundle_resources_dir}}/{{source_file_part}}",
- ]
+ sources = [
+ "gmock.h",
+ "gtest.h",
+ "testsupport/packet_reader.cc",
+ "testsupport/packet_reader.h",
+ "testsupport/perf_test.cc",
+ "testsupport/perf_test.h",
+ "testsupport/trace_to_stderr.cc",
+ "testsupport/trace_to_stderr.h",
+ "testsupport/unittest_utils.h",
+ ]
+
+ deps = [
+ "..:webrtc_common",
+ "../base:gtest_prod",
+ "../base:rtc_base_approved",
+ "../common_video",
+ "../system_wrappers",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+
+ public_deps = [
+ ":fileutils",
+ ]
+
+ if (!build_with_chromium && is_clang) {
+ # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+ suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
+ }
+
+ if (is_android) {
+ deps += [ "//base:base" ]
+ }
+
+ if (is_ios && !build_with_chromium) {
+ deps += [ "//webrtc/sdk:rtc_sdk_common_objc" ]
+ }
+
+ if (rtc_use_memcheck) {
+ data = valgrind_webrtc_dependencies
}
}
@@ -186,52 +218,36 @@
}
}
- rtc_source_set("test_support") {
+ rtc_source_set("test_support_isolated_output") {
testonly = true
-
sources = [
- "gmock.h",
- "gtest.h",
"testsupport/isolated_output.cc",
"testsupport/isolated_output.h",
- "testsupport/packet_reader.cc",
- "testsupport/packet_reader.h",
- "testsupport/perf_test.cc",
- "testsupport/perf_test.h",
- "testsupport/trace_to_stderr.cc",
- "testsupport/trace_to_stderr.h",
- "testsupport/unittest_utils.h",
]
-
deps = [
- "../base:gtest_prod",
+ ":fileutils",
"../base:rtc_base_approved",
- "../common_video",
- "../system_wrappers",
- "//testing/gmock",
- "//testing/gtest",
"//third_party/gflags",
]
+ }
- public_deps = [
- ":fileutils",
- ]
+ test_support_unittests_resources = [
+ "//resources/foreman_cif_short.yuv",
+ "//resources/video_coding/frame-ethernet-ii.pcap",
+ "//resources/video_coding/frame-loopback.pcap",
+ "//resources/video_coding/pltype103.rtp",
+ "//resources/video_coding/pltype103_header_only.rtp",
+ "//resources/video_coding/ssrcs-2.pcap",
+ "//resources/video_coding/ssrcs-3.pcap",
+ ]
- if (!build_with_chromium && is_clang) {
- # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
- suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
- }
-
- if (is_android) {
- deps += [ "//base:base" ]
- }
-
- if (is_ios) {
- deps += [ "//webrtc/sdk:rtc_sdk_common_objc" ]
- }
-
- if (rtc_use_memcheck) {
- data = valgrind_webrtc_dependencies
+ if (is_ios) {
+ bundle_data("test_support_unittests_bundle_data") {
+ testonly = true
+ sources = test_support_unittests_resources
+ outputs = [
+ "{{bundle_resources_dir}}/{{source_file_part}}",
+ ]
}
}
@@ -281,6 +297,7 @@
":fileutils_unittests",
":test_common",
":test_main",
+ ":test_support_isolated_output",
":video_test_common",
":video_test_support",
"../modules/video_capture",
@@ -423,7 +440,7 @@
"//testing/gmock",
"//testing/gtest",
]
- if (!is_android) {
+ if (!is_android && !build_with_chromium) {
deps += [ "../modules/video_capture:video_capture_internal_impl" ]
}
}
diff --git a/webrtc/test/fuzzers/BUILD.gn b/webrtc/test/fuzzers/BUILD.gn
index 92603eb..9153cbc 100644
--- a/webrtc/test/fuzzers/BUILD.gn
+++ b/webrtc/test/fuzzers/BUILD.gn
@@ -257,6 +257,8 @@
"neteq_rtp_fuzzer.cc",
]
deps = [
+ "../../base:rtc_base_approved",
+ "../../base:rtc_base_tests_utils",
"../../modules/audio_coding:neteq",
"../../modules/audio_coding:neteq_tools_minimal",
"../../modules/audio_coding:pcm16b",
diff --git a/webrtc/voice_engine/BUILD.gn b/webrtc/voice_engine/BUILD.gn
index be6faab..1d15b7f 100644
--- a/webrtc/voice_engine/BUILD.gn
+++ b/webrtc/voice_engine/BUILD.gn
@@ -186,6 +186,7 @@
":file_player",
":voice_engine",
"../base:rtc_base_approved",
+ "../base:rtc_base_tests_utils",
"../modules:module_api",
"../test:test_common",
"//testing/gmock",