From 7054085e59c3123613cd0014bedb0fe91a56e26f Mon Sep 17 00:00:00 2001 From: mbonadei Date: Wed, 26 Apr 2017 00:28:08 -0700 Subject: [PATCH] Reland of Enable GN check for webrtc/base (patchset #3 id:230001 of https://codereview.webrtc.org/2838683002/ ) Reason for revert: Try to fix the webrtc/test/fuzzers issue and reland this CL because it contains lots of fixes for our BUILD.gn files. 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 # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=webrtc:6828, webrtc:3806, webrtc:7480 Review-Url: https://codereview.webrtc.org/2840453004 Cr-Commit-Position: refs/heads/master@{#17876} --- .gn | 1 + webrtc/base/BUILD.gn | 154 +++++++++------ webrtc/base/location.h | 2 +- webrtc/base/pathutils.cc | 1 - .../include => base}/stringize_macros.h | 6 +- .../stringize_macros_unittest.cc | 2 +- .../resampler/sinc_resampler_unittest.cc | 2 +- webrtc/modules/audio_coding/BUILD.gn | 187 +++++++++--------- webrtc/system_wrappers/BUILD.gn | 2 - webrtc/test/fuzzers/BUILD.gn | 3 +- webrtc/voice_engine/BUILD.gn | 1 + 11 files changed, 194 insertions(+), 167 deletions(-) rename webrtc/{system_wrappers/include => base}/stringize_macros.h (86%) rename webrtc/{system_wrappers/source => base}/stringize_macros_unittest.cc (95%) diff --git a/.gn b/.gn index f968276c32..a6b4af7280 100644 --- a/.gn +++ b/.gn @@ -24,6 +24,7 @@ secondary_source = "//build/secondary/" check_targets = [ "//webrtc/api/*", "//webrtc/audio/*", + "//webrtc/base/*", "//webrtc/call/*", "//webrtc/common_video/*", "//webrtc/common_audio/*", diff --git a/webrtc/base/BUILD.gn b/webrtc/base/BUILD.gn index a3ee03f4ba..2a17d923ad 100644 --- a/webrtc/base/BUILD.gn +++ b/webrtc/base/BUILD.gn @@ -92,6 +92,10 @@ source_set("protobuf_utils") { # 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 @@ rtc_static_library("rtc_base_approved") { "location.h", "md5.cc", "md5.h", - "md5digest.cc", - "md5digest.h", "mod_ops.h", "onetimeevent.h", "optional.cc", @@ -172,6 +174,7 @@ rtc_static_library("rtc_base_approved") { "string_to_number.h", "stringencode.cc", "stringencode.h", + "stringize_macros.h", "stringutils.cc", "stringutils.h", "swap_queue.h", @@ -655,78 +658,84 @@ rtc_source_set("gtest_prod") { ] } +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 = [ "unittest_main.cc", ] 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 @@ if (rtc_include_tests) { 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 @@ if (rtc_include_tests) { "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 @@ if (rtc_include_tests) { "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 @@ if (rtc_include_tests) { ] 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 @@ if (rtc_include_tests) { "numerics/percentile_filter_unittest.cc", ] deps = [ + ":rtc_base_approved", ":rtc_base_tests_main", ":rtc_numerics", + "../test:test_support", ] } @@ -939,6 +961,8 @@ if (rtc_include_tests) { } 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 a541bbef51..541be9ac14 100644 --- a/webrtc/base/location.h +++ b/webrtc/base/location.h @@ -13,7 +13,7 @@ #include -#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 75dabb53e4..30367743bf 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 9c8e7e9120..7e2f44da8a 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 95% rename from webrtc/system_wrappers/source/stringize_macros_unittest.cc rename to webrtc/base/stringize_macros_unittest.cc index 8b103c5d39..d0ba113d4d 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 82546d0360..990580dd2d 100644 --- a/webrtc/common_audio/resampler/sinc_resampler_unittest.cc +++ b/webrtc/common_audio/resampler/sinc_resampler_unittest.cc @@ -19,11 +19,11 @@ #include #include +#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 4a2fdcaf87..3d7cce2213 100644 --- a/webrtc/modules/audio_coding/BUILD.gn +++ b/webrtc/modules/audio_coding/BUILD.gn @@ -1130,6 +1130,101 @@ rtc_source_set("neteq_test_minimal") { ] } +config("neteq_unittest_tools_config") { + include_dirs = [ "tools" ] +} + +rtc_source_set("neteq_unittest_tools") { + testonly = true + sources = [ + "neteq/tools/audio_checksum.h", + "neteq/tools/audio_loop.cc", + "neteq/tools/audio_loop.h", + "neteq/tools/audio_sink.cc", + "neteq/tools/audio_sink.h", + "neteq/tools/constant_pcm_packet_source.cc", + "neteq/tools/constant_pcm_packet_source.h", + "neteq/tools/fake_decode_from_file.cc", + "neteq/tools/fake_decode_from_file.h", + "neteq/tools/input_audio_file.cc", + "neteq/tools/input_audio_file.h", + "neteq/tools/neteq_input.h", + "neteq/tools/neteq_replacement_input.cc", + "neteq/tools/neteq_replacement_input.h", + "neteq/tools/output_audio_file.h", + "neteq/tools/output_wav_file.h", + "neteq/tools/packet.cc", + "neteq/tools/packet.h", + "neteq/tools/packet_source.cc", + "neteq/tools/packet_source.h", + "neteq/tools/resample_input_audio_file.cc", + "neteq/tools/resample_input_audio_file.h", + "neteq/tools/rtp_file_source.cc", + "neteq/tools/rtp_file_source.h", + "neteq/tools/rtp_generator.cc", + "neteq/tools/rtp_generator.h", + ] + + public_configs = [ ":neteq_unittest_tools_config" ] + + 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" ] + } + + deps = [ + ":audio_encoder_interface", + ":pcm16b", + "../..:webrtc_common", + "../../api/audio_codecs:audio_codecs_api", + "../../base:rtc_base_approved", + "../../base:rtc_base_tests_utils", + "../../common_audio", + "../../test:rtp_test_utils", + "../rtp_rtcp", + ] + + public_deps = [ + ":neteq_test_minimal", + ] + + if (rtc_enable_protobuf) { + sources += [ + "neteq/tools/neteq_packet_source_input.cc", + "neteq/tools/neteq_packet_source_input.h", + ] + deps += [ ":rtc_event_log_source" ] + } +} + +if (rtc_enable_protobuf) { + rtc_static_library("rtc_event_log_source") { + testonly = true + + # TODO(kjellander): Remove (bugs.webrtc.org/6828) + # Needs call.h to be moved to webrtc/api first. + check_includes = false + + sources = [ + "neteq/tools/rtc_event_log_source.cc", + "neteq/tools/rtc_event_log_source.h", + ] + + 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" ] + } + + deps = [ + "../../base:rtc_base_approved", + "../../logging:rtc_event_log_parser", + ] + public_deps = [ + "../../logging:rtc_event_log_proto", + ] + } +} + if (rtc_include_tests) { group("audio_coding_tests") { testonly = true @@ -1400,32 +1495,6 @@ if (rtc_include_tests) { proto_out_dir = "webrtc/modules/audio_coding/neteq" } - rtc_static_library("rtc_event_log_source") { - testonly = true - - # TODO(kjellander): Remove (bugs.webrtc.org/6828) - # Needs call.h to be moved to webrtc/api first. - check_includes = false - - sources = [ - "neteq/tools/rtc_event_log_source.cc", - "neteq/tools/rtc_event_log_source.h", - ] - - 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" ] - } - - deps = [ - "../../base:rtc_base_approved", - "../../logging:rtc_event_log_parser", - ] - public_deps = [ - "../../logging:rtc_event_log_proto", - ] - } - rtc_test("neteq_rtpplay") { testonly = true defines = [] @@ -1543,72 +1612,6 @@ if (rtc_include_tests) { ] } - config("neteq_unittest_tools_config") { - include_dirs = [ "tools" ] - } - - rtc_source_set("neteq_unittest_tools") { - testonly = true - sources = [ - "neteq/tools/audio_checksum.h", - "neteq/tools/audio_loop.cc", - "neteq/tools/audio_loop.h", - "neteq/tools/audio_sink.cc", - "neteq/tools/audio_sink.h", - "neteq/tools/constant_pcm_packet_source.cc", - "neteq/tools/constant_pcm_packet_source.h", - "neteq/tools/fake_decode_from_file.cc", - "neteq/tools/fake_decode_from_file.h", - "neteq/tools/input_audio_file.cc", - "neteq/tools/input_audio_file.h", - "neteq/tools/neteq_input.h", - "neteq/tools/neteq_replacement_input.cc", - "neteq/tools/neteq_replacement_input.h", - "neteq/tools/output_audio_file.h", - "neteq/tools/output_wav_file.h", - "neteq/tools/packet.cc", - "neteq/tools/packet.h", - "neteq/tools/packet_source.cc", - "neteq/tools/packet_source.h", - "neteq/tools/resample_input_audio_file.cc", - "neteq/tools/resample_input_audio_file.h", - "neteq/tools/rtp_file_source.cc", - "neteq/tools/rtp_file_source.h", - "neteq/tools/rtp_generator.cc", - "neteq/tools/rtp_generator.h", - ] - - public_configs = [ ":neteq_unittest_tools_config" ] - - 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" ] - } - - deps = [ - ":audio_encoder_interface", - ":pcm16b", - "../..:webrtc_common", - "../../api/audio_codecs:audio_codecs_api", - "../../base:rtc_base_approved", - "../../common_audio", - "../../test:rtp_test_utils", - "../rtp_rtcp", - ] - - public_deps = [ - ":neteq_test_minimal", - ] - - if (rtc_enable_protobuf) { - sources += [ - "neteq/tools/neteq_packet_source_input.cc", - "neteq/tools/neteq_packet_source_input.h", - ] - deps += [ ":rtc_event_log_source" ] - } - } - rtc_source_set("neteq_test_tools") { testonly = true sources = [ diff --git a/webrtc/system_wrappers/BUILD.gn b/webrtc/system_wrappers/BUILD.gn index 6a056c2d9c..325c0166a0 100644 --- a/webrtc/system_wrappers/BUILD.gn +++ b/webrtc/system_wrappers/BUILD.gn @@ -27,7 +27,6 @@ rtc_static_library("system_wrappers") { "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 @@ if (rtc_include_tests) { "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/fuzzers/BUILD.gn b/webrtc/test/fuzzers/BUILD.gn index 74ea607ae2..9bc87857c5 100644 --- a/webrtc/test/fuzzers/BUILD.gn +++ b/webrtc/test/fuzzers/BUILD.gn @@ -257,8 +257,9 @@ webrtc_fuzzer_test("neteq_rtp_fuzzer") { "neteq_rtp_fuzzer.cc", ] deps = [ - "../../modules/audio_coding:neteq", + "../../base:rtc_base_approved", "../../modules/audio_coding:neteq_test_minimal", + "../../modules/audio_coding:neteq_unittest_tools", "../../modules/audio_coding:pcm16b", "../../modules/rtp_rtcp", ] diff --git a/webrtc/voice_engine/BUILD.gn b/webrtc/voice_engine/BUILD.gn index ca774f2800..40d9ed3bd8 100644 --- a/webrtc/voice_engine/BUILD.gn +++ b/webrtc/voice_engine/BUILD.gn @@ -181,6 +181,7 @@ if (rtc_include_tests) { ":file_player", ":voice_engine", "../base:rtc_base_approved", + "../base:rtc_base_tests_utils", "../test:test_common", "//testing/gmock", "//testing/gtest",