OLD | NEW |
(Empty) | |
| 1 // Copyright 2016 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 package org.chromium.base.test.util; |
| 6 |
| 7 import android.os.Build; |
| 8 |
| 9 import junit.framework.TestCase; |
| 10 |
| 11 import org.chromium.base.Log; |
| 12 |
| 13 import java.lang.reflect.Method; |
| 14 |
| 15 /** |
| 16 * Checks the device's SDK level against any specified minimum requirement. |
| 17 */ |
| 18 public class MinAndroidSdkLevelSkipCheck extends SkipCheck { |
| 19 |
| 20 private static final String TAG = "base_test"; |
| 21 |
| 22 /** |
| 23 * If {@link MinAndroidSdkLevel} is present, checks its value |
| 24 * against the device's SDK level. |
| 25 * |
| 26 * @param testCase The test to check. |
| 27 * @return true if the device's SDK level is below the specified minimum. |
| 28 */ |
| 29 @Override |
| 30 public boolean shouldSkip(TestCase testCase) { |
| 31 Class testClass = testCase.getClass(); |
| 32 Method testMethod = getTestMethod(testCase); |
| 33 |
| 34 int minSdkLevel = 0; |
| 35 for (MinAndroidSdkLevel m : getAnnotations(testMethod, MinAndroidSdkLeve
l.class)) { |
| 36 minSdkLevel = Math.max(minSdkLevel, m.value()); |
| 37 } |
| 38 |
| 39 if (Build.VERSION.SDK_INT < minSdkLevel) { |
| 40 Log.i(TAG, "Test " + testClass.getName() + "#" + testCase.getName() |
| 41 + " is not enabled at SDK level " + Build.VERSION.SDK_INT |
| 42 + "."); |
| 43 return true; |
| 44 } |
| 45 return false; |
| 46 } |
| 47 } |
OLD | NEW |