@@ -50,6 +50,8 @@ public class FrameworkPerfActivity extends Activity
5050
5151 Spinner mFgSpinner ;
5252 Spinner mBgSpinner ;
53+ Spinner mLimitSpinner ;
54+ TextView mLimitLabel ;
5355 TextView mTestTime ;
5456 Button mStartButton ;
5557 Button mStopButton ;
@@ -58,10 +60,12 @@ public class FrameworkPerfActivity extends Activity
5860 PowerManager .WakeLock mPartialWakeLock ;
5961
6062 long mMaxRunTime = 5000 ;
63+ boolean mLimitIsIterations ;
6164 boolean mStarted ;
6265
6366 final String [] mAvailOpLabels ;
6467 final String [] mAvailOpDescriptions ;
68+ final String [] mLimitLabels = { "Time" , "Iterations" };
6569
6670 int mFgTestIndex = -1 ;
6771 int mBgTestIndex = -1 ;
@@ -169,8 +173,15 @@ public void onCreate(Bundle savedInstanceState) {
169173 adapter .setDropDownViewResource (android .R .layout .simple_spinner_dropdown_item );
170174 mBgSpinner .setAdapter (adapter );
171175 mBgSpinner .setOnItemSelectedListener (this );
176+ mLimitSpinner = (Spinner ) findViewById (R .id .limitspinner );
177+ adapter = new ArrayAdapter <String >(this ,
178+ android .R .layout .simple_spinner_item , mLimitLabels );
179+ adapter .setDropDownViewResource (android .R .layout .simple_spinner_dropdown_item );
180+ mLimitSpinner .setAdapter (adapter );
181+ mLimitSpinner .setOnItemSelectedListener (this );
172182
173183 mTestTime = (TextView )findViewById (R .id .testtime );
184+ mLimitLabel = (TextView )findViewById (R .id .limitlabel );
174185
175186 mStartButton = (Button )findViewById (R .id .start );
176187 mStartButton .setOnClickListener (new View .OnClickListener () {
@@ -196,16 +207,23 @@ public void onCreate(Bundle savedInstanceState) {
196207
197208 @ Override
198209 public void onItemSelected (AdapterView <?> parent , View view , int position , long id ) {
199- if (parent == mFgSpinner || parent == mBgSpinner ) {
210+ if (parent == mFgSpinner || parent == mBgSpinner || parent == mLimitSpinner ) {
200211 TestService .Op op = TestService .mAvailOps [position ];
201212 if (parent == mFgSpinner ) {
202213 mFgTestIndex = position ;
203214 mFgTest = op ;
204215 ((TextView )findViewById (R .id .fgtext )).setText (mAvailOpDescriptions [position ]);
205- } else {
216+ } else if ( parent == mBgSpinner ) {
206217 mBgTestIndex = position ;
207218 mBgTest = op ;
208219 ((TextView )findViewById (R .id .bgtext )).setText (mAvailOpDescriptions [position ]);
220+ } else if (parent == mLimitSpinner ) {
221+ mLimitIsIterations = (position != 0 );
222+ if (mLimitIsIterations ) {
223+ mLimitLabel .setText ("Iterations: " );
224+ } else {
225+ mLimitLabel .setText ("Test time (ms): " );
226+ }
209227 }
210228 }
211229 }
@@ -234,7 +252,11 @@ void dispatchCurOp(TestConnection conn) {
234252 return ;
235253 }
236254 TestArgs args = new TestArgs ();
237- args .maxTime = mMaxRunTime ;
255+ if (mLimitIsIterations ) {
256+ args .maxOps = mMaxRunTime ;
257+ } else {
258+ args .maxTime = mMaxRunTime ;
259+ }
238260 if (mFgTestIndex == 0 && mBgTestIndex == 0 ) {
239261 args .combOp = mCurOpIndex ;
240262 } else if (mFgTestIndex != 0 && mBgTestIndex != 0 ) {
@@ -376,6 +398,7 @@ void startRunning() {
376398 mTestTime .setEnabled (false );
377399 mFgSpinner .setEnabled (false );
378400 mBgSpinner .setEnabled (false );
401+ mLimitSpinner .setEnabled (false );
379402 updateWakeLock ();
380403 startService (new Intent (this , SchedulerService .class ));
381404 mCurOpIndex = 0 ;
@@ -397,6 +420,7 @@ void stopRunning() {
397420 mTestTime .setEnabled (true );
398421 mFgSpinner .setEnabled (true );
399422 mBgSpinner .setEnabled (true );
423+ mLimitSpinner .setEnabled (true );
400424 updateWakeLock ();
401425 stopService (new Intent (this , SchedulerService .class ));
402426 synchronized (mResults ) {
0 commit comments