You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kato-commits@incubator.apache.org by mo...@apache.org on 2009/05/14 14:48:50 UTC
svn commit: r774797 - in /incubator/kato/trunk/KatoHProfAdapterPOC:
src/org/apache/kato/hprof/image/ src/org/apache/kato/hprof/java/
testsrc/org/apache/kato/hprof/java/ testsrc/test/apache/kato/hprof/
testsrc/test/apache/kato/hprof/image/
Author: monteith
Date: Thu May 14 14:48:49 2009
New Revision: 774797
URL: http://svn.apache.org/viewvc?rev=774797&view=rev
Log:
Finish adding tests to the image API. Also fixup ImagePointer to return address space.
Added:
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java (with props)
Modified:
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageAddressSpaceImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImagePointerImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageProcessImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/IJavaHeapInternal.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassLoaderImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaHeapImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectArrayImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectInstanceImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveArrayImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveClassImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaRuntimeImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaStackFrameImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaThreadImpl.java
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaHeapImplTest.java
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaPrimitiveClassImplTest.java
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/TestJavaHeap.java
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageAddressSpace.java
incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageProcess.java
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageAddressSpaceImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageAddressSpaceImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageAddressSpaceImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageAddressSpaceImpl.java Thu May 14 14:48:49 2009
@@ -54,7 +54,7 @@
@Override
public ImagePointer getPointer(long address) {
- return new ImagePointerImpl(address);
+ return new ImagePointerImpl(address, this);
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageImpl.java Thu May 14 14:48:49 2009
@@ -25,19 +25,16 @@
public class ImageImpl implements Image {
HProfFile file=null;
-
+ List addressSpaces = new LinkedList();
public ImageImpl(HProfFile file) {
if(file==null) throw new IllegalArgumentException("file is null");
this.file=file;
-
+ addressSpaces.add(new ImageAddressSpaceImpl(this));
}
@Override
- public Iterator getAddressSpaces() {
- List list=new LinkedList();
- list.add(new ImageAddressSpaceImpl(this));
-
- return list.iterator();
+ public Iterator getAddressSpaces() {
+ return addressSpaces.iterator();
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImagePointerImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImagePointerImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImagePointerImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImagePointerImpl.java Thu May 14 14:48:49 2009
@@ -20,16 +20,16 @@
import org.apache.kato.image.MemoryAccessException;
public class ImagePointerImpl implements ImagePointer {
-
private long address=0;
+ private ImageAddressSpace addressSpace;
- public ImagePointerImpl(long address) {
+ public ImagePointerImpl(long address, ImageAddressSpace addressSpace) {
this.address=address;
+ this.addressSpace = addressSpace;
}
@Override
- public ImagePointer add(long offset) {
-
- return new ImagePointerImpl(address+offset);
+ public ImagePointer add(long offset) {
+ return new ImagePointerImpl(address+offset, addressSpace);
}
@Override
@@ -39,9 +39,8 @@
}
@Override
- public ImageAddressSpace getAddressSpace() {
-
- return null;
+ public ImageAddressSpace getAddressSpace() {
+ return addressSpace;
}
@Override
@@ -83,8 +82,8 @@
@Override
public ImagePointer getPointerAt(long index) throws MemoryAccessException,
CorruptDataException {
-
- return new ImagePointerImpl(index);
+ throwError();
+ return null;
}
@Override
@@ -114,4 +113,31 @@
throw new MemoryAccessException(this,"memory access invalid with hprof dump");
}
+ /**
+ * Is this a good hashcode?
+ */
+ @Override
+ public int hashCode() {
+ return (int) ( address % Integer.MAX_VALUE );
+ }
+
+ /**
+ * This is the same ImagePointer if the addresses are the same in the same addresspace.
+ */
+ @Override
+ public boolean equals(Object obj) {
+ if ( obj == null){
+ return false;
+ } else if (!(obj instanceof ImagePointerImpl)) {
+ return false;
+ }
+
+ ImageAddressSpace otherAddressSpace = ((ImagePointerImpl) obj).getAddressSpace();
+
+ if (otherAddressSpace.equals(getAddressSpace())) {
+ return address == ((ImagePointerImpl)obj).getAddress();
+ }
+
+ return false;
+ }
}
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageProcessImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageProcessImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageProcessImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/image/ImageProcessImpl.java Thu May 14 14:48:49 2009
@@ -24,6 +24,7 @@
import org.apache.kato.hprof.java.JavaRuntimeImpl;
import org.apache.kato.image.CorruptDataException;
import org.apache.kato.image.DataUnavailable;
+import org.apache.kato.image.ImageAddressSpace;
import org.apache.kato.image.ImageModule;
import org.apache.kato.image.ImageProcess;
import org.apache.kato.image.ImageThread;
@@ -99,7 +100,7 @@
public Iterator getRuntimes() {
if(javaRuntime==null) {
- javaRuntime=new JavaRuntimeImpl(this.view);
+ javaRuntime=new JavaRuntimeImpl(this.view, (ImageAddressSpace) imageImpl.getAddressSpaces().next());
}
List list=new LinkedList();
list.add(javaRuntime);
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/IJavaHeapInternal.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/IJavaHeapInternal.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/IJavaHeapInternal.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/IJavaHeapInternal.java Thu May 14 14:48:49 2009
@@ -15,6 +15,7 @@
import java.util.Collection;
+import org.apache.kato.image.ImagePointer;
import org.apache.kato.java.JavaHeap;
import org.apache.kato.java.JavaObject;
@@ -38,7 +39,7 @@
abstract JavaPrimitiveClassImpl getPrimitiveClass(int l);
- Collection<JavaClassLoaderImpl> getJavaClassLoaders();
-
+ abstract Collection<JavaClassLoaderImpl> getJavaClassLoaders();
+ abstract ImagePointer getImagePointer(long address);
}
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassImpl.java Thu May 14 14:48:49 2009
@@ -568,7 +568,7 @@
*/
@Override
public ImagePointer getID() {
- return new ImagePointerImpl(javaClass.getClassObjectID());
+ return heap.getImagePointer(javaClass.getClassObjectID());
}
/**
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassLoaderImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassLoaderImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassLoaderImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaClassLoaderImpl.java Thu May 14 14:48:49 2009
@@ -104,7 +104,7 @@
JavaClassImpl clazz = heap.getJavaClassByID(ID);
if (clazz == null) {
- return new CorruptDataImpl(new ImagePointerImpl(ID), "Can't match class object ID to a JavaClassImpl.");
+ return new CorruptDataImpl(heap.getImagePointer(ID), "Can't match class object ID to a JavaClassImpl.");
}
return clazz;
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaHeapImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaHeapImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaHeapImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaHeapImpl.java Thu May 14 14:48:49 2009
@@ -32,6 +32,8 @@
import org.apache.kato.hprof.datalayer.IHProfRecord;
import org.apache.kato.hprof.datalayer.IHeapDumpHProfRecord;
import org.apache.kato.hprof.datalayer.IHeapObject;
+import org.apache.kato.image.ImageAddressSpace;
+import org.apache.kato.image.ImagePointer;
import org.apache.kato.java.JavaObject;
@@ -44,11 +46,13 @@
public class JavaHeapImpl implements IJavaHeapInternal {
private HProfView view=null;
long heapRecordId=0;
+ private ImageAddressSpace addressSpace;
- public JavaHeapImpl(HProfView view,long loc) {
+ public JavaHeapImpl(HProfView view,long loc, ImageAddressSpace addressSpace) {
if(loc<1) throw new IllegalArgumentException("heap record id ["+loc+"] is less than 1");
this.view=view;
this.heapRecordId=loc;
+ this.addressSpace = addressSpace;
}
@Override
@@ -251,7 +255,7 @@
name ="<invalid primitive class type "+type+">";
}
- clazz = primitiveClasses[type-4] = new JavaPrimitiveClassImpl(name, type,
+ clazz = primitiveClasses[type-4] = new JavaPrimitiveClassImpl(name, getImagePointer(type),
this.getJavaClassLoaderByID(0)); // The system class loader is 0
}
@@ -304,5 +308,10 @@
public String getUTF8StringByID(long ID) {
return view.getUTF8String(ID);
}
+
+ @Override
+ public ImagePointer getImagePointer(long address) {
+ return addressSpace.getPointer(address);
+ }
}
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectArrayImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectArrayImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectArrayImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectArrayImpl.java Thu May 14 14:48:49 2009
@@ -101,7 +101,7 @@
@Override
public ImagePointer getID() {
- return new ImagePointerImpl(record.getID());
+ return heap.getImagePointer(record.getID());
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectInstanceImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectInstanceImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectInstanceImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaObjectInstanceImpl.java Thu May 14 14:48:49 2009
@@ -65,7 +65,7 @@
@Override
public ImagePointer getID() {
- return new ImagePointerImpl(record.getID());
+ return heap.getImagePointer(record.getID());
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveArrayImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveArrayImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveArrayImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveArrayImpl.java Thu May 14 14:48:49 2009
@@ -191,7 +191,7 @@
@Override
public ImagePointer getID() {
- return new ImagePointerImpl(record.getID());
+ return heap.getImagePointer(record.getID());
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveClassImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveClassImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveClassImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaPrimitiveClassImpl.java Thu May 14 14:48:49 2009
@@ -31,10 +31,10 @@
*/
public class JavaPrimitiveClassImpl implements JavaClass {
private String name;
- private int id;
+ private ImagePointer id;
private JavaClassLoader loader;
- public JavaPrimitiveClassImpl(String name, int id, JavaClassLoader loader) {
+ public JavaPrimitiveClassImpl(String name, ImagePointer id, JavaClassLoader loader) {
this.name = name;
this.id = id;
this.loader = loader;
@@ -69,7 +69,7 @@
@Override
public ImagePointer getID() {
// Use basic type id as the id.
- return new ImagePointerImpl(id);
+ return id;
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaRuntimeImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaRuntimeImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaRuntimeImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaRuntimeImpl.java Thu May 14 14:48:49 2009
@@ -13,19 +13,17 @@
******************************************************************************/
package org.apache.kato.hprof.java;
-import java.io.IOException;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
-import org.apache.kato.common.IViewMonitor;
import org.apache.kato.hprof.HProfView;
import org.apache.kato.hprof.IJavaThread;
-import org.apache.kato.hprof.datalayer.HProfFile;
import org.apache.kato.hprof.image.CorruptDataImpl;
import org.apache.kato.image.CorruptDataException;
import org.apache.kato.image.DataUnavailable;
+import org.apache.kato.image.ImageAddressSpace;
import org.apache.kato.image.ImagePointer;
import org.apache.kato.image.MemoryAccessException;
import org.apache.kato.java.JavaHeap;
@@ -36,9 +34,9 @@
public class JavaRuntimeImpl implements JavaRuntime {
private HProfView view=null;
- public JavaRuntimeImpl(HProfView view) {
+ public JavaRuntimeImpl(HProfView view, ImageAddressSpace addressSpace) {
this.view = view;
- heap = new JavaHeapImpl(view, view.getHeapRecordLocation());
+ heap = new JavaHeapImpl(view, view.getHeapRecordLocation(), addressSpace);
}
/**
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaStackFrameImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaStackFrameImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaStackFrameImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaStackFrameImpl.java Thu May 14 14:48:49 2009
@@ -35,7 +35,7 @@
*/
@Override
public ImagePointer getBasePointer() throws CorruptDataException {
- return new ImagePointerImpl(frame.getID());
+ return heap.getImagePointer(frame.getID());
}
@Override
@@ -69,7 +69,7 @@
@Override
public ImagePointer getAddress() throws CorruptDataException {
- return new ImagePointerImpl(frame.getID());
+ return heap.getImagePointer(frame.getID());
}
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaThreadImpl.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaThreadImpl.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaThreadImpl.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/src/org/apache/kato/hprof/java/JavaThreadImpl.java Thu May 14 14:48:49 2009
@@ -49,7 +49,7 @@
*/
@Override
public ImagePointer getJNIEnv() throws CorruptDataException {
- return new ImagePointerImpl(thread.getThreadSerialNumber());
+ return heap.getImagePointer(thread.getThreadSerialNumber());
}
@Override
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaHeapImplTest.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaHeapImplTest.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaHeapImplTest.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaHeapImplTest.java Thu May 14 14:48:49 2009
@@ -17,6 +17,8 @@
import java.util.HashMap;
import java.util.Iterator;
+import org.apache.kato.hprof.image.ImagePointerImpl;
+import org.apache.kato.image.ImagePointer;
import org.apache.kato.java.JavaObject;
/**
@@ -93,5 +95,9 @@
// TODO Auto-generated method stub
return null;
}
+ @Override
+ public ImagePointer getImagePointer(long address) {
+ return new ImagePointerImpl(address, null);
+ }
}
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaPrimitiveClassImplTest.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaPrimitiveClassImplTest.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaPrimitiveClassImplTest.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/org/apache/kato/hprof/java/JavaPrimitiveClassImplTest.java Thu May 14 14:48:49 2009
@@ -17,6 +17,7 @@
import junit.framework.TestCase;
+import org.apache.kato.hprof.image.ImagePointerImpl;
import org.apache.kato.java.JavaClass;
/**
@@ -29,7 +30,7 @@
static int id = 10;
public void setUp() {
- instance = new JavaPrimitiveClassImpl(className,id , null);
+ instance = new JavaPrimitiveClassImpl(className, new ImagePointerImpl(id,null) , null);
}
public void testName() throws Exception {
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/TestJavaHeap.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/TestJavaHeap.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/TestJavaHeap.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/TestJavaHeap.java Thu May 14 14:48:49 2009
@@ -25,7 +25,7 @@
public void testNullConstructor() {
try {
- JavaHeapImpl impl=new JavaHeapImpl(null,0);
+ JavaHeapImpl impl=new JavaHeapImpl(null,0, null);
fail("expected illegal argument exception");
}
catch(IllegalArgumentException iae) {
@@ -38,7 +38,7 @@
HProfView view=getMinimalHProfView();
try {
- JavaHeapImpl impl=new JavaHeapImpl(view,0);
+ JavaHeapImpl impl=new JavaHeapImpl(view,0, null);
fail("expected illegal argument exception");
}
catch(IllegalArgumentException iae) {
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageAddressSpace.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageAddressSpace.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageAddressSpace.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageAddressSpace.java Thu May 14 14:48:49 2009
@@ -17,6 +17,7 @@
import java.util.Iterator;
import org.apache.kato.image.ImageAddressSpace;
+import org.apache.kato.image.ImagePointer;
import org.apache.kato.image.ImageProcess;
public class TestImageAddressSpace extends AbstractHProfTestCase {
@@ -70,4 +71,34 @@
ImageProcess current=space.getCurrentProcess();
assertEquals("first image process is not current",current,p);
}
+
+ public void testEqualsEquals() throws Exception {
+ ImageAddressSpace space=getFirstAddressSpace();
+
+ assertTrue(space.equals(space));
+ }
+
+ public void testNotEqualsNull() throws Exception {
+ ImageAddressSpace space=getFirstAddressSpace();
+
+ assertFalse(space.equals(null));
+ }
+
+ public void testNotEqualsString() throws Exception {
+ ImageAddressSpace space=getFirstAddressSpace();
+
+ assertFalse(space.equals("String"));
+ }
+
+ public void testGetPointerZero() throws Exception {
+ ImagePointer pointer = getFirstAddressSpace().getPointer(0);
+
+ assertEquals(0, pointer.getAddress());
+ }
+
+ public void testGetPointerNonZero() throws Exception {
+ ImagePointer pointer = getFirstAddressSpace().getPointer(0xfefeededdcdccbcbL);
+
+ assertEquals(0xfefeededdcdccbcbL, pointer.getAddress());
+ }
}
Added: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java?rev=774797&view=auto
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java (added)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java Thu May 14 14:48:49 2009
@@ -0,0 +1,169 @@
+package test.apache.kato.hprof.image;
+
+import java.io.IOException;
+
+import org.apache.kato.image.CorruptDataException;
+import org.apache.kato.image.DataUnavailable;
+import org.apache.kato.image.ImageAddressSpace;
+import org.apache.kato.image.ImagePointer;
+import org.apache.kato.image.MemoryAccessException;
+
+public class TestImagePointer extends AbstractHProfTestCase {
+
+ ImageAddressSpace space;
+ ImagePointer pointer1;
+ static final long address1 = 0xfefeededdcdccbcbL;
+
+ public void setUp() throws IOException {
+ space = getFirstAddressSpace();
+ pointer1 = space.getPointer(address1);
+ }
+
+ public void testGetAddress() throws Exception {
+ assertEquals(address1, pointer1.getAddress());
+ }
+
+ public void testAdd() throws Exception {
+ ImagePointer pointer2 = pointer1.add(7);
+
+ assertEquals(address1+7, pointer2.getAddress());
+ }
+
+ public void testIsExecutable() throws Exception {
+ try {
+ pointer1.isExecutable();
+ fail("DataUnavailable should be thrown.");
+ } catch (DataUnavailable e) {
+ // Expected
+ }
+ }
+
+ public void testIsReadOnly() throws Exception {
+ try {
+ pointer1.isReadOnly();
+ fail("DataUnavailable should be thrown.");
+ } catch (DataUnavailable e) {
+ // Expected
+ }
+ }
+ public void testIsShared() throws Exception {
+ try {
+ pointer1.isShared();
+ fail("DataUnavailable should be thrown.");
+ } catch (DataUnavailable e) {
+ // Expected
+ }
+ }
+
+ public void testGetAddressSpace() throws Exception {
+ assertEquals(space, pointer1.getAddressSpace());
+ }
+
+ public void testGetByteAt() throws Exception {
+ try {
+ pointer1.getByteAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetDoubleAt() throws Exception {
+ try {
+ pointer1.getDoubleAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetFloatAt() throws Exception {
+ try {
+ pointer1.getFloatAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetIntAt() throws Exception {
+ try {
+ pointer1.getIntAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetLongAt() throws Exception {
+ try {
+ pointer1.getLongAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetShortAt() throws Exception {
+ try {
+ pointer1.getShortAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testGetPointerAt() throws Exception {
+ try {
+ pointer1.getPointerAt(0);
+ fail("Expected MemoryAccessException");
+ } catch (MemoryAccessException e) {
+ // expected
+ } catch (CorruptDataException e) {
+ fail("Expected MemoryAccessException");
+ }
+ }
+
+ public void testEqualsNull() throws Exception {
+ assertFalse(pointer1.equals(null));
+ }
+
+ public void testEqualsString() throws Exception {
+ assertFalse(pointer1.equals("Hello"));
+ }
+
+ public void testEqualsSelf() throws Exception {
+ assertTrue(pointer1.equals(pointer1));
+ }
+
+ public void testEqualsLike() throws Exception {
+ ImagePointer pointer2 = space.getPointer(address1);
+
+ assertTrue(pointer1.equals(pointer2));
+ }
+
+ public void testEqualsDifferent() throws Exception {
+ ImagePointer pointer2 = space.getPointer(0x2983474);
+
+ assertFalse(pointer1.equals(pointer2));
+ }
+
+ public void testHashCode() throws Exception {
+ ImagePointer pointer2 = space.getPointer(address1);
+ assertEquals(pointer1.hashCode(), pointer2.hashCode());
+ }
+
+
+}
Propchange: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImagePointer.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageProcess.java
URL: http://svn.apache.org/viewvc/incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageProcess.java?rev=774797&r1=774796&r2=774797&view=diff
==============================================================================
--- incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageProcess.java (original)
+++ incubator/kato/trunk/KatoHProfAdapterPOC/testsrc/test/apache/kato/hprof/image/TestImageProcess.java Thu May 14 14:48:49 2009
@@ -14,108 +14,173 @@
package test.apache.kato.hprof.image;
import java.io.IOException;
+import java.util.Iterator;
import org.apache.kato.image.CorruptDataException;
import org.apache.kato.image.DataUnavailable;
+import org.apache.kato.image.ImageAddressSpace;
import org.apache.kato.image.ImageProcess;
+import org.apache.kato.java.JavaRuntime;
public class TestImageProcess extends AbstractHProfTestCase {
-
+
public void testGetCommandLine() throws IOException, CorruptDataException {
-
+
ImageProcess process=getCurrentProcess();
try {
- process.getCommandLine();
- fail("expected DataUnavailable exception");
+ process.getCommandLine();
+ fail("expected DataUnavailable exception");
} catch(DataUnavailable du) {
-
+
}
-
-
+
+
}
-
-public void testGetEnvironment() throws IOException, CorruptDataException {
-
+
+ public void testGetEnvironment() throws IOException, CorruptDataException {
+
ImageProcess process=getCurrentProcess();
try {
- process.getEnvironment();
- fail("expected DataUnavailable exception");
+ process.getEnvironment();
+ fail("expected DataUnavailable exception");
} catch(DataUnavailable du) {
-
+
}
-
-
+
+
}
-public void testGetExecutable() throws IOException, CorruptDataException {
+ public void testGetExecutable() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+ try {
+ process.getExecutable();
+ fail("expected DataUnavailable exception");
+ } catch(DataUnavailable du) {
+
+ }
+
+
+ }
+ public void testGetLibraries() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+ try {
+ process.getLibraries();
+ fail("expected DataUnavailable exception");
+ } catch(DataUnavailable du) {
+
+ }
+
+
+ }
+ public void testGetSignalNumber() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+ try {
+ process.getSignalNumber();
+ fail("expected DataUnavailable exception");
+ } catch(DataUnavailable du) {
+
+ }
+
+
+ }
+ public void testGetSignalName() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+ try {
+ process.getSignalName();
+ fail("expected DataUnavailable exception");
+ } catch(DataUnavailable du) {
+
+ }
+
+
+ }
+
+ public void testGetID() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+ try {
+ process.getID();
+ fail("expected DataUnavailable exception");
+ } catch(DataUnavailable du) {
+
+ }
+
+
+ }
+ public void testGetPointerSize() throws IOException, CorruptDataException {
+
+ ImageProcess process=getCurrentProcess();
+
+ int size=process.getPointerSize();
+ assertTrue("pointer size ("+size+") is less than 1",size>0);
+
+ }
- ImageProcess process=getCurrentProcess();
- try {
- process.getExecutable();
- fail("expected DataUnavailable exception");
- } catch(DataUnavailable du) {
+ public void testGetThreadsNotNull() throws Exception {
+ ImageProcess process = getCurrentProcess();
+
+ Iterator threads = process.getThreads();
+ assertNotNull(threads);
}
-
-}
-public void testGetLibraries() throws IOException, CorruptDataException {
-
- ImageProcess process=getCurrentProcess();
- try {
- process.getLibraries();
- fail("expected DataUnavailable exception");
- } catch(DataUnavailable du) {
+ public void testGetThreadsEmpty() throws Exception {
+ ImageProcess process = getCurrentProcess();
+ Iterator threads = process.getThreads();
+
+ assertFalse(threads.hasNext());
}
-
-}
-public void testGetSignalNumber() throws IOException, CorruptDataException {
-
- ImageProcess process=getCurrentProcess();
- try {
- process.getSignalNumber();
- fail("expected DataUnavailable exception");
- } catch(DataUnavailable du) {
+ public void testGetCurrentThread() throws Exception {
+ ImageProcess process = getCurrentProcess();
+ assertNull(process.getCurrentThread());
}
-
-}
-public void testGetSignalName() throws IOException, CorruptDataException {
-
- ImageProcess process=getCurrentProcess();
- try {
- process.getSignalName();
- fail("expected DataUnavailable exception");
- } catch(DataUnavailable du) {
+ public void testGetRuntimes() throws Exception {
+ ImageProcess process = getCurrentProcess();
+
+ Iterator runtimes = process.getRuntimes();
+ int count = 0;
+
+ while (runtimes.hasNext()) {
+ Object obj = runtimes.next();
+ count++;
+ assertTrue(obj instanceof JavaRuntime);
+ }
+ assertEquals(1, count);
}
-
-}
-
-public void testGetID() throws IOException, CorruptDataException {
-
- ImageProcess process=getCurrentProcess();
- try {
- process.getID();
- fail("expected DataUnavailable exception");
- } catch(DataUnavailable du) {
+ public void testEqualsSelf() throws Exception {
+ ImageProcess process = getCurrentProcess();
+ assertTrue(process.equals(process));
}
+ public void testEqualsNull() throws Exception {
+ ImageProcess process = getCurrentProcess();
+
+ assertFalse(process.equals(null));
+ }
-}
-public void testGetPointerSize() throws IOException, CorruptDataException {
-
- ImageProcess process=getCurrentProcess();
-
- int size=process.getPointerSize();
- assertTrue("pointer size ("+size+") is less than 1",size>0);
+ public void testEqualsString() throws Exception {
+ ImageProcess process = getCurrentProcess();
+
+ assertFalse(process.equals("This is not a Process"));
+ }
-}
+ public void testEqualsOther() throws Exception {
+ ImageProcess populatedProcess = ((ImageAddressSpace)(getPopulatedImage().getAddressSpaces().next())).getCurrentProcess();
+ ImageProcess process = getCurrentProcess();
+
+ assertFalse(process.equals(populatedProcess));
+ }
}