/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
*
* The contents of this file are subject to the terms of either the GNU
* General Public License Version 2 only ("GPL") or the Common Development
* and Distribution License("CDDL") (collectively, the "License"). You
* may not use this file except in compliance with the License. You can
* obtain a copy of the License at
* or packager/legal/LICENSE.txt. See the License for the specific
* language governing permissions and limitations under the License.
*
* When distributing the software, include this License Header Notice in each
* file and include the License file at packager/legal/LICENSE.txt.
*
* GPL Classpath Exception:
* Oracle designates this particular file as subject to the "Classpath"
* exception as provided by Oracle in the GPL Version 2 section of the License
* file that accompanied this code.
*
* Modifications:
* If applicable, add the following below the License Header, with the fields
* enclosed by brackets [] replaced by your own identifying information:
* "Portions Copyright [year] [name of copyright owner]"
*
* Contributor(s):
* If you wish your version of this file to be governed by only the CDDL or
* only the GPL Version 2, indicate your decision by adding "[Contributor]
* elects to include this software in this distribution under the [CDDL or GPL
* Version 2] license." If you don't indicate a single choice of license, a
* recipient has the option to distribute your version of this file under
* either the CDDL, the GPL Version 2 or to extend the choice of license to
* its licensees as provided above. However, if you add GPL Version 2 code
* and therefore, elected the GPL Version 2 license, then the option applies
* only if the new code is made subject to such option by the copyright
* holder.
*/
/*
* $Header: /cvs/glassfish/admin/mbeanapi-impl/tests/org.glassfish.admin.amxtest/base/UploadDownloadMgrTest.java,v 1.5 2007/05/05 05:23:53 tcfujii Exp $
* $Revision: 1.5 $
* $Date: 2007/05/05 05:23:53 $
*/
/**
Tests {@link UploadDownloadMgr}.
<p/>
NOTE: multiple uploads and downloads are designed to test the thread-safeness
of the MBean.
*/
public final class UploadDownloadMgrTest
extends AMXTestBase {
public UploadDownloadMgrTest()
throws IOException {
}
public static Capabilities
getCapabilities() {
return getOfflineCapableCapabilities(true);
}
public UploadDownloadMgr
return (getDomainRoot().getUploadDownloadMgr());
}
public Object
final int totalSize)
throws IOException {
//mgr.setTrace( true );
boolean done = false;
while (remaining != 0) {
//trace( "uploaded: " + (totalSize - remaining) );
}
assert (done);
return (uploadID);
}
private File
throws IOException {
temp.deleteOnExit();
try {
while (remaining != 0) {
}
}
catch (IOException e) {
throw e;
}
printElapsed("UploadDownloadMgr.createTempFile: " +
return (temp);
}
public File
final int testSize,
final int chunkSize)
throws IOException {
final UploadDownloadMgr mgr =
//trace( "initated download for: " + id + " file = " + testFile.toString() );
long doneSoFar = 0;
}
printElapsed("UploadDownloadMgr.testDownloadFile: " +
return (testFile);
}
private final int K = 1024;
private final int MEGABYTE = K * K;
public void
throws IOException {
final int size = 256 * K;
}
public void
throws IOException {
final int size = 256 * K;
}
public void
throws IOException {
final int size = 256 * K;
}
public void
throws IOException {
final int size = 50 * K;
}
public void
throws IOException {
final int size = 1;
}
public void
throws IOException {
final int kb =
assert (kb >= 1) :
"Test size must be positive, value for " +
": " + kb;
}
private final class UploadDownloadTestThread
extends Thread {
boolean mDone;
final int mLength;
long mElapsed;
mThrowable = null;
mDone = false;
mElapsed = 0;
}
public void
run() {
mDone = false;
try {
}
catch (Throwable t) {
mThrowable = t;
}
mDone = true;
}
long
getLength() {
return mLength;
}
long
getElapsed() {
return mElapsed;
}
getThrowable() {
return (mThrowable);
}
public boolean
done() {
return (mDone);
}
}
/**
This test is an attempt to find any synchronization bugs.
*/
public void
throws IOException {
if (numThreads <= 0) {
numThreads = 1;
}
final UploadDownloadTestThread[] threads =
// create and start all the threads
for (int i = 0; i < numThreads; ++i) {
}
// wait till done
boolean done = false;
while (true) {
int numDone = 0;
for (int i = 0; i < numThreads; ++i) {
++numDone;
}
}
if (numDone == numThreads) {
break;
}
printVerbose("UploadDownloadMgrTest.testHeavilyThreaded: waiting for " +
mySleep(1000);
}
// verify success
for (int i = 0; i < numThreads; ++i) {
}
}
public void
throws IOException {
}
public void
throws IOException {
}
public void
throws IOException {
}
public void
throws IOException {
}
public void
throws IOException {
}
}