1515#include < util/language.h>
1616#include < util/message.h>
1717#include < java_bytecode/java_bytecode_language.h>
18+ #include < src/java_bytecode/load_java_class.h>
1819
1920SCENARIO (" java_bytecode_convert_abstract_class" ,
2021 " [core][java_bytecode][java_bytecode_convert_class]" )
2122{
22- std::unique_ptr<languaget>java_lang (new_java_bytecode_language ());
23-
24- // Configure the path loading
25- cmdlinet command_line;
26- command_line.set (
27- " java-cp-include-files" ,
28- " ./java_bytecode/java_bytecode_convert_class" );
29- config.java .classpath .push_back (
30- " ./java_bytecode/java_bytecode_convert_class" );
31-
32- // Configure the language
33- null_message_handlert message_handler;
34- java_lang->get_language_options (command_line);
35- java_lang->set_message_handler (message_handler);
36-
37- std::istringstream java_code_stream (" ignored" );
38-
3923 GIVEN (" Some class files in the class path" )
4024 {
4125 WHEN (" Parsing an interface" )
4226 {
43- java_lang->parse (java_code_stream, " I.class" );
44-
45- symbol_tablet new_symbol_table;
46- java_lang->typecheck (new_symbol_table, " " );
27+ const symbol_tablet &new_symbol_table=
28+ load_java_class (" I" , " ./java_bytecode/java_bytecode_convert_class" );
4729
48- java_lang->final (new_symbol_table);
49-
50- REQUIRE (new_symbol_table.has_symbol (" java::I" ));
5130 THEN (" The symbol type should be abstract" )
5231 {
5332 const symbolt &class_symbol=new_symbol_table.lookup (" java::I" );
@@ -61,14 +40,8 @@ SCENARIO("java_bytecode_convert_abstract_class",
6140 }
6241 WHEN (" Parsing an abstract class" )
6342 {
64- java_lang->parse (java_code_stream, " A.class" );
65-
66- symbol_tablet new_symbol_table;
67- java_lang->typecheck (new_symbol_table, " " );
68-
69- java_lang->final (new_symbol_table);
70-
71- REQUIRE (new_symbol_table.has_symbol (" java::A" ));
43+ const symbol_tablet &new_symbol_table=
44+ load_java_class (" A" , " ./java_bytecode/java_bytecode_convert_class" );
7245 THEN (" The symbol type should be abstract" )
7346 {
7447 const symbolt &class_symbol=new_symbol_table.lookup (" java::A" );
@@ -82,14 +55,8 @@ SCENARIO("java_bytecode_convert_abstract_class",
8255 }
8356 WHEN (" Passing a concrete class" )
8457 {
85- java_lang->parse (java_code_stream, " C.class" );
86-
87- symbol_tablet new_symbol_table;
88- java_lang->typecheck (new_symbol_table, " " );
89-
90- java_lang->final (new_symbol_table);
91-
92- REQUIRE (new_symbol_table.has_symbol (" java::C" ));
58+ const symbol_tablet &new_symbol_table=
59+ load_java_class (" C" , " ./java_bytecode/java_bytecode_convert_class" );
9360 THEN (" The symbol type should not be abstract" )
9461 {
9562 const symbolt &class_symbol=new_symbol_table.lookup (" java::C" );
@@ -103,14 +70,10 @@ SCENARIO("java_bytecode_convert_abstract_class",
10370 }
10471 WHEN (" Passing a concrete class that implements an interface" )
10572 {
106- java_lang->parse (java_code_stream, " Implementor.class" );
107-
108- symbol_tablet new_symbol_table;
109- java_lang->typecheck (new_symbol_table, " " );
110-
111- java_lang->final (new_symbol_table);
112-
113- REQUIRE (new_symbol_table.has_symbol (" java::Implementor" ));
73+ const symbol_tablet &new_symbol_table=
74+ load_java_class (
75+ " Implementor" ,
76+ " ./java_bytecode/java_bytecode_convert_class" );
11477 THEN (" The symbol type should not be abstract" )
11578 {
11679 const symbolt &class_symbol=
@@ -125,18 +88,14 @@ SCENARIO("java_bytecode_convert_abstract_class",
12588 }
12689 WHEN (" Passing a concrete class that extends an abstract class" )
12790 {
128- java_lang->parse (java_code_stream, " Extendor.class" );
129-
130- symbol_tablet new_symbol_table;
131- java_lang->typecheck (new_symbol_table, " " );
132-
133- java_lang->final (new_symbol_table);
134-
135- REQUIRE (new_symbol_table.has_symbol (" java::Extendor" ));
91+ const symbol_tablet &new_symbol_table=
92+ load_java_class (
93+ " Extender" ,
94+ " ./java_bytecode/java_bytecode_convert_class" );
13695 THEN (" The symbol type should not be abstract" )
13796 {
13897 const symbolt &class_symbol=
139- new_symbol_table.lookup (" java::Extendor " );
98+ new_symbol_table.lookup (" java::Extender " );
14099 const typet &symbol_type=class_symbol.type ;
141100
142101 REQUIRE (symbol_type.id ()==ID_struct);
0 commit comments