loader: Use new VM mock with wrong ABI version

This commit is contained in:
Paweł Bylica 2019-05-30 14:15:20 +02:00
parent 591ac7c3a8
commit ba10da07d0
No known key found for this signature in database
GPG Key ID: 7A0C037434FE77EF
1 changed files with 5 additions and 9 deletions

View File

@ -118,12 +118,6 @@ static evmc_instance* create_failure()
return nullptr;
}
static evmc_instance* create_abi42()
{
static int abi_version = 42;
return reinterpret_cast<evmc_instance*>(&abi_version);
}
TEST_F(loader, load_nonexistent)
{
constexpr auto path = "nonexistent";
@ -282,12 +276,14 @@ TEST_F(loader, load_and_create_failure)
TEST_F(loader, load_and_create_abi_mismatch)
{
setup("abi42.vm", "evmc_create", create_abi42);
setup("abi1985.vm", "evmc_create", create_vm_with_wrong_abi);
evmc_loader_error_code ec;
auto vm = evmc_load_and_create(evmc_test_library_path, &ec);
EXPECT_TRUE(vm == nullptr);
EXPECT_EQ(ec, EVMC_LOADER_ABI_VERSION_MISMATCH);
EXPECT_STREQ(evmc_last_error_msg(),
"EVMC ABI version 42 of abi42.vm mismatches the expected version 6");
const auto expected_error_msg =
"EVMC ABI version 1985 of abi1985.vm mismatches the expected version " +
std::to_string(EVMC_ABI_VERSION);
EXPECT_EQ(evmc_last_error_msg(), expected_error_msg);
}