Skip to content

Commit fd97b95

Browse files
committed
Get all tests passing
1 parent 91f36c3 commit fd97b95

File tree

1 file changed

+33
-56
lines changed

1 file changed

+33
-56
lines changed

pyjdb/pyjdb_test.py

Lines changed: 33 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ def matcher(event_raw):
8787
return True
8888
return False
8989
_, test_class_prepare_event = self.jdwp.await_event(matcher)
90-
class_prepare_event = test_class_prepare_event["events"][0]["ClassPrepare"]
90+
return test_class_prepare_event["events"][0]["ClassPrepare"]
9191

9292
def set_breakpoint_in_main(self, main_class_name):
9393
self.resume_and_await_class_load(main_class_name, self.jdwp.SuspendPolicy.ALL)
@@ -119,24 +119,7 @@ def matcher(event_raw):
119119
return True
120120
self.jdwp.VirtualMachine.Resume()
121121
_, breakpoint_events = self.jdwp.await_event(matcher)
122-
return breakpoint_events
123-
124-
def test_resume_and_await_class_load(self):
125-
self.resume_and_await_class_load("PyjdbTest")
126-
127-
def test_set_breakpoint_in_main(self):
128-
breakpoint_events = self.set_breakpoint_in_main("PyjdbTest")
129-
self.assertIn("events", breakpoint_events)
130-
self.assertIn("suspendPolicy", breakpoint_events)
131-
self.assertEquals(len(breakpoint_events["events"]), 1)
132-
self.assertIn("Breakpoint", breakpoint_events["events"][0])
133-
breakpoint_event = breakpoint_events["events"][0]["Breakpoint"]
134-
self.assertIn("classID", breakpoint_event)
135-
self.assertIn("index", breakpoint_event)
136-
self.assertIn("methodID", breakpoint_event)
137-
self.assertIn("thread", breakpoint_event)
138-
self.assertIn("requestID", breakpoint_event)
139-
self.assertIn("typeTag", breakpoint_event)
122+
return breakpoint_events["events"][0]["Breakpoint"]
140123

141124

142125
class VirtualMachineTest(PyjdbTestBase):
@@ -517,8 +500,7 @@ def setUp(self):
517500
"signature": u"Ljava/lang/Integer;"})["classes"][0]["typeID"]
518501
self.system_class_id = self.jdwp.VirtualMachine.ClassesBySignature({
519502
"signature": u"Ljava/lang/System;"})["classes"][0]["typeID"]
520-
self.breakpoint_event = self.set_breakpoint_in_main(
521-
"ClassTypeTest")["events"][0]["Breakpoint"]
503+
self.breakpoint_event = self.set_breakpoint_in_main("ClassTypeTest")
522504

523505
def test_class_type_superclass(self):
524506
superclass_resp = self.jdwp.ClassType.Superclass({
@@ -619,58 +601,52 @@ class MethodTest(PyjdbTestBase):
619601
def setUpClass(cls):
620602
cls.debug_target_code = """
621603
public class MethodTest {
604+
public static int getNumber() {
605+
int a = 10;
606+
int b = 5;
607+
int result = a + b;
608+
return result;
609+
}
610+
622611
public static void main(String[] args) throws Exception {
623-
Thing thing = new Thing();
624612
while (true) {
625613
Thread.sleep(1000);
626614
}
627615
}
628-
629-
static class Thing {
630-
public int propertyA = 10;
631-
public int propertyB = 20;
632-
633-
public int sumOfSquares() {
634-
int propertyASquared = propertyA * propertyA;
635-
int propertyBSquared = propertyB * propertyB;
636-
int result = propertyASquared + propertyBSquared;
637-
return result;
638-
}
639-
}
640616
}
641617
"""
642618
cls.debug_target_main_class = "MethodTest"
643619
super(MethodTest, cls).setUpClass()
644620

645621
def setUp(self):
646622
super(MethodTest, self).setUp()
647-
class_prepare_event = self.resume_and_await_class_load("MethodTest$Thing")
648-
self.thing_class_id = class_prepare_event["typeID"]
623+
class_prepare_event = self.resume_and_await_class_load("MethodTest")
624+
self.test_class_id = class_prepare_event["typeID"]
649625
methods_resp = self.jdwp.ReferenceType.Methods({
650-
"refType": thing_class_id})
626+
"refType": self.test_class_id})
651627
self.methods = methods_resp["declared"]
652628
for method in methods_resp["declared"]:
653-
if method["name"] == u"sumOfSquares":
654-
self.sum_of_squares_method_id = method["methodID"]
629+
if method["name"] == u"getNumber":
630+
self.get_number_method_id = method["methodID"]
655631

