Ensure case of empty package name is handled in find/remove functions
This commit is contained in:
parent
8deeb0a82b
commit
da19885d8b
|
@ -493,6 +493,9 @@ StorageID Database::findBasePackageWithID(const std::string &packageName, Packag
|
|||
|
||||
void Database::removePackage(const std::string &packageName)
|
||||
{
|
||||
if (packageName.empty()) {
|
||||
return;
|
||||
}
|
||||
const auto lock = std::unique_lock(m_storage->updateMutex);
|
||||
auto txn = m_storage->packages.getRWTransaction();
|
||||
const auto [packageID, package] = m_storage->packageCache.retrieve(*m_storage, &txn, packageName);
|
||||
|
|
|
@ -228,7 +228,10 @@ void DataTests::testPackageSearch()
|
|||
{
|
||||
setupPackages();
|
||||
|
||||
auto pkgs = m_config.findPackages("foo"sv);
|
||||
auto pkgs = m_config.findPackages(std::string_view());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("no results for package with empty name", 0_st, pkgs.size());
|
||||
|
||||
pkgs = m_config.findPackages("foo"sv);
|
||||
CPPUNIT_ASSERT_EQUAL(2_st, pkgs.size());
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package from first db returned first, cached object returned", m_pkg1, pkgs.front().pkg);
|
||||
CPPUNIT_ASSERT_EQUAL_MESSAGE("package from first db returned second, cached object returned", m_pkg3, pkgs.back().pkg);
|
||||
|
|
Loading…
Reference in New Issue