Fix ThreadFeatureCheckerRule on U- devices
On U- devices, the ThreadNetworkManager class is not available, so we need to use the service name instead. And we should make sure Thread test cases runs on only devices that does has Thread feature supported. Change-Id: Idd356062277a5180933789c7d471c70e2689350d
This commit is contained in:
parent
88a83d413e
commit
953a161f1a
5 changed files with 28 additions and 2 deletions
|
|
@ -30,6 +30,8 @@ import android.net.thread.ActiveOperationalDataset;
|
|||
import android.net.thread.ActiveOperationalDataset.Builder;
|
||||
import android.net.thread.ActiveOperationalDataset.SecurityPolicy;
|
||||
import android.net.thread.OperationalDatasetTimestamp;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule.RequiresThreadFeature;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
|
@ -38,6 +40,7 @@ import androidx.test.filters.SmallTest;
|
|||
import com.google.common.primitives.Bytes;
|
||||
import com.google.common.testing.EqualsTester;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
|
@ -46,6 +49,7 @@ import java.util.Arrays;
|
|||
|
||||
/** CTS tests for {@link ActiveOperationalDataset}. */
|
||||
@SmallTest
|
||||
@RequiresThreadFeature
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public final class ActiveOperationalDatasetTest {
|
||||
private static final int TYPE_ACTIVE_TIMESTAMP = 14;
|
||||
|
|
@ -81,6 +85,8 @@ public final class ActiveOperationalDatasetTest {
|
|||
private static final ActiveOperationalDataset DEFAULT_DATASET =
|
||||
ActiveOperationalDataset.fromThreadTlvs(VALID_DATASET_TLVS);
|
||||
|
||||
@Rule public final ThreadFeatureCheckerRule mThreadRule = new ThreadFeatureCheckerRule();
|
||||
|
||||
private static byte[] removeTlv(byte[] dataset, int type) {
|
||||
ByteArrayOutputStream os = new ByteArrayOutputStream(dataset.length);
|
||||
int i = 0;
|
||||
|
|
|
|||
|
|
@ -21,12 +21,15 @@ import static com.google.common.truth.Truth.assertThat;
|
|||
import static org.junit.Assert.assertThrows;
|
||||
|
||||
import android.net.thread.OperationalDatasetTimestamp;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule.RequiresThreadFeature;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import com.google.common.testing.EqualsTester;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
|
@ -34,8 +37,11 @@ import java.time.Instant;
|
|||
|
||||
/** Tests for {@link OperationalDatasetTimestamp}. */
|
||||
@SmallTest
|
||||
@RequiresThreadFeature
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public final class OperationalDatasetTimestampTest {
|
||||
@Rule public final ThreadFeatureCheckerRule mThreadRule = new ThreadFeatureCheckerRule();
|
||||
|
||||
@Test
|
||||
public void fromInstant_tooLargeInstant_throwsIllegalArgument() {
|
||||
assertThrows(
|
||||
|
|
|
|||
|
|
@ -28,6 +28,8 @@ import android.net.thread.ActiveOperationalDataset;
|
|||
import android.net.thread.ActiveOperationalDataset.SecurityPolicy;
|
||||
import android.net.thread.OperationalDatasetTimestamp;
|
||||
import android.net.thread.PendingOperationalDataset;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule.RequiresThreadFeature;
|
||||
import android.util.SparseArray;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
|
@ -36,6 +38,7 @@ import androidx.test.filters.SmallTest;
|
|||
import com.google.common.primitives.Bytes;
|
||||
import com.google.common.testing.EqualsTester;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
|
|
@ -44,8 +47,11 @@ import java.time.Duration;
|
|||
|
||||
/** Tests for {@link PendingOperationalDataset}. */
|
||||
@SmallTest
|
||||
@RequiresThreadFeature
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public final class PendingOperationalDatasetTest {
|
||||
@Rule public final ThreadFeatureCheckerRule mThreadRule = new ThreadFeatureCheckerRule();
|
||||
|
||||
private static ActiveOperationalDataset createActiveDataset() throws Exception {
|
||||
SparseArray<byte[]> channelMask = new SparseArray<>(1);
|
||||
channelMask.put(0, new byte[] {0x00, 0x1f, (byte) 0xff, (byte) 0xe0});
|
||||
|
|
|
|||
|
|
@ -25,17 +25,23 @@ import static com.google.common.truth.Truth.assertThat;
|
|||
import static org.junit.Assert.assertThrows;
|
||||
|
||||
import android.net.thread.ThreadNetworkException;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule;
|
||||
import android.net.thread.utils.ThreadFeatureCheckerRule.RequiresThreadFeature;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.filters.SmallTest;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
/** CTS tests for {@link ThreadNetworkException}. */
|
||||
@SmallTest
|
||||
@RequiresThreadFeature
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
public final class ThreadNetworkExceptionTest {
|
||||
@Rule public final ThreadFeatureCheckerRule mThreadRule = new ThreadFeatureCheckerRule();
|
||||
|
||||
@Test
|
||||
public void constructor_validValues_valuesAreConnectlySet() throws Exception {
|
||||
ThreadNetworkException errorThreadDisabled =
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import static com.android.testutils.DeviceInfoUtils.isKernelVersionAtLeast;
|
|||
import static org.junit.Assume.assumeTrue;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.thread.ThreadNetworkManager;
|
||||
import android.os.SystemProperties;
|
||||
import android.os.VintfRuntimeInfo;
|
||||
|
||||
|
|
@ -122,7 +121,10 @@ public final class ThreadFeatureCheckerRule implements TestRule {
|
|||
/** Returns {@code true} if this device has the Thread feature supported. */
|
||||
private static boolean hasThreadFeature() {
|
||||
final Context context = ApplicationProvider.getApplicationContext();
|
||||
return context.getSystemService(ThreadNetworkManager.class) != null;
|
||||
|
||||
// Use service name rather than `ThreadNetworkManager.class` to avoid
|
||||
// `ClassNotFoundException` on U- devices.
|
||||
return context.getSystemService("thread_network") != null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue