1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 23:25:26 +02:00

[cleanup] Organize Imports to resolve Javadoc IRapiSession

This commit is contained in:
Martin Oberhuber 2008-03-31 12:34:08 +00:00
parent b6b8073c80
commit 6961f79a24

View file

@ -11,243 +11,244 @@
package org.eclipse.tm.rapi.tests;
import org.eclipse.tm.rapi.IRapiDesktop;
import org.eclipse.tm.rapi.IRapiSession;
import org.eclipse.tm.rapi.OS;
import org.eclipse.tm.rapi.RapiException;
import org.eclipse.tm.rapi.RapiFindData;
public class RapiSessionTest extends RapiTestCase {
private static final int TEMP_FILES_COUNT = 10;
private static final int TEST_FILE_SIZE = 8 * 1024;
private static final String TEST_FILE_NAME = "\\foo.bin";
private static final int CHUNK_SIZE = 1024;
private static final String TEST_DIR_NAME = "bar";
protected void setUp() throws Exception {
super.setUp();
}
private static final int TEMP_FILES_COUNT = 10;
private static final int TEST_FILE_SIZE = 8 * 1024;
private static final String TEST_FILE_NAME = "\\foo.bin";
private static final int CHUNK_SIZE = 1024;
/**
* Creates and initialize RAPI2 session
*/
void createInitSession() throws RapiException {
desktop = IRapiDesktop.getInstance();
enumDevices = desktop.enumDevices();
device = enumDevices.next();
session = device.createSession();
session.init();
}
/**
* Returns true if the first <code>len</code> bytes of the specified arrays
* are equal.
*/
boolean arraysEqual(byte[] arr1, byte[] arr2, int len) {
for (int i = 0 ; i < len ; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
/**
* Returns true if the specified <code>path</code> exists and it is a directory.
*/
boolean isDirectory(String path) {
int attr = session.getFileAttributes(path);
if (attr == -1) {
return false;
}
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) != 0;
}
private static final String TEST_DIR_NAME = "bar";
/**
* Returns true if the specified <code>path</code> exists and it is a file.
*/
boolean isFile(String path) {
int attr = session.getFileAttributes(path);
if (attr == -1) {
return false;
}
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) == 0;
}
protected void setUp() throws Exception {
super.setUp();
}
/**
* Tests reading and writing files on the device.
*/
public void testReadWriteFiles() throws RapiException {
createInitSession();
// generate random file content
byte[] content = new byte[TEST_FILE_SIZE];
for (int i = 0 ; i < content.length ; i++) {
content[i] = (byte)(Math.random() * 131);
}
// write the test file at once
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, content);
session.closeHandle(handle);
/**
* Creates and initialize RAPI2 session
*/
void createInitSession() throws RapiException {
desktop = IRapiDesktop.getInstance();
enumDevices = desktop.enumDevices();
device = enumDevices.next();
session = device.createSession();
session.init();
}
// try to read the whole file
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_READ,
OS.FILE_SHARE_READ, OS.OPEN_EXISTING, OS.FILE_ATTRIBUTE_NORMAL);
byte[] contentRead = new byte[TEST_FILE_SIZE];
int br = session.readFile(handle, contentRead);
session.closeHandle(handle);
assertTrue("Different file content", arraysEqual(content, contentRead, br));
/**
* Returns true if the first <code>len</code> bytes of the specified arrays
* are equal.
*/
boolean arraysEqual(byte[] arr1, byte[] arr2, int len) {
for (int i = 0 ; i < len ; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
// write the test file by chunks
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
int off = 0;
for (int i = 0 ; i < TEST_FILE_SIZE / CHUNK_SIZE ; i++) {
session.writeFile(handle, content, off, CHUNK_SIZE);
off += CHUNK_SIZE;
}
session.closeHandle(handle);
// read the test file by chunks
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_READ,
OS.FILE_SHARE_READ, OS.OPEN_EXISTING, OS.FILE_ATTRIBUTE_NORMAL);
byte[] contentRead2 = new byte[TEST_FILE_SIZE];
off = 0;
int bytesToRead = TEST_FILE_SIZE;
while (bytesToRead > 0) {
int len = CHUNK_SIZE < bytesToRead ? CHUNK_SIZE : bytesToRead;
br = session.readFile(handle, contentRead2, off, len);
off += br;
bytesToRead -= br;
}
session.closeHandle(handle);
assertTrue("Different file content", arraysEqual(content, contentRead2, TEST_FILE_SIZE));
// delete the test file
session.deleteFile(TEST_FILE_NAME);
}
/**
* Tests creating and removing directories on the device.
*/
public void testCreateRemoveDirectories() throws RapiException {
createInitSession();
try {
session.removeDirectory(TEST_DIR_NAME);
} catch (RapiException re) {
// ignore
}
session.createDirectory(TEST_DIR_NAME);
assertTrue("Failed to create directory", isDirectory(TEST_DIR_NAME));
session.removeDirectory(TEST_DIR_NAME);
assertFalse("Failed to remove directory", isDirectory(TEST_DIR_NAME));
}
/**
* Tests copying, moving and deleting files on the device.
*/
public void testCopyMoveDeleteFiles() throws RapiException {
createInitSession();
// create test file
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
session.closeHandle(handle);
// make a copy
String copy = TEST_FILE_NAME + "1";
session.copyFile(TEST_FILE_NAME, copy);
assertTrue("Failed to copy file", isFile(copy));
// delete the test file
session.deleteFile(TEST_FILE_NAME);
assertFalse("Failed to delete file", isFile(TEST_FILE_NAME));
// rename the copy
session.moveFile(copy, TEST_FILE_NAME);
assertTrue("Failed to move file", isFile(TEST_FILE_NAME));
assertFalse("Failed to move file", isFile(copy));
// delete test file
session.deleteFile(TEST_FILE_NAME);
}
/**
* Utility method for creating a bunch of files.
*/
void createTempFiles() throws RapiException {
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
int handle = session.createFile(TEST_FILE_NAME + i, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
session.closeHandle(handle);
}
}
/**
* Tests finding files using {@link IRapiSession#findFirstFile(String, RapiFindData)}
*/
public void testFindFiles() throws RapiException {
createInitSession();
createTempFiles();
int filesFound = 0;
RapiFindData findData = new RapiFindData();
int fh = session.findFirstFile(TEST_FILE_NAME + "?", findData);
while (findData != null) {
filesFound++;
findData = session.findNextFile(fh);
}
session.findClose(fh);
assertTrue("Found " + filesFound + " , expected " + TEMP_FILES_COUNT,
filesFound == TEMP_FILES_COUNT);
// clean up
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
session.deleteFile(TEST_FILE_NAME + i);
}
}
/**
* Tests finding files using {@link IRapiSession#findAllFiles(String, int)}
*/
public void testFindAllFiles() throws RapiException {
createInitSession();
createTempFiles();
RapiFindData[] faf = session.findAllFiles(TEST_FILE_NAME + "?", OS.FAF_NAME);
int filesFound = faf.length;
assertTrue("Found " + filesFound + " , expected " + TEMP_FILES_COUNT,
filesFound == TEMP_FILES_COUNT);
// clean up
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
session.deleteFile(TEST_FILE_NAME + i);
}
}
/**
* Returns true if the specified <code>path</code> exists and it is a directory.
*/
boolean isDirectory(String path) {
int attr = session.getFileAttributes(path);
if (attr == -1) {
return false;
}
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) != 0;
}
/**
* Tests getting file attributes, size, etc.
*/
public void testStatFiles() throws RapiException {
createInitSession();
// create test file
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
assertTrue("Wrong file size", 4 == session.getFileSize(handle));
//TODO: add some checks for file times (creation, last modified, etc)
session.closeHandle(handle);
int attr = session.getFileAttributes(TEST_FILE_NAME);
assertTrue("Wrong file attributes", (attr & OS.FILE_ATTRIBUTE_ARCHIVE) != 0);
//clean up
session.deleteFile(TEST_FILE_NAME);
}
protected void tearDown() throws Exception {
if (session != null) {
session.uninit();
}
super.tearDown();
}
/**
* Returns true if the specified <code>path</code> exists and it is a file.
*/
boolean isFile(String path) {
int attr = session.getFileAttributes(path);
if (attr == -1) {
return false;
}
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) == 0;
}
/**
* Tests reading and writing files on the device.
*/
public void testReadWriteFiles() throws RapiException {
createInitSession();
// generate random file content
byte[] content = new byte[TEST_FILE_SIZE];
for (int i = 0 ; i < content.length ; i++) {
content[i] = (byte)(Math.random() * 131);
}
// write the test file at once
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, content);
session.closeHandle(handle);
// try to read the whole file
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_READ,
OS.FILE_SHARE_READ, OS.OPEN_EXISTING, OS.FILE_ATTRIBUTE_NORMAL);
byte[] contentRead = new byte[TEST_FILE_SIZE];
int br = session.readFile(handle, contentRead);
session.closeHandle(handle);
assertTrue("Different file content", arraysEqual(content, contentRead, br));
// write the test file by chunks
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
int off = 0;
for (int i = 0 ; i < TEST_FILE_SIZE / CHUNK_SIZE ; i++) {
session.writeFile(handle, content, off, CHUNK_SIZE);
off += CHUNK_SIZE;
}
session.closeHandle(handle);
// read the test file by chunks
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_READ,
OS.FILE_SHARE_READ, OS.OPEN_EXISTING, OS.FILE_ATTRIBUTE_NORMAL);
byte[] contentRead2 = new byte[TEST_FILE_SIZE];
off = 0;
int bytesToRead = TEST_FILE_SIZE;
while (bytesToRead > 0) {
int len = CHUNK_SIZE < bytesToRead ? CHUNK_SIZE : bytesToRead;
br = session.readFile(handle, contentRead2, off, len);
off += br;
bytesToRead -= br;
}
session.closeHandle(handle);
assertTrue("Different file content", arraysEqual(content, contentRead2, TEST_FILE_SIZE));
// delete the test file
session.deleteFile(TEST_FILE_NAME);
}
/**
* Tests creating and removing directories on the device.
*/
public void testCreateRemoveDirectories() throws RapiException {
createInitSession();
try {
session.removeDirectory(TEST_DIR_NAME);
} catch (RapiException re) {
// ignore
}
session.createDirectory(TEST_DIR_NAME);
assertTrue("Failed to create directory", isDirectory(TEST_DIR_NAME));
session.removeDirectory(TEST_DIR_NAME);
assertFalse("Failed to remove directory", isDirectory(TEST_DIR_NAME));
}
/**
* Tests copying, moving and deleting files on the device.
*/
public void testCopyMoveDeleteFiles() throws RapiException {
createInitSession();
// create test file
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
session.closeHandle(handle);
// make a copy
String copy = TEST_FILE_NAME + "1";
session.copyFile(TEST_FILE_NAME, copy);
assertTrue("Failed to copy file", isFile(copy));
// delete the test file
session.deleteFile(TEST_FILE_NAME);
assertFalse("Failed to delete file", isFile(TEST_FILE_NAME));
// rename the copy
session.moveFile(copy, TEST_FILE_NAME);
assertTrue("Failed to move file", isFile(TEST_FILE_NAME));
assertFalse("Failed to move file", isFile(copy));
// delete test file
session.deleteFile(TEST_FILE_NAME);
}
/**
* Utility method for creating a bunch of files.
*/
void createTempFiles() throws RapiException {
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
int handle = session.createFile(TEST_FILE_NAME + i, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
session.closeHandle(handle);
}
}
/**
* Tests finding files using {@link IRapiSession#findFirstFile(String, RapiFindData)}
*/
public void testFindFiles() throws RapiException {
createInitSession();
createTempFiles();
int filesFound = 0;
RapiFindData findData = new RapiFindData();
int fh = session.findFirstFile(TEST_FILE_NAME + "?", findData);
while (findData != null) {
filesFound++;
findData = session.findNextFile(fh);
}
session.findClose(fh);
assertTrue("Found " + filesFound + " , expected " + TEMP_FILES_COUNT,
filesFound == TEMP_FILES_COUNT);
// clean up
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
session.deleteFile(TEST_FILE_NAME + i);
}
}
/**
* Tests finding files using {@link IRapiSession#findAllFiles(String, int)}
*/
public void testFindAllFiles() throws RapiException {
createInitSession();
createTempFiles();
RapiFindData[] faf = session.findAllFiles(TEST_FILE_NAME + "?", OS.FAF_NAME);
int filesFound = faf.length;
assertTrue("Found " + filesFound + " , expected " + TEMP_FILES_COUNT,
filesFound == TEMP_FILES_COUNT);
// clean up
for (int i = 0 ; i < TEMP_FILES_COUNT ; i++) {
session.deleteFile(TEST_FILE_NAME + i);
}
}
/**
* Tests getting file attributes, size, etc.
*/
public void testStatFiles() throws RapiException {
createInitSession();
// create test file
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
session.writeFile(handle, "spam".getBytes());
assertTrue("Wrong file size", 4 == session.getFileSize(handle));
//TODO: add some checks for file times (creation, last modified, etc)
session.closeHandle(handle);
int attr = session.getFileAttributes(TEST_FILE_NAME);
assertTrue("Wrong file attributes", (attr & OS.FILE_ATTRIBUTE_ARCHIVE) != 0);
//clean up
session.deleteFile(TEST_FILE_NAME);
}
protected void tearDown() throws Exception {
if (session != null) {
session.uninit();
}
super.tearDown();
}
}