Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "media/base/android/media_codec_util.h" | |
| 6 #include "base/android/build_info.h" | |
| 7 #include "base/macros.h" | |
| 8 //#include "testing/gmock/include/gmock/gmock.h" | |
| 9 #include "testing/gtest/include/gtest/gtest.h" | |
| 10 | |
| 11 /* | |
| 12 using ::testing::_; | |
| 13 using ::testing::AtLeast; | |
| 14 using ::testing::Eq; | |
| 15 using ::testing::Field; | |
| 16 using ::testing::InSequence; | |
| 17 using ::testing::Mock; | |
| 18 using ::testing::Return; | |
| 19 using ::testing::SetArgPointee; | |
| 20 using ::testing::StrictMock; | |
| 21 */ | |
| 22 | |
| 23 namespace media { | |
| 24 | |
| 25 // These will come from mockable BuildInfo, once it exists. | |
| 26 using base::android::SDK_VERSION_JELLY_BEAN; | |
| 27 using base::android::SDK_VERSION_JELLY_BEAN_MR1; | |
| 28 using base::android::SDK_VERSION_JELLY_BEAN_MR2; | |
| 29 using base::android::SDK_VERSION_KITKAT; | |
| 30 using base::android::SDK_VERSION_LOLLIPOP; | |
| 31 using base::android::SDK_VERSION_LOLLIPOP_MR1; | |
| 32 using base::android::SDK_VERSION_MARSHMALLOW; | |
| 33 using base::android::SDK_VERSION_NOUGAT; | |
| 34 | |
| 35 class MediaCodecUtilTest : public testing::Test { | |
| 36 public: | |
| 37 MediaCodecUtilTest() {} | |
| 38 ~MediaCodecUtilTest() override {} | |
| 39 | |
| 40 public: | |
| 41 DISALLOW_COPY_AND_ASSIGN(MediaCodecUtilTest); | |
| 42 }; | |
| 43 | |
| 44 TEST_F(MediaCodecUtilTest, TestCodecAvailableIfNewerVersion) { | |
| 45 // Test models that should be available above some sdk level. | |
| 46 struct { | |
| 47 const char* model; | |
| 48 int last_bad_sdk; | |
| 49 } devices[] = {{"LGMS330", SDK_VERSION_LOLLIPOP_MR1}, | |
| 50 | |
| 51 {"GT-I9100", SDK_VERSION_KITKAT}, | |
| 52 {"GT-I9300", SDK_VERSION_KITKAT}, | |
| 53 {"GT-N7000", SDK_VERSION_KITKAT}, | |
| 54 {"GT-N7100", SDK_VERSION_KITKAT}, | |
| 55 {"A6600", SDK_VERSION_KITKAT}, | |
| 56 {"A6800", SDK_VERSION_KITKAT}, | |
| 57 {"GT-S7262", SDK_VERSION_KITKAT}, | |
| 58 {"GT-S5282", SDK_VERSION_KITKAT}, | |
| 59 {"GT-I8552", SDK_VERSION_KITKAT}, | |
| 60 | |
| 61 {"GT-P3113", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 62 {"GT-P5110", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 63 {"GT-P5100", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 64 {"GT-P5113", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 65 {"GT-P3110", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 66 {"GT-N5110", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 67 {"e-tab4", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 68 {"GT-I8200Q", SDK_VERSION_JELLY_BEAN_MR2}, | |
| 69 | |
| 70 {"always_works", 0}, // Some codec that works everywhere. | |
|
watk
2017/02/09 00:44:59
Did you consider changing the blacklist implementa
liberato (no reviews please)
2017/02/09 06:54:32
yeah, after seeing the test it dimly crossed my mi
| |
| 71 {nullptr, 0}}; | |
| 72 | |
| 73 for (int sdk = SDK_VERSION_JELLY_BEAN; sdk <= SDK_VERSION_NOUGAT; sdk++) { | |
| 74 for (int i = 0; devices[i].model; i++) { | |
| 75 bool supported = | |
| 76 MediaCodecUtil::IsMediaCodecAvailableForSdk(sdk, devices[i].model); | |
| 77 | |
| 78 // Make sure that this model is supported if and only if |sdk| is | |
| 79 // newer than |last_bad_sdk|. | |
| 80 ASSERT_TRUE(supported == (sdk > devices[i].last_bad_sdk)) | |
| 81 << " model: " << devices[i].model << " sdk: " << sdk; | |
| 82 } | |
| 83 } | |
| 84 } | |
| 85 | |
| 86 } // namespace media | |
| OLD | NEW |