/* * JBoss, Home of Professional Open Source * Copyright 2007, Red Hat Middleware LLC, and individual contributors * as indicated by the @author tags. * See the copyright.txt in the distribution for a * full listing of individual contributors. * This copyrighted material is made available to anyone wishing to use, * modify, copy, or redistribute it subject to the terms and conditions * of the GNU Lesser General Public License, v. 2.1. * This program is distributed in the hope that it will be useful, but WITHOUT A * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public License, * v.2.1 along with this distribution; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * * (C) 2005-2006, * @author JBoss Inc. */ /* * Created by IntelliJ IDEA. * User: peter craddock * Date: 24-May-02 * Time: 11:56:12 */ package org.jboss.jbossts.qa.ArjunaCore.Utils; import com.arjuna.ats.arjuna.AtomicAction; import com.arjuna.ats.arjuna.common.Uid; import com.arjuna.ats.arjuna.coordinator.AbstractRecord; import org.jboss.jbossts.qa.Utils.BaseTestCase; import org.jboss.jbossts.qa.Utils.JVMStats; public class BaseTestClient extends BaseTestCase { public BaseTestClient() { super(); } public BaseTestClient(String[] args) { super(args); Test(); } public void Test() { } public void startTx() throws Exception { mAtom = new AtomicAction(); mAtom.begin(); } public void createTx() throws Exception { mAtom = new AtomicAction(); } public void createTx(Uid uid) throws Exception { mAtom = new AtomicAction(uid); } public void begin() throws Exception { mAtom.begin(); } public int commit() throws Exception { return commit(true); } public int commit(boolean flag) throws Exception { return mAtom.commit(flag); } //extra methods because we are changing the return type of the base class public int intCommit() throws Exception { return intCommit(true); } public int intCommit(boolean flag) throws Exception { return mAtom.commit(flag); } public void abort() throws Exception { mAtom.abort(); } public void add(AbstractRecord record) throws Exception { mAtom.add(record); } public void setNumberOfCalls(int relative_position) { mMaxIteration = getIntRelArg(relative_position); } public void setNumberOfResources(int relative_position) { mNumberOfResources = getIntRelArg(relative_position); } public void setNumberOfWorkers(int relative_position) { mNumberOfWorkers = getIntRelArg(relative_position); } public void setCrashPoint(int relative_position) { mCrashPoint = getIntRelArg(relative_position); } public void setCrashType(int relative_position) { mCrashType = getIntRelArg(relative_position); } public void getFirstReading() { clientMemory0 = (int) JVMStats.getMemory(); System.out.println("clientMemory0: "+clientMemory0); } public void getSecondReading() { clientMemory1 = (int) JVMStats.getMemory(); System.out.println("clientMemory1: "+clientMemory1); } public void qaMemoryAssert() { float clientMemoryIncrease = ((float) (clientMemory1 - clientMemory0)) / ((float) clientMemory0); Debug("Client memory increase threshold : " + (float) (100.0 * clientIncreaseThreshold) + "%"); Debug("Client percentage memory increase: " + (float) (100.0 * clientMemoryIncrease) + "%"); Debug("Client memory increase per call : " + (clientMemory1 - clientMemory0) / mMaxIteration); if (clientMemoryIncrease > clientIncreaseThreshold) { Debug("Memory increase too high"); mCorrect = false; } qaAssert(mCorrect); } public void setUniquePrefix(int relative_position) { uniquePrefix = getRelativeArg(relative_position); } public String getUniquePrefix() { return uniquePrefix; } public String getResourceName(String text) { return getUniquePrefix() + text; } public void startStopWatch() { _stopWatch = System.currentTimeMillis(); } public long stopStopWatch() { long endTime = System.currentTimeMillis(); return endTime - _stopWatch; } private long _stopWatch = 0; private String uniquePrefix = ""; public int mMaxIteration = 0; //default value public int mNumberOfResources = 0;//default value public int mNumberOfWorkers = 0;//default value public int mCrashPoint = 1;//default value public int mCrashType = 0;//default value public AtomicAction mAtom = null; public boolean mCorrect = true; //value used with statemanager tests public double mPercent = 0.4;//default value }