Skip to content

Commit

Permalink
fixup! Unit test for generic_type_index
Browse files Browse the repository at this point in the history
  • Loading branch information
romainbrenguier committed May 2, 2018
1 parent d343aab commit dfba832
Showing 1 changed file with 6 additions and 33 deletions.
39 changes: 6 additions & 33 deletions unit/java_bytecode/java_types/generic_type_index.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,59 +11,32 @@

SCENARIO("generic_type_index", "[core][java_types]")
{
GIVEN("Generic type LGenericClass<TX;TY;>; and parameters X, Y, Z")
GIVEN("Generic type LGenericClass<TX;Tvalue;>; and parameters X, value, Z")
{
const auto symbol_type = symbol_typet("java::GenericClass");
const auto generic_symbol_type = java_generic_symbol_typet(
symbol_type, "LGenericClass<TX;TY;>;", "PrefixClassName");
symbol_type, "LGenericClass<TX;Tvalue;>;", "PrefixClassName");
java_generic_parametert paramX("PrefixClassName::X", symbol_typet());
java_generic_parametert paramY("PrefixClassName::Y", symbol_typet());
java_generic_parametert value("PrefixClassName::value", symbol_typet());
java_generic_parametert paramZ("PrefixClassName::Z", symbol_typet());

WHEN("Looking for parameter indexes")
{
const auto indexX = generic_symbol_type.generic_type_index(paramX);
const auto indexY = generic_symbol_type.generic_type_index(paramY);
const auto index_value = generic_symbol_type.generic_type_index(value);
const auto indexZ = generic_symbol_type.generic_type_index(paramZ);

THEN("X has index 0, Y index 1 and Z is not found")
{
REQUIRE(indexX.has_value());
REQUIRE(indexX.value() == 0);
REQUIRE(indexY.has_value());
REQUIRE(indexY.value() == 1);
REQUIRE(index_value.has_value());
REQUIRE(index_value.value() == 1);
REQUIRE_FALSE(indexZ.has_value());
}
}
}

GIVEN("Generic type LGenericClass<Tkey;Tvalue;>; and"
" parameters key, value, x")
{
const auto symbol_type = symbol_typet("java::GenericClass");
const auto generic_symbol_type = java_generic_symbol_typet(
symbol_type, "LGenericClass<Tkey;Tvalue;>;", "PrefixClassName");
java_generic_parametert param0("PrefixClassName::key", symbol_typet());
java_generic_parametert param1("PrefixClassName::value", symbol_typet());
java_generic_parametert param2("PrefixClassName::x", symbol_typet());

WHEN("Looking for parameter indexes")
{
const auto index_param0 = generic_symbol_type.generic_type_index(param0);
const auto index_param1 = generic_symbol_type.generic_type_index(param1);
const auto index_param2 = generic_symbol_type.generic_type_index(param2);

THEN("key has index 0, value index 1 and x is not found")
{
REQUIRE(index_param0.has_value());
REQUIRE(index_param0.value() == 0);
REQUIRE(index_param1.has_value());
REQUIRE(index_param1.value() == 1);
REQUIRE_FALSE(index_param2.has_value());
}
}
}

GIVEN("Generic type Ljava/util/HashMap<TK;TV;>; and parameters K, V, T")
{
const auto symbol_type = symbol_typet("java::java.util.HashMap");
Expand Down

0 comments on commit dfba832

Please sign in to comment.