Merge "Port mock ril controller and tests to GB. DO NOT MERGE" into gingerbread
This commit is contained in:
31
telephony/mockril/Android.mk
Normal file
31
telephony/mockril/Android.mk
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# Copyright (C) 2010 The Android Open Source Project
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
LOCAL_PATH:=$(call my-dir)
|
||||||
|
|
||||||
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
|
LOCAL_SRC_FILES := $(call all-java-files-under, src)
|
||||||
|
|
||||||
|
LOCAL_JAVA_LIBRARIES := core framework
|
||||||
|
|
||||||
|
LOCAL_STATIC_JAVA_LIBRARIES := librilproto-java
|
||||||
|
|
||||||
|
LOCAL_MODULE_TAGS := debug
|
||||||
|
LOCAL_MODULE := mockrilcontroller
|
||||||
|
|
||||||
|
include $(BUILD_STATIC_JAVA_LIBRARY)
|
||||||
@@ -0,0 +1,156 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010, The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.internal.telephony.mockril;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.telephony.PhoneNumberUtils;
|
||||||
|
|
||||||
|
import com.android.internal.communication.MsgHeader;
|
||||||
|
import com.android.internal.communication.Msg;
|
||||||
|
import com.android.internal.telephony.RilChannel;
|
||||||
|
import com.android.internal.telephony.ril_proto.RilCtrlCmds;
|
||||||
|
import com.android.internal.telephony.ril_proto.RilCmds;
|
||||||
|
import com.google.protobuf.micro.MessageMicro;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Contain a list of commands to control Mock RIL. Before using these commands the devices
|
||||||
|
* needs to be set with Mock RIL. Refer to hardware/ril/mockril/README.txt for details.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class MockRilController {
|
||||||
|
private static final String TAG = "MockRILController";
|
||||||
|
private RilChannel mRilChannel = null;
|
||||||
|
private Msg mMessage = null;
|
||||||
|
|
||||||
|
public MockRilController() throws IOException {
|
||||||
|
mRilChannel = RilChannel.makeRilChannel();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close the channel after the communication is done.
|
||||||
|
* This method has to be called after the test is finished.
|
||||||
|
*/
|
||||||
|
public void closeChannel() {
|
||||||
|
mRilChannel.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Send commands and return true on success
|
||||||
|
* @param cmd for MsgHeader
|
||||||
|
* @param token for MsgHeader
|
||||||
|
* @param status for MsgHeader
|
||||||
|
* @param pbData for Msg data
|
||||||
|
* @return true if command is sent successfully, false if it fails
|
||||||
|
*/
|
||||||
|
private boolean sendCtrlCommand(int cmd, long token, int status, MessageMicro pbData) {
|
||||||
|
try {
|
||||||
|
Msg.send(mRilChannel, cmd, token, status, pbData);
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.v(TAG, "send command : %d failed: " + e.getStackTrace());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get control response
|
||||||
|
* @return Msg if response is received, else return null.
|
||||||
|
*/
|
||||||
|
private Msg getCtrlResponse() {
|
||||||
|
Msg response = null;
|
||||||
|
try {
|
||||||
|
response = Msg.recv(mRilChannel);
|
||||||
|
} catch (IOException e) {
|
||||||
|
Log.v(TAG, "receive response for getRadioState() error: " + e.getStackTrace());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the radio state if it is valid, otherwise return -1
|
||||||
|
*/
|
||||||
|
public int getRadioState() {
|
||||||
|
if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_GET_RADIO_STATE, 0, 0, null)) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
Msg response = getCtrlResponse();
|
||||||
|
if (response == null) {
|
||||||
|
Log.v(TAG, "failed to get response");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
response.printHeader(TAG);
|
||||||
|
RilCtrlCmds.CtrlRspRadioState resp =
|
||||||
|
response.getDataAs(RilCtrlCmds.CtrlRspRadioState.class);
|
||||||
|
int state = resp.getState();
|
||||||
|
if ((state >= RilCmds.RADIOSTATE_OFF) && (state <= RilCmds.RADIOSTATE_NV_READY))
|
||||||
|
return state;
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the radio state of mock ril to the given state
|
||||||
|
* @param state for given radio state
|
||||||
|
* @return true if the state is set successful, false if it fails
|
||||||
|
*/
|
||||||
|
public boolean setRadioState(int state) {
|
||||||
|
RilCtrlCmds.CtrlReqRadioState req = new RilCtrlCmds.CtrlReqRadioState();
|
||||||
|
if (state < 0 || state > RilCmds.RADIOSTATE_NV_READY) {
|
||||||
|
Log.v(TAG, "the give radio state is not valid.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
req.setState(state);
|
||||||
|
if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_RADIO_STATE, 0, 0, req)) {
|
||||||
|
Log.v(TAG, "send set radio state request failed.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Msg response = getCtrlResponse();
|
||||||
|
if (response == null) {
|
||||||
|
Log.v(TAG, "failed to get response for setRadioState");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
response.printHeader(TAG);
|
||||||
|
RilCtrlCmds.CtrlRspRadioState resp =
|
||||||
|
response.getDataAs(RilCtrlCmds.CtrlRspRadioState.class);
|
||||||
|
int curstate = resp.getState();
|
||||||
|
return curstate == state;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set an MT call
|
||||||
|
*
|
||||||
|
* @param phoneNumber for the number shown
|
||||||
|
*/
|
||||||
|
public boolean setMTCall(String phoneNumber) {
|
||||||
|
RilCtrlCmds.CtrlReqSetMTCall req = new RilCtrlCmds.CtrlReqSetMTCall();
|
||||||
|
|
||||||
|
// Check whether it is a valid number
|
||||||
|
req.setPhoneNumber(phoneNumber);
|
||||||
|
if (!sendCtrlCommand(RilCtrlCmds.CTRL_CMD_SET_MT_CALL, 0, 0, req)) {
|
||||||
|
Log.v(TAG, "send CMD_SET_MT_CALL request failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -5,6 +5,8 @@ LOCAL_MODULE_TAGS := tests
|
|||||||
|
|
||||||
LOCAL_SRC_FILES := $(call all-subdir-java-files)
|
LOCAL_SRC_FILES := $(call all-subdir-java-files)
|
||||||
|
|
||||||
|
LOCAL_STATIC_JAVA_LIBRARIES := librilproto-java
|
||||||
|
|
||||||
LOCAL_JAVA_LIBRARIES := android.test.runner
|
LOCAL_JAVA_LIBRARIES := android.test.runner
|
||||||
|
|
||||||
LOCAL_PACKAGE_NAME := FrameworksTelephonyTests
|
LOCAL_PACKAGE_NAME := FrameworksTelephonyTests
|
||||||
|
|||||||
@@ -32,6 +32,13 @@
|
|||||||
android:targetPackage="com.android.frameworks.telephonytests"
|
android:targetPackage="com.android.frameworks.telephonytests"
|
||||||
android:label="Frameworks Telephony Tests">
|
android:label="Frameworks Telephony Tests">
|
||||||
</instrumentation>
|
</instrumentation>
|
||||||
|
|
||||||
|
<instrumentation android:name=".TelephonyMockRilTestRunner"
|
||||||
|
android:targetPackage="com.android.frameworks.telephonytests"
|
||||||
|
android:label="Test Runner for Mock Ril Tests"
|
||||||
|
/>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -0,0 +1,93 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010, The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.frameworks.telephonytests;
|
||||||
|
|
||||||
|
import android.os.Bundle;
|
||||||
|
|
||||||
|
import android.test.InstrumentationTestRunner;
|
||||||
|
import android.test.InstrumentationTestSuite;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.android.internal.telephony.RilChannel;
|
||||||
|
import com.android.internal.telephony.mockril.MockRilTest;
|
||||||
|
|
||||||
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
|
public class TelephonyMockRilTestRunner extends InstrumentationTestRunner {
|
||||||
|
|
||||||
|
public RilChannel mMockRilChannel;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public TestSuite getAllTests() {
|
||||||
|
log("getAllTests E");
|
||||||
|
TestSuite suite = new InstrumentationTestSuite(this);
|
||||||
|
suite.addTestSuite(MockRilTest.class);
|
||||||
|
log("getAllTests X");
|
||||||
|
return suite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ClassLoader getLoader() {
|
||||||
|
log("getLoader EX");
|
||||||
|
return TelephonyMockRilTestRunner.class.getClassLoader();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onCreate(Bundle icicle) {
|
||||||
|
log("onCreate E");
|
||||||
|
try {
|
||||||
|
mMockRilChannel = RilChannel.makeRilChannel();
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO Auto-generated catch block
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
log("onCreate X");
|
||||||
|
|
||||||
|
super.onCreate(icicle);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
// I've not seen this called
|
||||||
|
log("onDestroy EX");
|
||||||
|
super.onDestroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onStart() {
|
||||||
|
// Called when the instrumentation thread is started.
|
||||||
|
// At the moment we don't need the thread so return
|
||||||
|
// which will shut down this unused thread.
|
||||||
|
log("onStart EX");
|
||||||
|
super.onStart();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void finish(int resultCode, Bundle results) {
|
||||||
|
// Called when complete so I ask the mMockRilChannel to quit.
|
||||||
|
log("finish E");
|
||||||
|
mMockRilChannel.close();
|
||||||
|
log("finish X");
|
||||||
|
super.finish(resultCode, results);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void log(String s) {
|
||||||
|
Log.e("TelephonyMockRilTestRunner", s);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (C) 2010 The Android Open Source Project
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.android.internal.telephony.mockril;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
import android.test.InstrumentationTestCase;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
import com.android.internal.communication.MsgHeader;
|
||||||
|
import com.android.internal.communication.Msg;
|
||||||
|
import com.android.internal.telephony.RilChannel;
|
||||||
|
import com.android.internal.telephony.ril_proto.RilCtrlCmds;
|
||||||
|
import com.android.internal.telephony.ril_proto.RilCmds;
|
||||||
|
|
||||||
|
import com.android.frameworks.telephonytests.TelephonyMockRilTestRunner;
|
||||||
|
import com.google.protobuf.micro.InvalidProtocolBufferMicroException;
|
||||||
|
|
||||||
|
// Test suite for test ril
|
||||||
|
public class MockRilTest extends InstrumentationTestCase {
|
||||||
|
private static final String TAG = "MockRilTest";
|
||||||
|
|
||||||
|
RilChannel mMockRilChannel;
|
||||||
|
TelephonyMockRilTestRunner mRunner;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void setUp() throws Exception {
|
||||||
|
super.setUp();
|
||||||
|
mRunner = (TelephonyMockRilTestRunner)getInstrumentation();
|
||||||
|
mMockRilChannel = mRunner.mMockRilChannel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void tearDown() throws Exception {
|
||||||
|
super.tearDown();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void log(String s) {
|
||||||
|
Log.v(TAG, s);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test protobuf serialization and deserialization
|
||||||
|
* @throws InvalidProtocolBufferMicroException
|
||||||
|
*/
|
||||||
|
public void testProtobufSerDes() throws InvalidProtocolBufferMicroException {
|
||||||
|
log("testProtobufSerdes E");
|
||||||
|
|
||||||
|
RilCtrlCmds.CtrlRspRadioState rs = new RilCtrlCmds.CtrlRspRadioState();
|
||||||
|
assertTrue(String.format("expected rs.state == 0 was %d", rs.getState()),
|
||||||
|
rs.getState() == 0);
|
||||||
|
rs.setState(1);
|
||||||
|
assertTrue(String.format("expected rs.state == 1 was %d", rs.getState()),
|
||||||
|
rs.getState() == 1);
|
||||||
|
|
||||||
|
byte[] rs_ser = rs.toByteArray();
|
||||||
|
RilCtrlCmds.CtrlRspRadioState rsNew = RilCtrlCmds.CtrlRspRadioState.parseFrom(rs_ser);
|
||||||
|
assertTrue(String.format("expected rsNew.state == 1 was %d", rs.getState()),
|
||||||
|
rs.getState() == 1);
|
||||||
|
|
||||||
|
log("testProtobufSerdes X");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test echo command works using writeMsg & readMsg
|
||||||
|
*/
|
||||||
|
public void testEchoMsg() throws IOException {
|
||||||
|
log("testEchoMsg E");
|
||||||
|
|
||||||
|
MsgHeader mh = new MsgHeader();
|
||||||
|
mh.setCmd(0);
|
||||||
|
mh.setToken(1);
|
||||||
|
mh.setStatus(2);
|
||||||
|
ByteBuffer data = ByteBuffer.allocate(3);
|
||||||
|
data.put((byte)3);
|
||||||
|
data.put((byte)4);
|
||||||
|
data.put((byte)5);
|
||||||
|
Msg.send(mMockRilChannel, mh, data);
|
||||||
|
|
||||||
|
Msg respMsg = Msg.recv(mMockRilChannel);
|
||||||
|
assertTrue(String.format("expected mhd.header.cmd == 0 was %d",respMsg.getCmd()),
|
||||||
|
respMsg.getCmd() == 0);
|
||||||
|
assertTrue(String.format("expected mhd.header.token == 1 was %d",respMsg.getToken()),
|
||||||
|
respMsg.getToken() == 1);
|
||||||
|
assertTrue(String.format("expected mhd.header.status == 2 was %d", respMsg.getStatus()),
|
||||||
|
respMsg.getStatus() == 2);
|
||||||
|
assertTrue(String.format("expected mhd.data[0] == 3 was %d", respMsg.getData(0)),
|
||||||
|
respMsg.getData(0) == 3);
|
||||||
|
assertTrue(String.format("expected mhd.data[1] == 4 was %d", respMsg.getData(1)),
|
||||||
|
respMsg.getData(1) == 4);
|
||||||
|
assertTrue(String.format("expected mhd.data[2] == 5 was %d", respMsg.getData(2)),
|
||||||
|
respMsg.getData(2) == 5);
|
||||||
|
|
||||||
|
log("testEchoMsg X");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test get as
|
||||||
|
*/
|
||||||
|
public void testGetAs() {
|
||||||
|
log("testGetAs E");
|
||||||
|
|
||||||
|
// Use a message header as the protobuf data content
|
||||||
|
MsgHeader mh = new MsgHeader();
|
||||||
|
mh.setCmd(12345);
|
||||||
|
mh.setToken(9876);
|
||||||
|
mh.setStatus(7654);
|
||||||
|
mh.setLengthData(4321);
|
||||||
|
byte[] data = mh.toByteArray();
|
||||||
|
MsgHeader mhResult = Msg.getAs(MsgHeader.class, data);
|
||||||
|
|
||||||
|
assertTrue(String.format("expected cmd == 12345 was %d", mhResult.getCmd()),
|
||||||
|
mhResult.getCmd() == 12345);
|
||||||
|
assertTrue(String.format("expected token == 9876 was %d", mhResult.getToken()),
|
||||||
|
mhResult.getToken() == 9876);
|
||||||
|
assertTrue(String.format("expected status == 7654 was %d", mhResult.getStatus()),
|
||||||
|
mhResult.getStatus() == 7654);
|
||||||
|
assertTrue(String.format("expected lengthData == 4321 was %d", mhResult.getLengthData()),
|
||||||
|
mhResult.getLengthData() == 4321);
|
||||||
|
|
||||||
|
Msg msg = Msg.obtain();
|
||||||
|
msg.setData(ByteBuffer.wrap(data));
|
||||||
|
|
||||||
|
mhResult = msg.getDataAs(MsgHeader.class);
|
||||||
|
|
||||||
|
assertTrue(String.format("expected cmd == 12345 was %d", mhResult.getCmd()),
|
||||||
|
mhResult.getCmd() == 12345);
|
||||||
|
assertTrue(String.format("expected token == 9876 was %d", mhResult.getToken()),
|
||||||
|
mhResult.getToken() == 9876);
|
||||||
|
assertTrue(String.format("expected status == 7654 was %d", mhResult.getStatus()),
|
||||||
|
mhResult.getStatus() == 7654);
|
||||||
|
assertTrue(String.format("expected lengthData == 4321 was %d", mhResult.getLengthData()),
|
||||||
|
mhResult.getLengthData() == 4321);
|
||||||
|
|
||||||
|
log("testGetAs X");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testGetRadioState() throws IOException {
|
||||||
|
log("testGetRadioState E");
|
||||||
|
|
||||||
|
Msg.send(mMockRilChannel, 1, 9876, 0, null);
|
||||||
|
|
||||||
|
Msg resp = Msg.recv(mMockRilChannel);
|
||||||
|
//resp.printHeader("testGetRadioState");
|
||||||
|
|
||||||
|
assertTrue(String.format("expected cmd == 1 was %d", resp.getCmd()),
|
||||||
|
resp.getCmd() == 1);
|
||||||
|
assertTrue(String.format("expected token == 9876 was %d", resp.getToken()),
|
||||||
|
resp.getToken() == 9876);
|
||||||
|
assertTrue(String.format("expected status == 0 was %d", resp.getStatus()),
|
||||||
|
resp.getStatus() == 0);
|
||||||
|
|
||||||
|
RilCtrlCmds.CtrlRspRadioState rsp = resp.getDataAs(RilCtrlCmds.CtrlRspRadioState.class);
|
||||||
|
|
||||||
|
int state = rsp.getState();
|
||||||
|
log("testGetRadioState state=" + state);
|
||||||
|
assertTrue(String.format("expected RadioState >= 0 && RadioState <= 9 was %d", state),
|
||||||
|
((state >= 0) && (state <= 9)));
|
||||||
|
|
||||||
|
log("testGetRadioState X");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testSetRadioState() throws IOException {
|
||||||
|
log("testSetRadioState E");
|
||||||
|
|
||||||
|
RilCtrlCmds.CtrlReqRadioState cmdrs = new RilCtrlCmds.CtrlReqRadioState();
|
||||||
|
assertEquals(0, cmdrs.getState());
|
||||||
|
|
||||||
|
cmdrs.setState(RilCmds.RADIOSTATE_SIM_NOT_READY);
|
||||||
|
assertEquals(2, cmdrs.getState());
|
||||||
|
|
||||||
|
Msg.send(mMockRilChannel, RilCtrlCmds.CTRL_CMD_SET_RADIO_STATE, 0, 0, cmdrs);
|
||||||
|
|
||||||
|
Msg resp = Msg.recv(mMockRilChannel);
|
||||||
|
|
||||||
|
RilCtrlCmds.CtrlRspRadioState rsp = resp.getDataAs(RilCtrlCmds.CtrlRspRadioState.class);
|
||||||
|
|
||||||
|
int state = rsp.getState();
|
||||||
|
log("get response for testSetRadioState: " + state);
|
||||||
|
assertTrue(RilCmds.RADIOSTATE_SIM_NOT_READY == state);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user