diff options
| author | 2014-09-14 19:06:55 -0400 | |
|---|---|---|
| committer | 2014-09-14 19:06:55 -0400 | |
| commit | aa68099bb252dd1a1c275459f8babe537868bcaf (patch) | |
| tree | 88e600c5d3aec3e0d06558a8b7615a17cb80b34f /test/cuchaz | |
| parent | added some tests for a small inheritance hierarchy (diff) | |
| download | enigma-aa68099bb252dd1a1c275459f8babe537868bcaf.tar.gz enigma-aa68099bb252dd1a1c275459f8babe537868bcaf.tar.xz enigma-aa68099bb252dd1a1c275459f8babe537868bcaf.zip | |
fixed bug with method references pointing to wrong class
Diffstat (limited to 'test/cuchaz')
5 files changed, 26 insertions, 2 deletions
diff --git a/test/cuchaz/enigma/TestJarIndexInheritanceTree.java b/test/cuchaz/enigma/TestJarIndexInheritanceTree.java index 5ded5df0..3d488ee4 100644 --- a/test/cuchaz/enigma/TestJarIndexInheritanceTree.java +++ b/test/cuchaz/enigma/TestJarIndexInheritanceTree.java | |||
| @@ -220,7 +220,8 @@ public class TestJarIndexInheritanceTree | |||
| 220 | source = new MethodEntry( m_baseClass, "a", "()Ljava/lang/String;" ); | 220 | source = new MethodEntry( m_baseClass, "a", "()Ljava/lang/String;" ); |
| 221 | references = m_index.getBehaviorReferences( source ); | 221 | references = m_index.getBehaviorReferences( source ); |
| 222 | assertThat( references, containsInAnyOrder( | 222 | assertThat( references, containsInAnyOrder( |
| 223 | newBehaviorReferenceByMethod( source, m_subClassAA.getName(), "a", "()Ljava/lang/String;" ) | 223 | newBehaviorReferenceByMethod( source, m_subClassAA.getName(), "a", "()Ljava/lang/String;" ), |
| 224 | newBehaviorReferenceByMethod( source, m_subClassB.getName(), "a", "()V" ) | ||
| 224 | ) ); | 225 | ) ); |
| 225 | 226 | ||
| 226 | // subclassAA.getName() | 227 | // subclassAA.getName() |
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java b/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java index a6b38454..8402dde3 100644 --- a/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java +++ b/test/cuchaz/enigma/inputs/inheritanceTree/BaseClass.java | |||
| @@ -1,18 +1,23 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | 1 | package cuchaz.enigma.inputs.inheritanceTree; |
| 2 | 2 | ||
| 3 | // none/a | ||
| 3 | public abstract class BaseClass | 4 | public abstract class BaseClass |
| 4 | { | 5 | { |
| 6 | // a | ||
| 5 | private String m_name; | 7 | private String m_name; |
| 6 | 8 | ||
| 9 | // <init>(Ljava/lang/String;)V | ||
| 7 | protected BaseClass( String name ) | 10 | protected BaseClass( String name ) |
| 8 | { | 11 | { |
| 9 | m_name = name; | 12 | m_name = name; |
| 10 | } | 13 | } |
| 11 | 14 | ||
| 15 | // a()Ljava/lang/String; | ||
| 12 | public String getName( ) | 16 | public String getName( ) |
| 13 | { | 17 | { |
| 14 | return m_name; | 18 | return m_name; |
| 15 | } | 19 | } |
| 16 | 20 | ||
| 21 | // a()V | ||
| 17 | public abstract void doBaseThings( ); | 22 | public abstract void doBaseThings( ); |
| 18 | } | 23 | } |
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java index f4780a26..ed507093 100644 --- a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassA.java | |||
| @@ -1,9 +1,12 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | 1 | package cuchaz.enigma.inputs.inheritanceTree; |
| 2 | 2 | ||
| 3 | // none/b extends none/a | ||
| 3 | public abstract class SubclassA extends BaseClass | 4 | public abstract class SubclassA extends BaseClass |
| 4 | { | 5 | { |
| 6 | // <init>(Ljava/lang/String;)V | ||
| 5 | protected SubclassA( String name ) | 7 | protected SubclassA( String name ) |
| 6 | { | 8 | { |
| 9 | // call to none/a.<init>(Ljava/lang/String)V | ||
| 7 | super( name ); | 10 | super( name ); |
| 8 | } | 11 | } |
| 9 | } | 12 | } |
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java index 4001e7a3..fc4c8eed 100644 --- a/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubclassB.java | |||
| @@ -1,24 +1,33 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | 1 | package cuchaz.enigma.inputs.inheritanceTree; |
| 2 | 2 | ||
| 3 | // none/c extends none/a | ||
| 3 | public class SubclassB extends BaseClass | 4 | public class SubclassB extends BaseClass |
| 4 | { | 5 | { |
| 6 | // a | ||
| 5 | private int m_numThings; | 7 | private int m_numThings; |
| 6 | 8 | ||
| 9 | // <init>()V | ||
| 7 | protected SubclassB( ) | 10 | protected SubclassB( ) |
| 8 | { | 11 | { |
| 12 | // none/a.<init>(Ljava/lang/String;)V | ||
| 9 | super( "B" ); | 13 | super( "B" ); |
| 10 | 14 | ||
| 15 | // access to a | ||
| 11 | m_numThings = 4; | 16 | m_numThings = 4; |
| 12 | } | 17 | } |
| 13 | 18 | ||
| 14 | @Override | 19 | @Override |
| 20 | // a()V | ||
| 15 | public void doBaseThings( ) | 21 | public void doBaseThings( ) |
| 16 | { | 22 | { |
| 17 | System.out.println( "Base things by B!" ); | 23 | // call to none/a.a()Ljava/lang/String; |
| 24 | System.out.println( "Base things by B! " + getName() ); | ||
| 18 | } | 25 | } |
| 19 | 26 | ||
| 27 | // b()V | ||
| 20 | public void doBThings( ) | 28 | public void doBThings( ) |
| 21 | { | 29 | { |
| 30 | // access to a | ||
| 22 | System.out.println( "" + m_numThings + " B things!" ); | 31 | System.out.println( "" + m_numThings + " B things!" ); |
| 23 | } | 32 | } |
| 24 | } | 33 | } |
diff --git a/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java b/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java index 11196d16..b3b83429 100644 --- a/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java +++ b/test/cuchaz/enigma/inputs/inheritanceTree/SubsubclassAA.java | |||
| @@ -1,21 +1,27 @@ | |||
| 1 | package cuchaz.enigma.inputs.inheritanceTree; | 1 | package cuchaz.enigma.inputs.inheritanceTree; |
| 2 | 2 | ||
| 3 | // none/d extends none/b | ||
| 3 | public class SubsubclassAA extends SubclassA | 4 | public class SubsubclassAA extends SubclassA |
| 4 | { | 5 | { |
| 5 | protected SubsubclassAA( ) | 6 | protected SubsubclassAA( ) |
| 6 | { | 7 | { |
| 8 | // call to none/b.<init>(Ljava/lang/String;)V | ||
| 7 | super( "AA" ); | 9 | super( "AA" ); |
| 8 | } | 10 | } |
| 9 | 11 | ||
| 10 | @Override | 12 | @Override |
| 13 | // a()Ljava/lang/String; | ||
| 11 | public String getName( ) | 14 | public String getName( ) |
| 12 | { | 15 | { |
| 16 | // call to none/b.a()Ljava/lang/String; | ||
| 13 | return "subsub" + super.getName(); | 17 | return "subsub" + super.getName(); |
| 14 | } | 18 | } |
| 15 | 19 | ||
| 16 | @Override | 20 | @Override |
| 21 | // a()V | ||
| 17 | public void doBaseThings( ) | 22 | public void doBaseThings( ) |
| 18 | { | 23 | { |
| 24 | // call to none/d.a()Ljava/lang/String; | ||
| 19 | System.out.println( "Base things by " + getName() ); | 25 | System.out.println( "Base things by " + getName() ); |
| 20 | } | 26 | } |
| 21 | } | 27 | } |