@@ -92,6 +92,58 @@ SCENARIO(
92
92
}
93
93
}
94
94
95
+ SCENARIO (
96
+ " symbol_table_symbol_module_map" ,
97
+ " [core][utils][symbol_table_symbol_module_map]" )
98
+ {
99
+ GIVEN (" A valid symbol table" )
100
+ {
101
+ symbol_tablet symbol_table;
102
+ WHEN (" Inserting a symbol with non-empty module" )
103
+ {
104
+ symbolt symbol;
105
+ symbol.name = " TestName" ;
106
+ symbol.module = " TestModule" ;
107
+ symbol_table.insert (std::move (symbol));
108
+ THEN (" The symbol module map contains an entry for the symbol" )
109
+ {
110
+ REQUIRE (symbol_table.symbol_module_map .size () == 1 );
111
+ const auto entry = symbol_table.symbol_module_map .begin ();
112
+ REQUIRE (id2string (entry->first ) == " TestModule" );
113
+ REQUIRE (id2string (entry->second ) == " TestName" );
114
+ }
115
+ WHEN (" Removing the symbol again" )
116
+ {
117
+ symbol_table.remove (" TestName" );
118
+ THEN (" The symbol module map no longer contains an entry for the symbol" )
119
+ {
120
+ REQUIRE (symbol_table.symbol_module_map .size () == 0 );
121
+ }
122
+ }
123
+ }
124
+ WHEN (" Inserting a symbol with empty module" )
125
+ {
126
+ symbolt symbol;
127
+ symbol.name = " TestName" ;
128
+ symbol_table.insert (std::move (symbol));
129
+ THEN (" The symbol module map does not contain an entry for the symbol" )
130
+ {
131
+ REQUIRE (symbol_table.symbol_module_map .size () == 0 );
132
+ }
133
+ WHEN (" Removing the symbol again" )
134
+ {
135
+ symbol_table.remove (" TestName" );
136
+ THEN (
137
+ " The symbol module map still does not contain an entry for the "
138
+ " symbol" )
139
+ {
140
+ REQUIRE (symbol_table.symbol_module_map .size () == 0 );
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+
95
147
SCENARIO (" journalling_symbol_table_writer" ,
96
148
" [core][utils][journalling_symbol_table_writer]" )
97
149
{
0 commit comments