jcifs_1.3.3.examples.Torture2 Maven / Gradle / Ivy
Go to download
JCIFS is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java
import java.io.*;
import jcifs.smb.*;
import jcifs.util.Hexdump;
import java.util.*;
public class Torture2 extends Thread {
SmbFile from, to;
Torture2( String from, String to ) throws Exception {
this.from = new SmbFile( from );
this.to = new SmbFile( to );
}
public void run() {
try {
copyAndVerify();
} catch( Exception e ) {
e.printStackTrace();
}
}
void compare( SmbFile f1, SmbFile f2 ) throws Exception {
//System.err.println( f1.getName() + " | " + f2.getName() );
try {
if( f1.isDirectory() && f2.isDirectory() ) {
SmbFile[] dirents = f1.listFiles();
SmbFile f;
for( int i = 0; i < dirents.length; i++ ) {
f = new SmbFile( f2, dirents[i].getName() );
//System.err.println( f2 + " + " + dirents[i].getName() + " = " + f + ": isDirectory=" + f.isDirectory() );
compare( dirents[i], f );
}
}
if( f1.isDirectory() != f2.isDirectory() ) {
System.err.println( "directory comparison failed: " + f1.getName() + ": " + f1.isDirectory() + " " + f2.isDirectory() );
}
if( f1.isFile() != f2.isFile() ) {
System.err.println( "file comparison failed: " + f1.getName() + ": " + f1.isFile() + " " + f2.isFile() );
}
if( f1.getType() != f2.getType() ) {
System.err.println( "type comparison failed: " + f1.getName() + " " + f2.getName() );
}
if( f1.getName().equals( f2.getName() ) == false ) {
System.err.println( "name comparison failed: " + f1.getName() + " " + f2.getName() );
}
if( f1.length() != f2.length() ) {
System.err.println( "length comparison failed: " + f1.getName() + ": " + f1.length() + " " + f2.length() );
}
if( f1.getAttributes() != f2.getAttributes() ) {
System.err.println( "attribute comparison failed: " + f1.getName() + ": " + Hexdump.toHexString( f1.getAttributes(), 4 ) + " " + Hexdump.toHexString( f2.getAttributes(), 4 ));
}
if( Math.abs( f1.createTime() - f2.createTime() ) > 1000 ) {
System.err.println( "create time comparison failed: " + f1.getName() + ": " + f1.createTime() + " " + f2.createTime() );
}
if( Math.abs( f1.lastModified() - f2.lastModified() ) > 1000 ) {
System.err.println( "last modified comparison failed: " + f1.getName() + ": " + f1.lastModified() + " " + f2.lastModified() );
}
} catch( Exception x ) {
System.err.println( "Exception comparing: " + f1 + " | " + f2 );
x.printStackTrace();
}
}
void copyAndVerify() throws Exception {
from.copyTo( to );
compare( from, to );
}
public static void main( String[] argv ) throws Exception {
Properties prp;
Torture2[] threads;
String from, to;
int i;
if( argv.length < 1 ) {
System.err.println( "Torture2 " );
System.exit( 1 );
}
prp = new Properties();
prp.load( new FileInputStream( argv[0] ));
threads = new Torture2[10];
for( i = 0; i < 10; i++ ) {
from = prp.getProperty( "thread." + i + ".from.url" );
to = prp.getProperty( "thread." + i + ".to.url" );
if( from == null || to == null ) {
break;
}
threads[i] = new Torture2( from, to );
threads[i].start();
Thread.sleep( 12345 );
}
while( i-- > 0 ) {
threads[i].join();
}
System.err.println( "Test complete" );
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy