blob: dbbbffbc4a762ab86098aa4e9c1e5f6cf142bc1a [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.
*/
#define ROOT_NAME "testSystemProperties"
#include "fw_helper.hpp"
#include "gfcpp/GeodeCppCache.hpp"
#include "gfcpp/SystemProperties.hpp"
#include "gfcpp/Properties.hpp"
#ifndef WIN32
#include <unistd.h>
#endif
using namespace apache::geode::client;
const bool checkSecurityProperties(PropertiesPtr securityProperties,
const char* key, const char* value) {
bool flag;
if (key == NULL || value == NULL) {
return false;
}
CacheableStringPtr tempValue = securityProperties->find(key);
if (tempValue == NULLPTR) {
return (false);
}
flag = strcmp(tempValue->asChar(), value);
return (!flag);
}
BEGIN_TEST(DEFAULT)
{
SystemProperties* sp = new SystemProperties(NULLPTR, "./non-existent");
ASSERT(sp->statisticsSampleInterval() == 1, "expected 1");
ASSERT(sp->statisticsEnabled() == true, "expected true");
LOG(sp->statisticsArchiveFile());
const char* safname = sp->statisticsArchiveFile();
int ret = strcmp(safname, "statArchive.gfs");
ASSERT(ret == 0, "expected 0");
const char* ll = Log::levelToChars(sp->logLevel());
ret = strcmp(ll, "config");
ASSERT(ret == 0, "expected 0");
delete sp;
}
END_TEST(DEFAULT)
/*
* Commenting the last two tests because I need to know where to put
* the file which will be passed to the constructor. These two tests works.
* But for others it might fail so commenting them as of now.
*/
BEGIN_TEST(CONFIG)
{
// create a file for alternate properties...
// FILE* propFile = ACE_OS::fopen( "./test.properties", "a+" );
// ACE_OS::fprintf( propFile, "gf.transport.config=./gfconfig\n" );
/// ACE_OS::fprintf( propFile, "statistics.sample.interval=2000\n" );
// ACE_OS::fprintf( propFile, "statistics.enabled=false\n" );
// ACE_OS::fprintf( propFile, "statistics.archive.file=./stats.gfs\n" );
// ACE_OS::fprintf( propFile, "log.level=error\n" );
// ACE_OS::fclose( propFile );
// Make sure product can at least log to stdout.
Log::init(Log::Config, NULL, 0);
SystemProperties* sp = new SystemProperties(NULLPTR, "test.properties");
ASSERT(sp->statisticsSampleInterval() == 1, "expected 1");
ASSERT(sp->statisticsEnabled() == true, "expected true");
const char* safname = sp->statisticsArchiveFile();
int ret = strcmp(safname, "statArchive.gfs");
ASSERT(ret == 0, "expected 0");
Log::LogLevel ll = sp->logLevel();
ASSERT(ll == Log::Config, "expected Log::Config");
delete sp;
}
END_TEST(CONFIG)
BEGIN_TEST(NEW_CONFIG)
{
// When the tests are run from the build script the environment variable
// TESTSRC is set.
std::string testsrc(ACE_OS::getenv("TESTSRC"));
std::string filePath = testsrc + "/system.properties";
// Make sure product can at least log to stdout.
Log::init(Log::Config, NULL, 0);
SystemProperties* sp = new SystemProperties(NULLPTR, filePath.c_str());
ASSERT(sp->statisticsSampleInterval() == 700, "expected 700");
ASSERT(sp->statisticsEnabled() == false, "expected false");
ASSERT(sp->threadPoolSize() == 96, "max-fe-thread should be 96");
const char* safname = sp->statisticsArchiveFile();
int ret = strcmp(safname, "stats.gfs");
ASSERT(ret == 0, "expected 0");
const char* logfname = sp->logFilename();
ret = strcmp(logfname, "gfcpp.log");
ASSERT(ret == 0, "expected 0");
// Log::LogLevel ll = sp->logLevel();
// ASSERT( ll == Log::Debug, "expected Log::Debug" );
const char* name = sp->name();
ret = strcmp(name, "system");
ASSERT(ret == 0, "expected 0");
const char* cxml = sp->cacheXMLFile();
ret = strcmp(cxml, "cache.xml");
ASSERT(ret == 0, "expected 0");
ASSERT(sp->pingInterval() == 123, "expected 123 pingInterval");
ASSERT(sp->redundancyMonitorInterval() == 456,
"expected 456 redundancyMonitorInterval");
ASSERT(sp->heapLRULimit() == 100, "expected 100");
ASSERT(sp->heapLRUDelta() == 10, "expected 10");
ASSERT(sp->notifyAckInterval() == 1234, "expected 1234 notifyAckInterval");
ASSERT(sp->notifyDupCheckLife() == 4321,
"expected 4321 notifyDupCheckLife");
ASSERT(sp->logFileSizeLimit() == 1024000000, "expected 1024000000");
ASSERT(sp->statsFileSizeLimit() == 1024000000, "expected 1024000000");
const char* durableId = sp->durableClientId();
ret = strcmp(durableId, "testDurableId");
ASSERT(ret == 0, "expected 0");
ASSERT(sp->durableTimeout() == 123, "expected 123 durableTimeOut");
ASSERT(sp->connectTimeout() == 345, "expected 345 for connect timeout");
PropertiesPtr securityProperties = sp->getSecurityProperties();
ASSERT(checkSecurityProperties(securityProperties, "security-username",
"username") == true,
"SecurityProperties Not Stored");
ASSERT(checkSecurityProperties(securityProperties, "security-password",
"password") == true,
"SecurityProperties Not Stored");
delete sp;
}
END_TEST(NEW_CONFIG)