package com.intuit.tank.harness; /* * #%L * Intuit Tank Agent (apiharness) * %% * Copyright (C) 2011 - 2015 Intuit Inc. * %% * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * #L% */ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import com.intuit.tank.harness.data.SleepTimeStep; import com.intuit.tank.harness.data.TestStep; import com.intuit.tank.harness.data.ThinkTimeStep; import com.intuit.tank.runner.TestStepContext; public class DebugFlowController implements FlowController { private int skipToRequest = 0; private boolean DO_SKIP = false; private int requestNumber = 0; public static void debug() { } @Override public void startStep(TestStepContext context) { // TODO Auto-generated method stub } @Override public void endStep(TestStepContext context) { // TODO Auto-generated method stub } @Override public boolean shouldExecute(TestStepContext context) { TestStep step = context.getTestStep(); return !(step instanceof SleepTimeStep) && !(step instanceof ThinkTimeStep); } @Override public void nextStep(TestStepContext context) { requestNumber++; System.err.println("...request #" + requestNumber); if (skipToRequest > 0) { if (skipToRequest == requestNumber) { DO_SKIP = false; skipToRequest = 0; } } if (!DO_SKIP) { try { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); String s = ""; System.err.println("Enter [n]ext to continue, [s]kip to run to end or request number to jump to:"); while (s != null && !(s.toLowerCase().startsWith("n") || s.toLowerCase().startsWith("s") || skipToRequest != 0)) { s = in.readLine(); try { skipToRequest = Integer.parseInt(s); } catch (NumberFormatException e) { skipToRequest = 0; } } if (s.toLowerCase().startsWith("s") || (skipToRequest > 0)) { DO_SKIP = true; } } catch (IOException e) { } } } @Override public FlowController cloneController() { return new DebugFlowController(); } @Override public void endTest() { System.exit(0); } }