656632
def test_method_line_table(self):
657633
line_table_resp = self.jdwp.Method.LineTable({
658-
"refType": self.thing_class_id,
659-
"methodID": self.sum_of_squares_method_id})
634+
"refType": self.test_class_id,
635+
"methodID": self.get_number_method_id})
660636
self.assertIn("start", line_table_resp)
661637
self.assertIn("end", line_table_resp)
662638
self.assertIn("lines", line_table_resp)
663639
self.assertGreater(len(line_table_resp["lines"]), 0)
664-
for line in line_table_resp["lines"]:
665-
self.assertIn("lineCodeIndex", line)
666-
self.assertIsInstance(line["lineCodeIndex"], int)
667-
self.assertIn("lineNumber", line)
668-
self.assertIsInstance(line["lineNumber"], int)
640+
line = line_table_resp["lines"][0]
641+
self.assertIn("lineCodeIndex", line)
642+
self.assertIsInstance(line["lineCodeIndex"], int)
643+
self.assertIn("lineNumber", line)
644+
self.assertIsInstance(line["lineNumber"], int)
669645

670646
def test_method_variable_table(self):
671647
variable_table_resp = self.jdwp.Method.VariableTable({
672-
"refType": self.thing_class_id,
673-
"methodID": self.sum_of_squares_method_id})
648+
"refType": self.test_class_id,
649+
"methodID": self.get_number_method_id})
674650
self.assertIn("slots", variable_table_resp)
675651
self.assertGreater(len(variable_table_resp["slots"]), 1)
676652
self.assertIn("codeIndex", variable_table_resp["slots"][0])
@@ -681,22 +657,22 @@ def test_method_variable_table(self):
681657

682658
def test_method_bytecodes(self):
683659
bytecode_resp = self.jdwp.Method.Bytecodes({
684-
"refType": self.thing_class_id,
685-
"methodID": self.sum_of_squares_method_id})
660+
"refType": self.test_class_id,
661+
"methodID": self.get_number_method_id})
686662
self.assertIn("bytes", bytecode_resp)
687663
self.assertGreater(len(bytecode_resp["bytes"]), 0)
688664
self.assertIn("bytecode", bytecode_resp["bytes"][0])
689665

690666
def test_method_is_obsolete(self):
691667
is_obsolete_resp = self.jdwp.Method.IsObsolete({
692-
"refType": self.thing_class_id,
693-
"methodID": self.sum_of_squares_method_id})
668+
"refType": self.test_class_id,
669+
"methodID": self.get_number_method_id})
694670
self.assertIn("isObsolete", is_obsolete_resp)
695671

696672
def test_method_variable_table_with_generic(self):
697673
variable_table_resp = self.jdwp.Method.VariableTableWithGeneric({
698-
"refType": self.thing_class_id,
699-
"methodID": self.sum_of_squares_method_id})
674+
"refType": self.test_class_id,
675+
"methodID": self.get_number_method_id})
700676
self.assertIn("slots", variable_table_resp)
701677
self.assertGreater(len(variable_table_resp["slots"]), 1)
702678
self.assertIn("codeIndex", variable_table_resp["slots"][0])
@@ -729,7 +705,7 @@ def setUpClass(cls):
729705
def setUp(self):
730706
super(ObjectReferenceTest, self).setUp()
731707
self.breakpoint_event = self.set_breakpoint_in_main(
732-
"ObjectReferenceTest")["events"][0]["Breakpoint"]
708+
"ObjectReferenceTest")
733709
self.test_class_id = self.breakpoint_event["classID"]
734710
methods_resp = self.jdwp.ReferenceType.Methods({
735711
"refType": self.test_class_id})
@@ -857,7 +833,7 @@ class StringReferenceTest {
857833
def setUp(self):
858834
super(StringReferenceTest, self).setUp()
859835
self.breakpoint_event = self.set_breakpoint_in_main(
860-
"StringReferenceTest")["events"][0]["Breakpoint"]
836+
"StringReferenceTest")
861837
self.test_class_id = self.breakpoint_event["classID"]
862838

863839
def test_string_reference_value(self):
@@ -876,6 +852,7 @@ def test_string_reference_value(self):
876852
class ThreadReferenceTest(PyjdbTestBase):
877853
def test_thread_reference_name(self):
878854
pass
855+
879856
#def test_thread_reference_suspend(self):
880857
#def test_thread_reference_resume(self):
881858
#def test_thread_reference_status(self):

0 commit comments

Comments
 (0)