mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-14 12:35:22 +02:00
[cleanup] Organize Imports to resolve Javadoc IRapiSession
This commit is contained in:
parent
b6b8073c80
commit
6961f79a24
1 changed files with 227 additions and 226 deletions
|
@ -11,243 +11,244 @@
|
||||||
package org.eclipse.tm.rapi.tests;
|
package org.eclipse.tm.rapi.tests;
|
||||||
|
|
||||||
import org.eclipse.tm.rapi.IRapiDesktop;
|
import org.eclipse.tm.rapi.IRapiDesktop;
|
||||||
|
import org.eclipse.tm.rapi.IRapiSession;
|
||||||
import org.eclipse.tm.rapi.OS;
|
import org.eclipse.tm.rapi.OS;
|
||||||
import org.eclipse.tm.rapi.RapiException;
|
import org.eclipse.tm.rapi.RapiException;
|
||||||
import org.eclipse.tm.rapi.RapiFindData;
|
import org.eclipse.tm.rapi.RapiFindData;
|
||||||
|
|
||||||
public class RapiSessionTest extends RapiTestCase {
|
public class RapiSessionTest extends RapiTestCase {
|
||||||
|
|
||||||
private static final int TEMP_FILES_COUNT = 10;
|
private static final int TEMP_FILES_COUNT = 10;
|
||||||
private static final int TEST_FILE_SIZE = 8 * 1024;
|
private static final int TEST_FILE_SIZE = 8 * 1024;
|
||||||
private static final String TEST_FILE_NAME = "\\foo.bin";
|
private static final String TEST_FILE_NAME = "\\foo.bin";
|
||||||
private static final int CHUNK_SIZE = 1024;
|
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 String TEST_DIR_NAME = "bar";
|
||||||
* 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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
protected void setUp() throws Exception {
|
||||||
* Returns true if the specified <code>path</code> exists and it is a file.
|
super.setUp();
|
||||||
*/
|
}
|
||||||
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.
|
* Creates and initialize RAPI2 session
|
||||||
*/
|
*/
|
||||||
public void testReadWriteFiles() throws RapiException {
|
void createInitSession() throws RapiException {
|
||||||
createInitSession();
|
desktop = IRapiDesktop.getInstance();
|
||||||
|
enumDevices = desktop.enumDevices();
|
||||||
// generate random file content
|
device = enumDevices.next();
|
||||||
byte[] content = new byte[TEST_FILE_SIZE];
|
session = device.createSession();
|
||||||
for (int i = 0 ; i < content.length ; i++) {
|
session.init();
|
||||||
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,
|
* Returns true if the first <code>len</code> bytes of the specified arrays
|
||||||
OS.FILE_SHARE_READ, OS.OPEN_EXISTING, OS.FILE_ATTRIBUTE_NORMAL);
|
* are equal.
|
||||||
byte[] contentRead = new byte[TEST_FILE_SIZE];
|
*/
|
||||||
int br = session.readFile(handle, contentRead);
|
boolean arraysEqual(byte[] arr1, byte[] arr2, int len) {
|
||||||
session.closeHandle(handle);
|
for (int i = 0 ; i < len ; i++) {
|
||||||
assertTrue("Different file content", arraysEqual(content, contentRead, br));
|
if (arr1[i] != arr2[i]) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
// write the test file by chunks
|
/**
|
||||||
handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
|
* Returns true if the specified <code>path</code> exists and it is a directory.
|
||||||
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
|
*/
|
||||||
int off = 0;
|
boolean isDirectory(String path) {
|
||||||
for (int i = 0 ; i < TEST_FILE_SIZE / CHUNK_SIZE ; i++) {
|
int attr = session.getFileAttributes(path);
|
||||||
session.writeFile(handle, content, off, CHUNK_SIZE);
|
if (attr == -1) {
|
||||||
off += CHUNK_SIZE;
|
return false;
|
||||||
}
|
}
|
||||||
session.closeHandle(handle);
|
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) != 0;
|
||||||
|
}
|
||||||
// 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.
|
* Returns true if the specified <code>path</code> exists and it is a file.
|
||||||
*/
|
*/
|
||||||
public void testStatFiles() throws RapiException {
|
boolean isFile(String path) {
|
||||||
createInitSession();
|
int attr = session.getFileAttributes(path);
|
||||||
// create test file
|
if (attr == -1) {
|
||||||
int handle = session.createFile(TEST_FILE_NAME, OS.GENERIC_WRITE,
|
return false;
|
||||||
OS.FILE_SHARE_READ, OS.CREATE_ALWAYS, OS.FILE_ATTRIBUTE_NORMAL);
|
}
|
||||||
session.writeFile(handle, "spam".getBytes());
|
return (attr & OS.FILE_ATTRIBUTE_DIRECTORY) == 0;
|
||||||
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);
|
* Tests reading and writing files on the device.
|
||||||
assertTrue("Wrong file attributes", (attr & OS.FILE_ATTRIBUTE_ARCHIVE) != 0);
|
*/
|
||||||
//clean up
|
public void testReadWriteFiles() throws RapiException {
|
||||||
session.deleteFile(TEST_FILE_NAME);
|
createInitSession();
|
||||||
}
|
|
||||||
|
// generate random file content
|
||||||
protected void tearDown() throws Exception {
|
byte[] content = new byte[TEST_FILE_SIZE];
|
||||||
if (session != null) {
|
for (int i = 0 ; i < content.length ; i++) {
|
||||||
session.uninit();
|
content[i] = (byte)(Math.random() * 131);
|
||||||
}
|
}
|
||||||
super.tearDown();
|
|
||||||
}
|
// 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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue