blob: df76b8fc0acbe39136c95a87a4751068e5b6bd34 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <geode/CacheFactory.hpp>
#include <geode/Region.hpp>
#include <geode/RegionEntry.hpp>
#include <geode/RegionAttributesFactory.hpp>
#include "CacheImpl.hpp"
#include "CacheRegionHelper.hpp"
#include "fw_helper.hpp"
using apache::geode::client::Cache;
using apache::geode::client::Cacheable;
using apache::geode::client::CacheableBytes;
using apache::geode::client::CacheableInt32;
using apache::geode::client::CacheableString;
using apache::geode::client::CacheFactory;
using apache::geode::client::CacheRegionHelper;
using apache::geode::client::Region;
using apache::geode::client::RegionAttributesFactory;
using apache::geode::client::RegionEntry;
bool CheckBytesEqual(std::shared_ptr<CacheableBytes> result,
std::shared_ptr<Cacheable> expected) {
auto expectedPtr = std::dynamic_pointer_cast<CacheableBytes>(expected);
// Assume that the bytes are really a char*
return result->value() == expectedPtr->value();
}
// This test checks the template methods of Region API with all possible
// combinations of key and value types.
// NOLINTNEXTLINE(google-readability-function-size)
BEGIN_TEST(CheckTemplates)
{
auto cacheFactory = CacheFactory();
auto cache = std::make_shared<Cache>(cacheFactory.create());
RegionAttributesFactory regionAttributesFactory;
auto regionAttributes = regionAttributesFactory.create();
std::shared_ptr<Region> regPtr;
auto &&cacheImpl = CacheRegionHelper::getCacheImpl(cache.get());
cacheImpl->createRegion("TestRegion", regionAttributes, regPtr);
const char charKey[] = "test key";
const char charVal[] = "test value";
int intKey = 10;
int intVal = 100;
const char stringKey[] = "test string key";
const char stringVal[] = "test string value";
const char baseKey[] = "test base key";
const char baseVal[] = "test base value";
int int32Key = 100;
auto stringPtr = CacheableString::create(stringKey);
auto int32Ptr = CacheableInt32::create(int32Key);
auto bytesPtr = CacheableBytes::create(
std::vector<int8_t>(stringVal, stringVal + sizeof(stringVal)));
auto keyPtr = CacheableString::create(baseKey);
auto valPtr = CacheableBytes::create(
std::vector<int8_t>(baseVal, baseVal + sizeof(baseVal)));
std::shared_ptr<CacheableBytes> resValPtr;
std::shared_ptr<CacheableString> resStringPtr;
std::shared_ptr<CacheableInt32> resInt32Ptr;
std::shared_ptr<RegionEntry> resEntryPtr;
/* ------ Test puts/gets of various shapes and sizes --------- */
// With valPtr
regPtr->put(keyPtr, valPtr);
regPtr->put(stringPtr, valPtr);
regPtr->put(int32Ptr, valPtr);
regPtr->put(charKey, valPtr);
regPtr->put(intKey, valPtr);
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(keyPtr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"put/get:: incorrect valPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(stringPtr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"put/get:: incorrect valPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(int32Ptr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"put/get:: incorrect valPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(intKey));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"put/get:: incorrect valPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(charKey));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"put/get:: incorrect valPtr value");
// End with valPtr
// With bytesPtr
regPtr->put(keyPtr, bytesPtr);
regPtr->put(stringPtr, bytesPtr);
regPtr->put(int32Ptr, bytesPtr);
regPtr->put(charKey, bytesPtr);
regPtr->put(intKey, bytesPtr);
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(keyPtr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"put/get:: incorrect bytesPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(stringPtr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"put/get:: incorrect bytesPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(int32Ptr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"put/get:: incorrect bytesPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(intKey));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"put/get:: incorrect bytesPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(charKey));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"put/get:: incorrect bytesPtr value");
// End with bytesPtr
// With stringPtr
regPtr->put(keyPtr, stringPtr);
regPtr->put(stringPtr, stringPtr);
regPtr->put(int32Ptr, stringPtr);
regPtr->put(charKey, stringPtr);
regPtr->put(intKey, stringPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(keyPtr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"put/get:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(stringPtr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"put/get:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(int32Ptr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"put/get:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(intKey));
ASSERT(resStringPtr.get() == stringPtr.get(),
"put/get:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(charKey));
ASSERT(resStringPtr.get() == stringPtr.get(),
"put/get:: incorrect stringPtr value");
// End with stringPtr
// With int32Ptr
regPtr->put(keyPtr, int32Ptr);
regPtr->put(stringPtr, int32Ptr);
regPtr->put(int32Ptr, int32Ptr);
regPtr->put(charKey, int32Ptr);
regPtr->put(intKey, int32Ptr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(keyPtr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"put/get:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(stringPtr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"put/get:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(int32Ptr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"put/get:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(intKey));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"put/get:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(charKey));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"put/get:: incorrect int32Ptr value");
// End with int32Ptr
// With charVal
regPtr->put(keyPtr, charVal);
regPtr->put(stringPtr, charVal);
regPtr->put(int32Ptr, charVal);
regPtr->put(charKey, charVal);
regPtr->put(intKey, charVal);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(keyPtr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"put/get:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(stringPtr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"put/get:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(int32Ptr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"put/get:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(intKey));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"put/get:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(charKey));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"put/get:: incorrect charVal value");
// End with charVal
// With intVal
regPtr->put(keyPtr, intVal);
regPtr->put(stringPtr, intVal);
regPtr->put(int32Ptr, intVal);
regPtr->put(charKey, intVal);
regPtr->put(intKey, intVal);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(keyPtr));
ASSERT(resInt32Ptr->value() == intVal, "put/get:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(stringPtr));
ASSERT(resInt32Ptr->value() == intVal, "put/get:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(int32Ptr));
ASSERT(resInt32Ptr->value() == intVal, "put/get:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(intKey));
ASSERT(resInt32Ptr->value() == intVal, "put/get:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(charKey));
ASSERT(resInt32Ptr->value() == intVal, "put/get:: incorrect intVal value");
// End with intVal
/* ---------- End put/get tests ------------ */
/* ------ Test creates/gets/localDestroys of various shapes and sizes
* --------- */
// With valPtr
regPtr->destroy(keyPtr);
regPtr->destroy(stringPtr);
regPtr->destroy(int32Ptr);
regPtr->destroy(charKey);
regPtr->destroy(intKey);
regPtr->create(keyPtr, valPtr);
regPtr->create(stringPtr, valPtr);
regPtr->create(int32Ptr, valPtr);
regPtr->create(charKey, valPtr);
regPtr->create(intKey, valPtr);
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(keyPtr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/get/localDestroy:: incorrect valPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(stringPtr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/get/localDestroy:: incorrect valPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(int32Ptr));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/get/localDestroy:: incorrect valPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(intKey));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/get/localDestroy:: incorrect valPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(charKey));
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/get/localDestroy:: incorrect valPtr value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with valPtr
// With bytesPtr
regPtr->create(keyPtr, bytesPtr);
regPtr->create(stringPtr, bytesPtr);
regPtr->create(int32Ptr, bytesPtr);
regPtr->create(charKey, bytesPtr);
regPtr->create(intKey, bytesPtr);
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(keyPtr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/get/localDestroy:: incorrect bytesPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(stringPtr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/get/localDestroy:: incorrect bytesPtr value");
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(int32Ptr));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/get/localDestroy:: incorrect bytesPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(intKey));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/get/localDestroy:: incorrect bytesPtr value");
resValPtr = std::dynamic_pointer_cast<CacheableBytes>(regPtr->get(charKey));
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/get/localDestroy:: incorrect bytesPtr value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with bytesPtr
// With stringPtr
regPtr->create(keyPtr, stringPtr);
regPtr->create(stringPtr, stringPtr);
regPtr->create(int32Ptr, stringPtr);
regPtr->create(charKey, stringPtr);
regPtr->create(intKey, stringPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(keyPtr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/get/localDestroy:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(stringPtr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/get/localDestroy:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(int32Ptr));
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/get/localDestroy:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(intKey));
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/get/localDestroy:: incorrect stringPtr value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(charKey));
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/get/localDestroy:: incorrect stringPtr value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with stringPtr
// With int32Ptr
regPtr->create(keyPtr, int32Ptr);
regPtr->create(stringPtr, int32Ptr);
regPtr->create(int32Ptr, int32Ptr);
regPtr->create(charKey, int32Ptr);
regPtr->create(intKey, int32Ptr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(keyPtr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/get/localDestroy:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(stringPtr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/get/localDestroy:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(int32Ptr));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/get/localDestroy:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(intKey));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/get/localDestroy:: incorrect int32Ptr value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(charKey));
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/get/localDestroy:: incorrect int32Ptr value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with int32Ptr
// With charVal
regPtr->create(keyPtr, charVal);
regPtr->create(stringPtr, charVal);
regPtr->create(int32Ptr, charVal);
regPtr->create(charKey, charVal);
regPtr->create(intKey, charVal);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(keyPtr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/get/localDestroy:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(stringPtr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/get/localDestroy:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(int32Ptr));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/get/localDestroy:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(intKey));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/get/localDestroy:: incorrect charVal value");
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(regPtr->get(charKey));
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/get/localDestroy:: incorrect charVal value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with charVal
// With intVal
regPtr->create(keyPtr, intVal);
regPtr->create(stringPtr, intVal);
regPtr->create(int32Ptr, intVal);
regPtr->create(charKey, intVal);
regPtr->create(intKey, intVal);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(keyPtr));
ASSERT(resInt32Ptr->value() == intVal,
"create/get/localDestroy:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(stringPtr));
ASSERT(resInt32Ptr->value() == intVal,
"create/get/localDestroy:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(int32Ptr));
ASSERT(resInt32Ptr->value() == intVal,
"create/get/localDestroy:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(intKey));
ASSERT(resInt32Ptr->value() == intVal,
"create/get/localDestroy:: incorrect intVal value");
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(regPtr->get(charKey));
ASSERT(resInt32Ptr->value() == intVal,
"create/get/localDestroy:: incorrect intVal value");
regPtr->localInvalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/get/localDestroy:: key not destroyed");
regPtr->localInvalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/get/localDestroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/get/localDestroy:: key not invalidated");
regPtr->localDestroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/get/localDestroy:: key not destroyed");
// End with intVal
/* ---------- End create/get/localDestroy tests ------------ */
/* ------ Test creates/getEntry/destroys of various shapes and sizes
* --------- */
// With valPtr
regPtr->create(keyPtr, valPtr);
regPtr->create(stringPtr, valPtr);
regPtr->create(int32Ptr, valPtr);
regPtr->create(charKey, valPtr);
regPtr->create(intKey, valPtr);
resEntryPtr = regPtr->getEntry(keyPtr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/getEntry/destroy:: incorrect valPtr value");
resEntryPtr = regPtr->getEntry(stringPtr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/getEntry/destroy:: incorrect valPtr value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/getEntry/destroy:: incorrect valPtr value");
resEntryPtr = regPtr->getEntry(charKey);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/getEntry/destroy:: incorrect valPtr value");
resEntryPtr = regPtr->getEntry(intKey);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, valPtr),
"create/getEntry/destroy:: incorrect valPtr value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with valPtr
// With bytesPtr
regPtr->create(keyPtr, bytesPtr);
regPtr->create(stringPtr, bytesPtr);
regPtr->create(int32Ptr, bytesPtr);
regPtr->create(charKey, bytesPtr);
regPtr->create(intKey, bytesPtr);
resEntryPtr = regPtr->getEntry(keyPtr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/getEntry/destroy:: incorrect bytesPtr value");
resEntryPtr = regPtr->getEntry(stringPtr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/getEntry/destroy:: incorrect bytesPtr value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/getEntry/destroy:: incorrect bytesPtr value");
resEntryPtr = regPtr->getEntry(charKey);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/getEntry/destroy:: incorrect bytesPtr value");
resEntryPtr = regPtr->getEntry(intKey);
resValPtr =
std::dynamic_pointer_cast<CacheableBytes>(resEntryPtr->getValue());
ASSERT(CheckBytesEqual(resValPtr, bytesPtr),
"create/getEntry/destroy:: incorrect bytesPtr value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with bytesPtr
// With stringPtr
regPtr->create(keyPtr, stringPtr);
regPtr->create(stringPtr, stringPtr);
regPtr->create(int32Ptr, stringPtr);
regPtr->create(charKey, stringPtr);
regPtr->create(intKey, stringPtr);
resEntryPtr = regPtr->getEntry(keyPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/getEntry/destroy:: incorrect stringPtr value");
resEntryPtr = regPtr->getEntry(stringPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/getEntry/destroy:: incorrect stringPtr value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/getEntry/destroy:: incorrect stringPtr value");
resEntryPtr = regPtr->getEntry(intKey);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/getEntry/destroy:: incorrect stringPtr value");
resEntryPtr = regPtr->getEntry(charKey);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(resStringPtr.get() == stringPtr.get(),
"create/getEntry/destroy:: incorrect stringPtr value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with stringPtr
// With int32Ptr
regPtr->create(keyPtr, int32Ptr);
regPtr->create(stringPtr, int32Ptr);
regPtr->create(int32Ptr, int32Ptr);
regPtr->create(charKey, int32Ptr);
regPtr->create(intKey, int32Ptr);
resEntryPtr = regPtr->getEntry(keyPtr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/getEntry/destroy:: incorrect int32Ptr value");
resEntryPtr = regPtr->getEntry(stringPtr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/getEntry/destroy:: incorrect int32Ptr value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/getEntry/destroy:: incorrect int32Ptr value");
resEntryPtr = regPtr->getEntry(intKey);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/getEntry/destroy:: incorrect int32Ptr value");
resEntryPtr = regPtr->getEntry(charKey);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr.get() == int32Ptr.get(),
"create/getEntry/destroy:: incorrect int32Ptr value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with int32Ptr
// With charVal
regPtr->create(keyPtr, charVal);
regPtr->create(stringPtr, charVal);
regPtr->create(int32Ptr, charVal);
regPtr->create(charKey, charVal);
regPtr->create(intKey, charVal);
resEntryPtr = regPtr->getEntry(keyPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/getEntry/destroy:: incorrect charVal value");
resEntryPtr = regPtr->getEntry(stringPtr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/getEntry/destroy:: incorrect charVal value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/getEntry/destroy:: incorrect charVal value");
resEntryPtr = regPtr->getEntry(intKey);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/getEntry/destroy:: incorrect charVal value");
resEntryPtr = regPtr->getEntry(charKey);
resStringPtr =
std::dynamic_pointer_cast<CacheableString>(resEntryPtr->getValue());
ASSERT(strcmp(resStringPtr->value().c_str(), charVal) == 0,
"create/getEntry/destroy:: incorrect charVal value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with charVal
// With intVal
regPtr->create(keyPtr, intVal);
regPtr->create(stringPtr, intVal);
regPtr->create(int32Ptr, intVal);
regPtr->create(charKey, intVal);
regPtr->create(intKey, intVal);
resEntryPtr = regPtr->getEntry(keyPtr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr->value() == intVal,
"create/getEntry/destroy:: incorrect intVal value");
resEntryPtr = regPtr->getEntry(stringPtr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr->value() == intVal,
"create/getEntry/destroy:: incorrect intVal value");
resEntryPtr = regPtr->getEntry(int32Ptr);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr->value() == intVal,
"create/getEntry/destroy:: incorrect intVal value");
resEntryPtr = regPtr->getEntry(intKey);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr->value() == intVal,
"create/getEntry/destroy:: incorrect intVal value");
resEntryPtr = regPtr->getEntry(charKey);
resInt32Ptr =
std::dynamic_pointer_cast<CacheableInt32>(resEntryPtr->getValue());
ASSERT(resInt32Ptr->value() == intVal,
"create/getEntry/destroy:: incorrect intVal value");
regPtr->invalidate(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(keyPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(keyPtr);
ASSERT(regPtr->containsKey(keyPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(stringPtr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(stringPtr);
ASSERT(regPtr->containsKey(stringPtr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(int32Ptr) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(int32Ptr);
ASSERT(regPtr->containsKey(int32Ptr) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(charKey);
ASSERT(regPtr->containsKey(charKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(charKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(charKey);
ASSERT(regPtr->containsKey(charKey) == false,
"create/getEntry/destroy:: key not destroyed");
regPtr->invalidate(intKey);
ASSERT(regPtr->containsKey(intKey) == true,
"create/getEntry/destroy:: key not present");
ASSERT(regPtr->containsValueForKey(intKey) == false,
"create/getEntry/destroy:: key not invalidated");
regPtr->destroy(intKey);
ASSERT(regPtr->containsKey(intKey) == false,
"create/getEntry/destroy:: key not destroyed");
// End with intVal
/* ---------- End create/getEntry/destroy tests ------------ */
cache->close();
}
END_TEST(CheckTemplates)