diff options
author | henrika <henrika@chromium.org> | 2015-06-16 10:04:20 +0200 |
---|---|---|
committer | henrika <henrika@chromium.org> | 2015-06-16 08:04:24 +0000 |
commit | 1d34fe979c52e5826c5c8162759b0167b2607836 (patch) | |
tree | dfb4e0109dfe95a441203893a20ea440df4a13b2 | |
parent | b02af18c5cb6d6c3def7f44d27a63068360f4f29 (diff) | |
download | webrtc-1d34fe979c52e5826c5c8162759b0167b2607836.tar.gz |
Adds support for webrtc::test::ResourcePath on iOS
BUG=webrtc:4752
R=tkchin@webrtc.org
Review URL: https://codereview.webrtc.org/1178843002.
Cr-Commit-Position: refs/heads/master@{#9445}
15 files changed, 146 insertions, 67 deletions
diff --git a/talk/app/webrtc/objc/RTCDataChannel.mm b/talk/app/webrtc/objc/RTCDataChannel.mm index 94d22d2595..4fb03c284e 100644 --- a/talk/app/webrtc/objc/RTCDataChannel.mm +++ b/talk/app/webrtc/objc/RTCDataChannel.mm @@ -57,7 +57,8 @@ class RTCDataChannelObserver : public DataChannelObserver { }; } -// TODO(tkchin): move to shared location +// TODO(henrika): move to shared location. +// See https://code.google.com/p/webrtc/issues/detail?id=4773 for details. NSString* NSStringFromStdString(const std::string& stdString) { // std::string may contain null termination character so we construct // using length. diff --git a/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc b/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc index 068d2e1295..0d1c670290 100644 --- a/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc +++ b/webrtc/modules/audio_coding/codecs/cng/cng_unittest.cc @@ -11,7 +11,6 @@ #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" #include "webrtc_cng.h" namespace webrtc { @@ -62,14 +61,14 @@ void CngTest::SetUp() { } // Test failing Create. -TEST_F(CngTest, DISABLED_ON_IOS(CngCreateFail)) { +TEST_F(CngTest, CngCreateFail) { // Test to see that an invalid pointer is caught. EXPECT_EQ(-1, WebRtcCng_CreateEnc(NULL)); EXPECT_EQ(-1, WebRtcCng_CreateDec(NULL)); } // Test normal Create. -TEST_F(CngTest, DISABLED_ON_IOS(CngCreate)) { +TEST_F(CngTest, CngCreate) { EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_)); EXPECT_EQ(0, WebRtcCng_CreateDec(&cng_dec_inst_)); EXPECT_TRUE(cng_enc_inst_ != NULL); @@ -80,7 +79,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngCreate)) { } // Create CNG encoder, init with faulty values, free CNG encoder. -TEST_F(CngTest, DISABLED_ON_IOS(CngInitFail)) { +TEST_F(CngTest, CngInitFail) { // Create encoder memory. EXPECT_EQ(0, WebRtcCng_CreateEnc(&cng_enc_inst_)); @@ -98,7 +97,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngInitFail)) { EXPECT_EQ(0, WebRtcCng_FreeEnc(cng_enc_inst_)); } -TEST_F(CngTest, DISABLED_ON_IOS(CngEncode)) { +TEST_F(CngTest, CngEncode) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -150,7 +149,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngEncode)) { } // Encode Cng with too long input vector. -TEST_F(CngTest, DISABLED_ON_IOS(CngEncodeTooLong)) { +TEST_F(CngTest, CngEncodeTooLong) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -169,7 +168,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngEncodeTooLong)) { } // Call encode without calling init. -TEST_F(CngTest, DISABLED_ON_IOS(CngEncodeNoInit)) { +TEST_F(CngTest, CngEncodeNoInit) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -186,7 +185,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngEncodeNoInit)) { } // Update SID parameters, for both 9 and 16 parameters. -TEST_F(CngTest, DISABLED_ON_IOS(CngUpdateSid)) { +TEST_F(CngTest, CngUpdateSid) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -223,7 +222,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngUpdateSid)) { } // Update SID parameters, with wrong parameters or without calling decode. -TEST_F(CngTest, DISABLED_ON_IOS(CngUpdateSidErroneous)) { +TEST_F(CngTest, CngUpdateSidErroneous) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -259,7 +258,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngUpdateSidErroneous)) { } // Test to generate cng data, by forcing SID. Both normal and faulty condition. -TEST_F(CngTest, DISABLED_ON_IOS(CngGenerate)) { +TEST_F(CngTest, CngGenerate) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t out_data[640]; int16_t number_bytes; @@ -293,7 +292,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngGenerate)) { } // Test automatic SID. -TEST_F(CngTest, DISABLED_ON_IOS(CngAutoSid)) { +TEST_F(CngTest, CngAutoSid) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; @@ -320,7 +319,7 @@ TEST_F(CngTest, DISABLED_ON_IOS(CngAutoSid)) { } // Test automatic SID, with very short interval. -TEST_F(CngTest, DISABLED_ON_IOS(CngAutoSidShort)) { +TEST_F(CngTest, CngAutoSidShort) { uint8_t sid_data[WEBRTC_CNG_MAX_LPC_ORDER + 1]; int16_t number_bytes; diff --git a/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc b/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc index 73efee1280..a751c24792 100644 --- a/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc +++ b/webrtc/modules/audio_coding/codecs/isac/main/source/isac_unittest.cc @@ -12,7 +12,6 @@ #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/modules/audio_coding/codecs/isac/main/interface/isac.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" struct WebRtcISACStruct; @@ -55,24 +54,24 @@ void IsacTest::SetUp() { } // Test failing Create. -TEST_F(IsacTest, DISABLED_ON_IOS(IsacCreateFail)) { +TEST_F(IsacTest, IsacCreateFail) { // Test to see that an invalid pointer is caught. EXPECT_EQ(-1, WebRtcIsac_Create(NULL)); } // Test failing Free. -TEST_F(IsacTest, DISABLED_ON_IOS(IsacFreeFail)) { +TEST_F(IsacTest, IsacFreeFail) { // Test to see that free function doesn't crash. EXPECT_EQ(0, WebRtcIsac_Free(NULL)); } // Test normal Create and Free. -TEST_F(IsacTest, DISABLED_ON_IOS(IsacCreateFree)) { +TEST_F(IsacTest, IsacCreateFree) { EXPECT_EQ(0, WebRtcIsac_Create(&isac_codec_)); EXPECT_TRUE(isac_codec_ != NULL); EXPECT_EQ(0, WebRtcIsac_Free(isac_codec_));} -TEST_F(IsacTest, DISABLED_ON_IOS(IsacUpdateBWE)) { +TEST_F(IsacTest, IsacUpdateBWE) { // Create encoder memory. EXPECT_EQ(0, WebRtcIsac_Create(&isac_codec_)); diff --git a/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc b/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc index 028d2ec544..e218a6baa5 100644 --- a/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc +++ b/webrtc/modules/audio_coding/codecs/opus/opus_unittest.cc @@ -14,7 +14,6 @@ #include "webrtc/modules/audio_coding/codecs/opus/opus_inst.h" #include "webrtc/modules/audio_coding/neteq/tools/audio_loop.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" namespace webrtc { @@ -248,7 +247,7 @@ void OpusTest::TestDtxEffect(bool dtx) { } // Test failing Create. -TEST(OpusTest, DISABLED_ON_IOS(OpusCreateFail)) { +TEST(OpusTest, OpusCreateFail) { WebRtcOpusEncInst* opus_encoder; WebRtcOpusDecInst* opus_decoder; @@ -265,14 +264,14 @@ TEST(OpusTest, DISABLED_ON_IOS(OpusCreateFail)) { } // Test failing Free. -TEST(OpusTest, DISABLED_ON_IOS(OpusFreeFail)) { +TEST(OpusTest, OpusFreeFail) { // Test to see that an invalid pointer is caught. EXPECT_EQ(-1, WebRtcOpus_EncoderFree(NULL)); EXPECT_EQ(-1, WebRtcOpus_DecoderFree(NULL)); } // Test normal Create and Free. -TEST_P(OpusTest, DISABLED_ON_IOS(OpusCreateFree)) { +TEST_P(OpusTest, OpusCreateFree) { EXPECT_EQ(0, WebRtcOpus_EncoderCreate(&opus_encoder_, channels_, application_)); @@ -284,7 +283,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusCreateFree)) { EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusEncodeDecode)) { +TEST_P(OpusTest, OpusEncodeDecode) { PrepareSpeechData(channels_, 20, 20); // Create encoder memory. @@ -322,7 +321,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusEncodeDecode)) { EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusSetBitRate)) { +TEST_P(OpusTest, OpusSetBitRate) { // Test without creating encoder memory. EXPECT_EQ(-1, WebRtcOpus_SetBitRate(opus_encoder_, 60000)); @@ -358,7 +357,7 @@ TEST_P(OpusTest, OpusSetComplexity) { // Encode and decode one frame, initialize the decoder and // decode once more. -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDecodeInit)) { +TEST_P(OpusTest, OpusDecodeInit) { PrepareSpeechData(channels_, 20, 20); // Create encoder memory. @@ -388,7 +387,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusDecodeInit)) { EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusEnableDisableFec)) { +TEST_P(OpusTest, OpusEnableDisableFec) { // Test without creating encoder memory. EXPECT_EQ(-1, WebRtcOpus_EnableFec(opus_encoder_)); EXPECT_EQ(-1, WebRtcOpus_DisableFec(opus_encoder_)); @@ -405,7 +404,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusEnableDisableFec)) { EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusEnableDisableDtx)) { +TEST_P(OpusTest, OpusEnableDisableDtx) { // Test without creating encoder memory. EXPECT_EQ(-1, WebRtcOpus_EnableDtx(opus_encoder_)); EXPECT_EQ(-1, WebRtcOpus_DisableDtx(opus_encoder_)); @@ -439,15 +438,15 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusEnableDisableDtx)) { EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDtxOff)) { +TEST_P(OpusTest, OpusDtxOff) { TestDtxEffect(false); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDtxOn)) { +TEST_P(OpusTest, OpusDtxOn) { TestDtxEffect(true); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusSetPacketLossRate)) { +TEST_P(OpusTest, OpusSetPacketLossRate) { // Test without creating encoder memory. EXPECT_EQ(-1, WebRtcOpus_SetPacketLossRate(opus_encoder_, 50)); @@ -464,7 +463,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusSetPacketLossRate)) { EXPECT_EQ(0, WebRtcOpus_EncoderFree(opus_encoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusSetMaxPlaybackRate)) { +TEST_P(OpusTest, OpusSetMaxPlaybackRate) { // Test without creating encoder memory. EXPECT_EQ(-1, WebRtcOpus_SetMaxPlaybackRate(opus_encoder_, 20000)); @@ -489,7 +488,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusSetMaxPlaybackRate)) { } // Test PLC. -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDecodePlc)) { +TEST_P(OpusTest, OpusDecodePlc) { PrepareSpeechData(channels_, 20, 20); // Create encoder memory. @@ -526,7 +525,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusDecodePlc)) { } // Duration estimation. -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDurationEstimation)) { +TEST_P(OpusTest, OpusDurationEstimation) { PrepareSpeechData(channels_, 20, 20); // Create. @@ -560,7 +559,7 @@ TEST_P(OpusTest, DISABLED_ON_IOS(OpusDurationEstimation)) { EXPECT_EQ(0, WebRtcOpus_DecoderFree(opus_decoder_)); } -TEST_P(OpusTest, DISABLED_ON_IOS(OpusDecodeRepacketized)) { +TEST_P(OpusTest, OpusDecodeRepacketized) { const int kPackets = 6; PrepareSpeechData(channels_, 20, 20 * kPackets); diff --git a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc index e5fcee3cc4..eea51a3489 100644 --- a/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc +++ b/webrtc/modules/audio_coding/main/acm2/audio_coding_module_unittest.cc @@ -503,18 +503,12 @@ class AcmIsacMtTest : public AudioCodingModuleMtTest { test::AudioLoop audio_loop_; }; -#if defined(WEBRTC_IOS) -// See https://code.google.com/p/webrtc/issues/detail?id=4752 for details. -#define MAYBE_DoTest DISABLED_DoTest -#else -#define MAYBE_DoTest DoTest -#endif -TEST_F(AcmIsacMtTest, MAYBE_DoTest) { +TEST_F(AcmIsacMtTest, DoTest) { EXPECT_EQ(kEventSignaled, RunTest()); } -// Disabling all of these tests on iOS until file support has been added. -// See https://code.google.com/p/webrtc/issues/detail?id=4752 for details. +// Disabling all of these tests on iOS for now. +// See https://code.google.com/p/webrtc/issues/detail?id=4768 for details. #if !defined(WEBRTC_IOS) class AcmReceiverBitExactness : public ::testing::Test { diff --git a/webrtc/modules/audio_coding/neteq/audio_classifier_unittest.cc b/webrtc/modules/audio_coding/neteq/audio_classifier_unittest.cc index 188f727c46..e4db3a3c2a 100644 --- a/webrtc/modules/audio_coding/neteq/audio_classifier_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/audio_classifier_unittest.cc @@ -18,7 +18,6 @@ #include "testing/gtest/include/gtest/gtest.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" namespace webrtc { @@ -61,13 +60,13 @@ void RunAnalysisTest(const std::string& audio_filename, fclose(data_file); } -TEST(AudioClassifierTest, DISABLED_ON_IOS(DoAnalysisMono)) { +TEST(AudioClassifierTest, DoAnalysisMono) { RunAnalysisTest(test::ResourcePath("short_mixed_mono_48", "pcm"), test::ResourcePath("short_mixed_mono_48", "dat"), 1); } -TEST(AudioClassifierTest, DISABLED_ON_IOS(DoAnalysisStereo)) { +TEST(AudioClassifierTest, DoAnalysisStereo) { RunAnalysisTest(test::ResourcePath("short_mixed_stereo_48", "pcm"), test::ResourcePath("short_mixed_stereo_48", "dat"), 2); diff --git a/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc index bf68b3b8e2..6f57a4ae6b 100644 --- a/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/neteq_external_decoder_unittest.cc @@ -17,7 +17,6 @@ #include "webrtc/modules/audio_coding/neteq/tools/neteq_external_decoder_test.h" #include "webrtc/modules/audio_coding/neteq/tools/rtp_generator.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" namespace webrtc { @@ -234,7 +233,7 @@ class NetEqExternalVsInternalDecoderTest : public NetEqExternalDecoderUnitTest, int16_t output_[kMaxBlockSize]; }; -TEST_F(NetEqExternalVsInternalDecoderTest, DISABLED_ON_IOS(RunTest)) { +TEST_F(NetEqExternalVsInternalDecoderTest, RunTest) { RunTest(100); // Run 100 laps @ 10 ms each in the test loop. } @@ -329,7 +328,7 @@ class LargeTimestampJumpTest : public NetEqExternalDecoderUnitTest, int16_t output_[kMaxBlockSize]; }; -TEST_F(LargeTimestampJumpTest, DISABLED_ON_IOS(JumpLongerThanHalfRange)) { +TEST_F(LargeTimestampJumpTest, JumpLongerThanHalfRange) { // Set the timestamp series to start at 2880, increase to 7200, then jump to // 2869342376. The sequence numbers start at 42076 and increase by 1 for each // packet, also when the timestamp jumps. @@ -353,8 +352,7 @@ TEST_F(LargeTimestampJumpTest, DISABLED_ON_IOS(JumpLongerThanHalfRange)) { EXPECT_EQ(kRecovered, test_state_); } -TEST_F(LargeTimestampJumpTest, - DISABLED_ON_IOS(JumpLongerThanHalfRangeAndWrap)) { +TEST_F(LargeTimestampJumpTest, JumpLongerThanHalfRangeAndWrap) { // Make a jump larger than half the 32-bit timestamp range. Set the start // timestamp such that the jump will result in a wrap around. static const uint16_t kStartSeqeunceNumber = 42076; @@ -413,7 +411,7 @@ class ShortTimestampJumpTest : public LargeTimestampJumpTest { } }; -TEST_F(ShortTimestampJumpTest, DISABLED_ON_IOS(JumpShorterThanHalfRange)) { +TEST_F(ShortTimestampJumpTest, JumpShorterThanHalfRange) { // Make a jump shorter than half the 32-bit timestamp range. Set the start // timestamp such that the jump will not result in a wrap around. static const uint16_t kStartSeqeunceNumber = 42076; @@ -437,8 +435,7 @@ TEST_F(ShortTimestampJumpTest, DISABLED_ON_IOS(JumpShorterThanHalfRange)) { EXPECT_EQ(kRecovered, test_state_); } -TEST_F(ShortTimestampJumpTest, - DISABLED_ON_IOS(JumpShorterThanHalfRangeAndWrap)) { +TEST_F(ShortTimestampJumpTest, JumpShorterThanHalfRangeAndWrap) { // Make a jump shorter than half the 32-bit timestamp range. Set the start // timestamp such that the jump will result in a wrap around. static const uint16_t kStartSeqeunceNumber = 42076; diff --git a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc index 8a66262253..7137a685aa 100644 --- a/webrtc/modules/audio_coding/neteq/neteq_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/neteq_unittest.cc @@ -438,8 +438,6 @@ void NetEqDecodingTest::PopulateCng(int frame_index, *payload_len = 1; // Only noise level, no spectral parameters. } -// TODO(henrika): add support for IOS for all tests in this file. -// See https://code.google.com/p/webrtc/issues/detail?id=4752 for details. TEST_F(NetEqDecodingTest, DISABLED_ON_IOS(DISABLED_ON_ANDROID(TestBitExactness))) { const std::string input_rtp_file = webrtc::test::ProjectRootPath() + @@ -1056,19 +1054,19 @@ class NetEqBgnTestFade : public NetEqBgnTest { } }; -TEST_F(NetEqBgnTestOn, DISABLED_ON_IOS(RunTest)) { +TEST_F(NetEqBgnTestOn, RunTest) { CheckBgn(8000); CheckBgn(16000); CheckBgn(32000); } -TEST_F(NetEqBgnTestOff, DISABLED_ON_IOS(RunTest)) { +TEST_F(NetEqBgnTestOff, RunTest) { CheckBgn(8000); CheckBgn(16000); CheckBgn(32000); } -TEST_F(NetEqBgnTestFade, DISABLED_ON_IOS(RunTest)) { +TEST_F(NetEqBgnTestFade, RunTest) { CheckBgn(8000); CheckBgn(16000); CheckBgn(32000); diff --git a/webrtc/modules/audio_coding/neteq/time_stretch_unittest.cc b/webrtc/modules/audio_coding/neteq/time_stretch_unittest.cc index dda7cc7889..05385a1e3e 100644 --- a/webrtc/modules/audio_coding/neteq/time_stretch_unittest.cc +++ b/webrtc/modules/audio_coding/neteq/time_stretch_unittest.cc @@ -21,7 +21,6 @@ #include "webrtc/common_audio/signal_processing/include/signal_processing_library.h" #include "webrtc/modules/audio_coding/neteq/background_noise.h" #include "webrtc/modules/audio_coding/neteq/tools/input_audio_file.h" -#include "webrtc/test/testsupport/gtest_disable.h" #include "webrtc/test/testsupport/fileutils.h" namespace webrtc { @@ -109,7 +108,7 @@ class TimeStretchTest : public ::testing::Test { BackgroundNoise background_noise_; }; -TEST_F(TimeStretchTest, DISABLED_ON_IOS(Accelerate)) { +TEST_F(TimeStretchTest, Accelerate) { // TestAccelerate returns the total length change in samples. EXPECT_EQ(15268, TestAccelerate(100, false)); EXPECT_EQ(9, return_stats_[TimeStretch::kSuccess]); @@ -117,7 +116,7 @@ TEST_F(TimeStretchTest, DISABLED_ON_IOS(Accelerate)) { EXPECT_EQ(33, return_stats_[TimeStretch::kNoStretch]); } -TEST_F(TimeStretchTest, DISABLED_ON_IOS(AccelerateFastMode)) { +TEST_F(TimeStretchTest, AccelerateFastMode) { // TestAccelerate returns the total length change in samples. EXPECT_EQ(21400, TestAccelerate(100, true)); EXPECT_EQ(31, return_stats_[TimeStretch::kSuccess]); diff --git a/webrtc/modules/audio_processing/agc/histogram_unittest.cc b/webrtc/modules/audio_processing/agc/histogram_unittest.cc index 0b05ca9785..d41aacafd8 100644 --- a/webrtc/modules/audio_processing/agc/histogram_unittest.cc +++ b/webrtc/modules/audio_processing/agc/histogram_unittest.cc @@ -17,7 +17,6 @@ #include "gtest/gtest.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" #include "webrtc/modules/audio_processing/agc/utility.h" namespace webrtc { @@ -90,13 +89,13 @@ void HistogramTest::RunTest(bool enable_circular_buff, const char* filename) { fclose(in_file); } -TEST_F(HistogramTest, DISABLED_ON_IOS(ActiveCircularBuffer)) { +TEST_F(HistogramTest, ActiveCircularBuffer) { RunTest(true, test::ResourcePath("audio_processing/agc/agc_with_circular_buffer", "dat").c_str()); } -TEST_F(HistogramTest, DISABLED_ON_IOS(InactiveCircularBuffer)) { +TEST_F(HistogramTest, InactiveCircularBuffer) { RunTest(false, test::ResourcePath("audio_processing/agc/agc_no_circular_buffer", "dat").c_str()); diff --git a/webrtc/modules/audio_processing/agc/pitch_based_vad_unittest.cc b/webrtc/modules/audio_processing/agc/pitch_based_vad_unittest.cc index 6526019edc..3ec0baac95 100644 --- a/webrtc/modules/audio_processing/agc/pitch_based_vad_unittest.cc +++ b/webrtc/modules/audio_processing/agc/pitch_based_vad_unittest.cc @@ -16,11 +16,10 @@ #include "gtest/gtest.h" #include "webrtc/test/testsupport/fileutils.h" -#include "webrtc/test/testsupport/gtest_disable.h" namespace webrtc { -TEST(PitchBasedVadTest, DISABLED_ON_IOS(VoicingProbabilityTest)) { +TEST(PitchBasedVadTest, VoicingProbabilityTest) { std::string spectral_peak_file_name = test::ResourcePath( "audio_processing/agc/agc_spectral_peak", "dat"); FILE* spectral_peak_file = fopen(spectral_peak_file_name.c_str(), "rb"); diff --git a/webrtc/modules/modules.gyp b/webrtc/modules/modules.gyp index 753c800b0e..e29f683283 100644 --- a/webrtc/modules/modules.gyp +++ b/webrtc/modules/modules.gyp @@ -345,6 +345,23 @@ 'audio_device/android/fine_audio_buffer_unittest.cc', ], }], + ['OS=="ios"', { + 'mac_bundle_resources': [ + '<(DEPTH)/resources/audio_coding/speech_mono_16kHz.pcm', + '<(DEPTH)/resources/audio_coding/testfile32kHz.pcm', + '<(DEPTH)/resources/audio_coding/teststereo32kHz.pcm', + '<(DEPTH)/resources/audio_processing/agc/agc_no_circular_buffer.dat', + '<(DEPTH)/resources/audio_processing/agc/agc_pitch_gain.dat', + '<(DEPTH)/resources/audio_processing/agc/agc_pitch_lag.dat', + '<(DEPTH)/resources/audio_processing/agc/agc_spectral_peak.dat', + '<(DEPTH)/resources/audio_processing/agc/agc_voicing_prob.dat', + '<(DEPTH)/resources/audio_processing/agc/agc_with_circular_buffer.dat', + '<(DEPTH)/resources/short_mixed_mono_48.dat', + '<(DEPTH)/resources/short_mixed_mono_48.pcm', + '<(DEPTH)/resources/short_mixed_stereo_48.dat', + '<(DEPTH)/resources/short_mixed_stereo_48.pcm', + ], + }], ], # Disable warnings to enable Win64 build, issue 1323. 'msvs_disabled_warnings': [ diff --git a/webrtc/test/test.gyp b/webrtc/test/test.gyp index ea831a1471..a19288eaed 100644 --- a/webrtc/test/test.gyp +++ b/webrtc/test/test.gyp @@ -124,6 +124,7 @@ 'testsupport/frame_writer.cc', 'testsupport/frame_writer.h', 'testsupport/gtest_disable.h', + 'testsupport/iosfileutils.mm', 'testsupport/mock/mock_frame_reader.h', 'testsupport/mock/mock_frame_writer.h', 'testsupport/packet_reader.cc', @@ -133,6 +134,13 @@ 'testsupport/trace_to_stderr.cc', 'testsupport/trace_to_stderr.h', ], + 'conditions': [ + ['OS=="ios"', { + 'xcode_settings': { + 'CLANG_ENABLE_OBJC_ARC': 'YES', + }, + }], + ], }, { # Depend on this target when you want to have test_support but also the diff --git a/webrtc/test/testsupport/fileutils.cc b/webrtc/test/testsupport/fileutils.cc index 8301e77165..c29e502433 100644 --- a/webrtc/test/testsupport/fileutils.cc +++ b/webrtc/test/testsupport/fileutils.cc @@ -41,6 +41,11 @@ namespace webrtc { namespace test { +#if defined(WEBRTC_IOS) +// Defined in iosfileutils.mm. No header file to discourage use elsewhere. +std::string IOSResourcePath(std::string name, std::string extension); +#endif + namespace { #ifdef WIN32 @@ -57,7 +62,9 @@ const char* kProjectRootFileName = "DEPS"; const char* kOutputDirName = "out"; const char* kFallbackPath = "./"; #endif +#if !defined(WEBRTC_IOS) const char* kResourcesDirName = "resources"; +#endif char relative_dir_path[FILENAME_MAX]; bool relative_dir_path_set = false; @@ -205,6 +212,9 @@ bool CreateDir(std::string directory_name) { } std::string ResourcePath(std::string name, std::string extension) { +#if defined(WEBRTC_IOS) + return IOSResourcePath(name, extension); +#else std::string platform = "win"; #ifdef WEBRTC_LINUX platform = "linux"; @@ -239,6 +249,7 @@ std::string ResourcePath(std::string name, std::string extension) { // Fall back on name without architecture or platform. return resources_path + name + "." + extension; +#endif // defined (WEBRTC_IOS) } size_t GetFileSize(std::string filename) { diff --git a/webrtc/test/testsupport/iosfileutils.mm b/webrtc/test/testsupport/iosfileutils.mm new file mode 100644 index 0000000000..f3615ed681 --- /dev/null +++ b/webrtc/test/testsupport/iosfileutils.mm @@ -0,0 +1,60 @@ +/* + * Copyright 2015 The WebRTC Project Authors. All rights reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#if defined(WEBRTC_IOS) + +#if !defined(__has_feature) || !__has_feature(objc_arc) +#error "This file requires ARC support." +#endif + +#import <Foundation/Foundation.h> +#include <string.h> + +#include "webrtc/base/checks.h" +#include "webrtc/typedefs.h" + +namespace webrtc { +namespace test { + +// TODO(henrika): move to shared location. +// See https://code.google.com/p/webrtc/issues/detail?id=4773 for details. +NSString* NSStringFromStdString(const std::string& stdString) { + // std::string may contain null termination character so we construct + // using length. + return [[NSString alloc] initWithBytes:stdString.data() + length:stdString.length() + encoding:NSUTF8StringEncoding]; +} + +std::string StdStringFromNSString(NSString* nsString) { + NSData* charData = [nsString dataUsingEncoding:NSUTF8StringEncoding]; + return std::string(reinterpret_cast<const char*>([charData bytes]), + [charData length]); +} + +// For iOS, resource files are added to the application bundle in the root +// and not in separate folders as is the case for other platforms. This method +// therefore removes any prepended folders and uses only the actual file name. +std::string IOSResourcePath(std::string name, std::string extension) { + @autoreleasepool { + NSString* path = NSStringFromStdString(name); + NSString* fileName = path.lastPathComponent; + NSString* fileType = NSStringFromStdString(extension); + // Get full pathname for the resource identified by the name and extension. + NSString* pathString = [[NSBundle mainBundle] pathForResource:fileName + ofType:fileType]; + return StdStringFromNSString(pathString); + } +} + +} // namespace test +} // namespace webrtc + +#endif // defined(WEBRTC_IOS) |