ASSERT_EQ(1, returned.size());
detailCompareLease(leases[2], *returned.begin());
- // Try to get something with invalid hardware address
- vector<uint8_t> invalid(6, 0);
- returned = lmptr_->getLease4(invalid);
- EXPECT_EQ(0, returned.size());
-
// Check that an empty vector is valid
EXPECT_TRUE(leases[7]->hwaddr_->hwaddr_.empty());
returned = lmptr_->getLease4(*leases[7]->hwaddr_);
-
- // Using prepared statement with an empty BLOB whithin the WHERE
- // clause seems to not work on some systems running MariaDB. One
- // such example is OpenSUSE with MariaDB 10.2.14. A lease with empty
- // HW address is added correctly, but an attempt to query for this
- // lease specifying empty HW address in the WHERE clause does not
- // return this lease. We're not sure whether this is a bug in the
- // C++ connector or somewhere else. The good news is that the
- // lease with an empty HW address and client identifier doesn't
- // have any practical use. Therefore, it is not a big concern
- // that querying for such a lease doesn't return anything.
- // The possible workaround would be to define dedicated prepared
- // statements which would not include the binding and simply
- // compare to an empty string, but this seems to be too much
- // overhead for something that is not going to be used in real
- // life scenarios. If the API doesn't return the lease, just exit
- // the test here.
- if (returned.empty() && (lmptr_->getType() == "mysql")) {
- return;
- }
-
- // Lease queried by empty HW address returned a lease, so let's
- // make sure that the lease is correct.
ASSERT_EQ(1, returned.size());
detailCompareLease(leases[7], *returned.begin());
+ // Try to get something with invalid hardware address
+ vector<uint8_t> invalid(6, 0);
+ returned = lmptr_->getLease4(invalid);
+ EXPECT_EQ(0, returned.size());
}
void