Home | History | Annotate | Download | only in ui
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package com.android.mms.ui;
     18 
     19 import android.os.Environment;
     20 import android.test.suitebuilder.annotation.LargeTest;
     21 import android.util.Log;
     22 
     23 import java.io.BufferedWriter;
     24 import java.io.File;
     25 import java.io.FileWriter;
     26 
     27 /**
     28  * Sms stress test. Send muliptle sms each with multiple segments.
     29  * To run this test
     30  * adb shell am instrument -e class com.android.mms.ui.SmsStressTest
     31  *  -w com.android.mms.tests/com.android.mms.SmsTestRunner
     32  */
     33 public class SmsStressTest extends SmsTest {
     34     private final static String TAG = "SmsStressTest";
     35     private final static String OUTPUT = "result.txt";
     36     private long mSendInterval = 10 * 1000; // 10 seconds
     37     protected int mIteration = 100;
     38     protected BufferedWriter mWriter = null;
     39 
     40     @Override
     41     protected void setUp() throws Exception {
     42         super.setUp();
     43         // Get input value for this test
     44         if (mInst.mNumberMessages > 0) {
     45             mIteration = mInst.mNumberMessages;
     46         }
     47         if (mInst.mSendInterval > 0) {
     48             mSendInterval = mInst.mSendInterval;
     49         }
     50         Log.v(TAG, String.format("mIteration: %d, mSendInterval: %d",
     51                                  mIteration, mSendInterval));
     52         mWriter = new BufferedWriter(new FileWriter(new File(
     53             Environment.getExternalStorageDirectory(), OUTPUT), true));
     54     }
     55 
     56     @Override
     57     protected void tearDown() throws Exception {
     58         Log.v(TAG, "tearDown");
     59         if (mWriter != null) {
     60             mWriter.close();
     61         }
     62         super.tearDown();
     63     }
     64 
     65     /**
     66      * Sending multiple sms over a single thread
     67      */
     68     @LargeTest
     69     public void testMultiMessageOverSingleThread() throws Throwable {
     70         int i;
     71         for (i = 0; i < mIteration; i++) {
     72             Log.v(TAG, "iteration: " + i);
     73             assertTrue("send & receive message failed",
     74                     sendAndReceiveMessage());
     75             sleep(mSendInterval);
     76             mWriter.write(String.format("send message %d out of %d\n",
     77                                         (i+1), mIteration));
     78         }
     79     }
     80 }
     81