- build file updated for .configure

- test directory added

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@186 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
schlaepfer
2006-10-26 13:24:55 +00:00
parent 21926fdef8
commit 1ae8222412
2 changed files with 244 additions and 1 deletions

View File

@@ -18,6 +18,15 @@
<property file="project.properties" />
<property file="version.properties" />
<patternset id="classfiles">
<include name="**/usb/**/*.class" />
<exclude name="**/test/*" />
</patternset>
<patternset id="configfiles">
<include name="**/*.configure"/>
</patternset>
<target name="clean" description="--> Clean all folders">
<delete dir="${project.dir.bin}" />
<delete dir="${project.dir.doc}" />
@@ -31,7 +40,14 @@
<target name="jar" depends="compile" description="--> Create Jar">
<mkdir dir="${project.dir.lib}" />
<jar destfile="${project.dir.lib}/${project.jarfile}" basedir="${project.dir.bin}">
<echo>Building Version ${version.major}.${version.minor}.${version.release}</echo>
<jar destfile="${project.dir.lib}/${project.jarfile}">
<fileset dir="${project.dir.bin}">
<patternset refid="classfiles" />
</fileset>
<fileset dir="${project.dir.src}">
<patternset refid="configfiles" />
</fileset>
<manifest>
<attribute name="Built-By" value="${user.name}" />
<section name="common">

View File

@@ -0,0 +1,227 @@
package ch.ntb.usb;
import static org.junit.Assert.fail;
import junit.framework.Assert;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class DeviceTest {
private static final short IdVendor = (short) 0x8235;
private static final short IdProduct = 0x0222;
private static final int Timeout = 20000;
private static final int Configuration = 1;
private static final int Interface = 0;
private static final int Altinterface = 0;
private static final int OUT_EP_BULK = 0x01;
private static int IN_EP_BULK = 0x82;
private static final int OUT_EP_INT = 0x03;
private static final int IN_EP_INT = 0x84;
private static final int Sleep_Timeout = 2000;
private static byte[] testData;
private static byte[] readData;
private static enum WriteMode {
Bulk, Interrupt
}
private static WriteMode mode;
private static Device dev;
@BeforeClass
public static void setUp() throws Exception {
// setup test data
testData = new byte[USB.FULLSPEED_MAX_BULK_PACKET_SIZE];
readData = new byte[testData.length];
// initialise the device
dev = USB.getDevice(IdVendor, IdProduct);
dev.open(Configuration, Interface, Altinterface);
dev.reset();
timeout();
mode = WriteMode.Bulk;
}
@Test(expected=USBException.class)
public void testClose() throws Exception {
dev.open(Configuration, Interface, Altinterface);
dev.close();
// this call must throw an exception, because the device is closed
dev.writeBulk(OUT_EP_BULK, testData, testData.length, Timeout, false);
}
@Test
public void testReset() throws Exception {
dev.open(Configuration, Interface, Altinterface);
dev.reset();
try {
// this call must throw an exception, because the device is closed
dev.writeBulk(OUT_EP_BULK, testData, testData.length, Timeout,
false);
fail();
} catch (Exception e) {
// must throw an exception
}
try {
// this call must throw an exception, because the device can't be
// closed
dev.close();
fail();
} catch (Exception e) {
// must throw an exception
}
}
@Test
public void testBulk() throws Exception {
mode = WriteMode.Bulk;
timeout();
testOpenWriteClose();
}
@Test
public void testBulkMultiple() throws Exception {
final int NumberOfIterations = 20;
try {
timeout();
dev.open(Configuration, Interface, Altinterface);
for (int i = 0; i < NumberOfIterations; i++) {
initTestData();
dev.writeBulk(OUT_EP_BULK, testData, testData.length, Timeout, true);
dev.readBulk(IN_EP_BULK, readData, readData.length, Timeout, true);
compare(testData, readData);
}
dev.close();
} catch (USBException e) {
dev.close();
throw new USBException(e.getMessage());
}
}
@Test
public void testInterrupt() throws Exception {
mode = WriteMode.Interrupt;
testOpenWriteClose();
}
@Test
public void testBulkAndInterrupt() throws Exception {
timeout();
dev.open(Configuration, Interface, Altinterface);
// BULK
initTestData();
dev.writeBulk(OUT_EP_BULK, testData, testData.length, Timeout, false);
dev.readBulk(IN_EP_BULK, readData, readData.length, Timeout, false);
compare(testData, readData);
// INTERRUPT
initTestData();
dev.writeInterrupt(OUT_EP_INT, testData, testData.length, Timeout,
false);
// TODO change to readInterrupt
dev.readBulk(IN_EP_INT, readData, readData.length, Timeout, false);
compare(testData, readData);
dev.close();
}
@Test
public void testBulkAndInterruptMultiple() {
mode = WriteMode.Bulk;
timeout();
}
@Test
public void testGetIdProduct() {
Assert.assertTrue(dev.getIdProduct() == IdProduct);
}
@Test
public void testGetIdVendor() {
Assert.assertTrue(dev.getIdVendor() == IdVendor);
}
@Test
public void testGetAltinterface() {
Assert.assertTrue(dev.getAltinterface() == Altinterface);
}
@Test
public void testGetConfiguration() {
Assert.assertTrue(dev.getConfiguration() == Configuration);
}
@Test
public void testGetInterface() {
Assert.assertTrue(dev.getInterface() == Interface);
}
@Test
public void testGetMaxPacketSize() {
Assert
.assertTrue(dev.getMaxPacketSize() == USB.FULLSPEED_MAX_BULK_PACKET_SIZE);
}
@AfterClass
public static void tearDown() {
try {
dev.close();
} catch (USBException e) {
// ignore Exceptions
}
}
private void testOpenWriteClose() throws Exception {
dev.open(Configuration, Interface, Altinterface);
initTestData();
if (mode == WriteMode.Bulk) {
dev.writeBulk(OUT_EP_BULK, testData, testData.length, Timeout,
false);
dev.readBulk(IN_EP_BULK, readData, readData.length, Timeout, false);
} else if (mode == WriteMode.Interrupt) {
dev.writeInterrupt(OUT_EP_INT, testData, testData.length, Timeout,
false);
// TODO change to readInterrupt
dev.readBulk(IN_EP_INT, readData, readData.length, Timeout, false);
}
compare(testData, readData);
dev.close();
}
private static void compare(byte[] d1, byte[] d2) {
int minLength = Math.min(d1.length, d2.length);
for (int i = 0; i < minLength; i++) {
if (d1[i] != d2[i])
fail("received data not equal to sent data");
}
}
private static void timeout() {
try {
Thread.sleep(Sleep_Timeout);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
private static void initTestData() {
for (int i = 0; i < testData.length; i++) {
testData[i] = (byte) (Math.random() * 0xff);
readData[i] = 0;
}
}
}