Tuner CTS: test scan callback part1
Bug: 150952758
Test: atest android.media.tv.tuner.cts.TunerTest
Change-Id: Iadab0bee6494bd3b4417bd3771ff2f965e273697
diff --git a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
index be15e58..aa8be38 100644
--- a/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
+++ b/tests/tests/tv/src/android/media/tv/tuner/cts/TunerTest.java
@@ -18,6 +18,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
import android.content.Context;
import android.media.tv.tuner.Descrambler;
@@ -43,7 +44,9 @@
import androidx.test.runner.AndroidJUnit4;
import java.util.List;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
import org.junit.After;
import org.junit.Before;
@@ -55,63 +58,70 @@
public class TunerTest {
private static final String TAG = "MediaTunerTest";
+ private static final int TIMEOUT_MS = 10000;
+
private Context mContext;
+ private Tuner mTuner;
+ private CountDownLatch mLockLatch = new CountDownLatch(1);
@Before
public void setUp() throws Exception {
mContext = InstrumentationRegistry.getTargetContext();
InstrumentationRegistry
.getInstrumentation().getUiAutomation().adoptShellPermissionIdentity();
+ if (!hasTuner()) return;
+ mTuner = new Tuner(mContext, null, 100);
}
@After
public void tearDown() {
+ if (mTuner != null) {
+ mTuner.close();
+ mTuner = null;
+ }
}
@Test
public void testTunerConstructor() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- assertNotNull(tuner);
+ assertNotNull(mTuner);
}
@Test
public void testTuning() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- int res = tuner.tune(getFrontendSettings());
+ int res = mTuner.tune(getFrontendSettings());
assertEquals(Tuner.RESULT_SUCCESS, res);
- res = tuner.cancelTuning();
+ res = mTuner.cancelTuning();
assertEquals(Tuner.RESULT_SUCCESS, res);
- tuner.close();
}
@Test
public void testScanning() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- List<Integer> ids = tuner.getFrontendIds();
+ List<Integer> ids = mTuner.getFrontendIds();
for (int id : ids) {
- FrontendInfo info = tuner.getFrontendInfoById(id);
+ FrontendInfo info = mTuner.getFrontendInfoById(id);
if (info != null && info.getType() == FrontendSettings.TYPE_ATSC) {
- int res = tuner.scan(
+ mLockLatch = new CountDownLatch(1);
+ int res = mTuner.scan(
getFrontendSettings(),
Tuner.SCAN_TYPE_AUTO,
getExecutor(),
getScanCallback());
assertEquals(Tuner.RESULT_SUCCESS, res);
- res = tuner.cancelScanning();
+ assertTrue(mLockLatch.await(TIMEOUT_MS, TimeUnit.MILLISECONDS));
+ res = mTuner.cancelScanning();
assertEquals(Tuner.RESULT_SUCCESS, res);
}
}
- tuner.close();
+ mLockLatch = null;
}
@Test
public void testOpenLnb() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Lnb lnb = tuner.openLnb(getExecutor(), getLnbCallback());
+ Lnb lnb = mTuner.openLnb(getExecutor(), getLnbCallback());
assertNotNull(lnb);
}
@@ -119,24 +129,21 @@
public void testLnbSetVoltage() throws Exception {
// TODO: move lnb-related tests to a separate file.
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Lnb lnb = tuner.openLnb(getExecutor(), getLnbCallback());
+ Lnb lnb = mTuner.openLnb(getExecutor(), getLnbCallback());
assertEquals(lnb.setVoltage(Lnb.VOLTAGE_5V), Tuner.RESULT_SUCCESS);
}
@Test
public void testLnbSetTone() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Lnb lnb = tuner.openLnb(getExecutor(), getLnbCallback());
+ Lnb lnb = mTuner.openLnb(getExecutor(), getLnbCallback());
assertEquals(lnb.setTone(Lnb.TONE_NONE), Tuner.RESULT_SUCCESS);
}
@Test
public void testLnbSetPosistion() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Lnb lnb = tuner.openLnb(getExecutor(), getLnbCallback());
+ Lnb lnb = mTuner.openLnb(getExecutor(), getLnbCallback());
assertEquals(
lnb.setSatellitePosition(Lnb.POSITION_A), Tuner.RESULT_SUCCESS);
}
@@ -144,8 +151,7 @@
@Test
public void testOpenFilter() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Filter f = tuner.openFilter(
+ Filter f = mTuner.openFilter(
Filter.TYPE_TS, Filter.SUBTYPE_SECTION, 1000, getExecutor(), getFilterCallback());
assertNotNull(f);
}
@@ -153,32 +159,28 @@
@Test
public void testOpenTimeFilter() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- TimeFilter f = tuner.openTimeFilter();
+ TimeFilter f = mTuner.openTimeFilter();
assertNotNull(f);
}
@Test
public void testOpenDescrambler() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- Descrambler d = tuner.openDescrambler();
+ Descrambler d = mTuner.openDescrambler();
assertNotNull(d);
}
@Test
public void testOpenDvrRecorder() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- DvrRecorder d = tuner.openDvrRecorder(100, getExecutor(), getRecordListener());
+ DvrRecorder d = mTuner.openDvrRecorder(100, getExecutor(), getRecordListener());
assertNotNull(d);
}
@Test
public void testOpenDvPlayback() throws Exception {
if (!hasTuner()) return;
- Tuner tuner = new Tuner(mContext, null, 100);
- DvrPlayback d = tuner.openDvrPlayback(100, getExecutor(), getPlaybackListener());
+ DvrPlayback d = mTuner.openDvrPlayback(100, getExecutor(), getPlaybackListener());
assertNotNull(d);
}
@@ -233,7 +235,11 @@
private ScanCallback getScanCallback() {
return new ScanCallback() {
@Override
- public void onLocked() {}
+ public void onLocked() {
+ if (mLockLatch != null) {
+ mLockLatch.countDown();
+ }
+ }
@Override
public void onScanStopped() {}