blob: 74b01de63dfd9c123cb16a9ddbe936c1f0695e74 [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 "fw_helper.hpp"
#include <geode/SystemProperties.hpp>
#include <geode/Properties.hpp>
#include <geode/CacheableString.hpp>
#ifndef WIN32
#include <unistd.h>
#endif
using apache::geode::client::Log;
using apache::geode::client::LogLevel;
using apache::geode::client::Properties;
using apache::geode::client::SystemProperties;
bool checkSecurityProperties(std::shared_ptr<Properties> securityProperties,
const char *key, const char *value) {
bool flag;
if (key == nullptr || value == nullptr) {
return false;
}
auto tempValue = securityProperties->find(key);
if (tempValue == nullptr) {
return (false);
}
flag = strcmp(tempValue->value().c_str(), value);
return (!flag);
}
BEGIN_TEST(DEFAULT)
{
SystemProperties *systemProperties =
new SystemProperties(nullptr, "./non-existent");
ASSERT(
systemProperties->statisticsSampleInterval() == std::chrono::seconds(1),
"expected 1");
ASSERT(systemProperties->statisticsEnabled() == true, "expected true");
LOG(systemProperties->statisticsArchiveFile());
auto &&statisticsArchiveFileName =
systemProperties->statisticsArchiveFile();
ASSERT(statisticsArchiveFileName == "statArchive.gfs",
"Expected statisticsArchiveFileName == \"statArchive.gfs\"");
auto &&logLevel = Log::levelToChars(systemProperties->logLevel());
ASSERT_STREQ("config", logLevel);
delete systemProperties;
}
END_TEST(DEFAULT)
BEGIN_TEST(NEW_CONFIG)
{
// When the tests are run from the build script the environment variable
// TESTSRC is set.
std::string testSource(ACE_OS::getenv("TESTSRC"));
std::string filePath = testSource + "/resources/system.properties";
// Make sure product can at least log to stdout.
Log::init(LogLevel::Config, nullptr, 0);
SystemProperties *systemProperties =
new SystemProperties(nullptr, filePath);
ASSERT(systemProperties->statisticsSampleInterval() ==
std::chrono::seconds(700),
"expected 700");
ASSERT(systemProperties->statisticsEnabled() == false, "expected false");
ASSERT(systemProperties->threadPoolSize() == 96,
"max-fe-thread should be 96");
auto &&statisticsArchiveFileName =
systemProperties->statisticsArchiveFile();
ASSERT1(statisticsArchiveFileName == "stats.gfs");
auto &&logFilename = systemProperties->logFilename();
ASSERT1(logFilename == "geode-native.log");
auto &&name = systemProperties->name();
ASSERT1(name == "system");
auto &&cacheXMLFileName = systemProperties->cacheXMLFile();
ASSERT1(cacheXMLFileName == "cache.xml");
ASSERT(systemProperties->pingInterval() == std::chrono::seconds(123),
"expected 123 pingInterval");
ASSERT(systemProperties->redundancyMonitorInterval() ==
std::chrono::seconds(456),
"expected 456s redundancyMonitorInterval");
ASSERT(systemProperties->heapLRULimit() == 100, "expected 100");
ASSERT(systemProperties->heapLRUDelta() == 10, "expected 10");
ASSERT(systemProperties->notifyAckInterval() ==
std::chrono::milliseconds(1234),
"expected 1234 notifyAckInterval");
ASSERT(systemProperties->notifyDupCheckLife() ==
std::chrono::milliseconds(4321),
"expected 4321 notifyDupCheckLife");
ASSERT(systemProperties->logFileSizeLimit() == 1024000000,
"expected 1024000000");
ASSERT(systemProperties->statsFileSizeLimit() == 1024000000,
"expected 1024000000");
auto &&durableId = systemProperties->durableClientId();
ASSERT1(durableId == "testDurableId");
ASSERT(systemProperties->durableTimeout() == std::chrono::seconds(123),
"expected 123 durableTimeOut");
ASSERT(systemProperties->connectTimeout() == std::chrono::milliseconds(345),
"expected 345 for connect timeout");
auto securityProperties = systemProperties->getSecurityProperties();
ASSERT(checkSecurityProperties(securityProperties, "security-username",
"username") == true,
"SecurityProperties Not Stored");
ASSERT(checkSecurityProperties(securityProperties, "security-password",
"password") == true,
"SecurityProperties Not Stored");
delete systemProperties;
}
END_TEST(NEW_CONFIG)