@@ -12,6 +12,9 @@ Author: Diffblue Limited.
12
12
13
13
#include < java-testing-utils/load_java_class.h>
14
14
#include < java-testing-utils/require_type.h>
15
+ #include < java_bytecode/java_bytecode_language.h>
16
+ #include < linking/static_lifetime_init.h>
17
+ #include < util/options.h>
15
18
16
19
SCENARIO (
17
20
" java_bytecode_language_opaque_field" ,
@@ -45,3 +48,48 @@ SCENARIO(
45
48
}
46
49
}
47
50
}
51
+
52
+ static void use_external_driver (java_bytecode_languaget &language)
53
+ {
54
+ optionst options;
55
+ options.set_option (" symex-driven-lazy-loading" , true );
56
+ language.set_language_options (options);
57
+ }
58
+
59
+ TEST_CASE (
60
+ " LAZY_METHODS_MODE_EXTERNAL_DRIVER based generation of cprover_initialise" ,
61
+ " [core][java_bytecode_language]" )
62
+ {
63
+ java_bytecode_languaget language;
64
+ null_message_handlert null_message_handler;
65
+ language.set_message_handler (null_message_handler);
66
+ use_external_driver (language);
67
+ symbol_tablet symbol_table;
68
+ language.typecheck (symbol_table, " " );
69
+ {
70
+ const symbolt *const initialise = symbol_table.lookup (INITIALIZE_FUNCTION);
71
+ REQUIRE (initialise);
72
+ REQUIRE (initialise->value .is_nil ());
73
+ }
74
+ language.convert_lazy_method (INITIALIZE_FUNCTION, symbol_table);
75
+ {
76
+ const symbolt *const initialise = symbol_table.lookup (INITIALIZE_FUNCTION);
77
+ REQUIRE (initialise);
78
+ REQUIRE (can_cast_expr<codet>(initialise->value ));
79
+ }
80
+ }
81
+
82
+ TEST_CASE (
83
+ " Standard generation of cprover_initialise" ,
84
+ " [core][java_bytecode_language]" )
85
+ {
86
+ java_bytecode_languaget language;
87
+ null_message_handlert null_message_handler;
88
+ language.set_message_handler (null_message_handler);
89
+ language.set_language_options (optionst{});
90
+ symbol_tablet symbol_table;
91
+ language.typecheck (symbol_table, " " );
92
+ const symbolt *const initialise = symbol_table.lookup (INITIALIZE_FUNCTION);
93
+ REQUIRE (initialise);
94
+ REQUIRE (can_cast_expr<codet>(initialise->value ));
95
+ }
0 commit comments