summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Keeler <jacob.keeler@livioradio.com>2016-10-26 09:31:25 -0400
committerJacob Keeler <jacob.keeler@livioradio.com>2016-10-26 09:31:25 -0400
commitc9d683d3b981206cba0bb9cb0e6828d85410393c (patch)
tree458683fd9d8fd1bfaeb16e356c9557ac11ad8bec
parentcba5c4a029672034e139d11287b306d199eaf42d (diff)
parent8e508dbf650b99eb0ec5570b6f070cd281fff007 (diff)
downloadsdl_core-c9d683d3b981206cba0bb9cb0e6828d85410393c.tar.gz
Merged branch hotfix/store_policy_db_in_storage_folder into release/4.1_LTS
-rw-r--r--src/components/policy/src/sql_pt_representation.cc4
-rw-r--r--src/components/policy/test/sql_pt_representation_test.cc74
-rw-r--r--src/components/utils/include/utils/sqlite_wrapper/sql_database.h5
-rw-r--r--src/components/utils/src/sqlite_wrapper/sql_database.cc7
4 files changed, 54 insertions, 36 deletions
diff --git a/src/components/policy/src/sql_pt_representation.cc b/src/components/policy/src/sql_pt_representation.cc
index 03fd88b717..ff301cf568 100644
--- a/src/components/policy/src/sql_pt_representation.cc
+++ b/src/components/policy/src/sql_pt_representation.cc
@@ -320,6 +320,10 @@ InitResult SQLPTRepresentation::Init(const PolicySettings* settings) {
#ifdef BUILD_TESTS
open_counter_ = 0;
#endif // BUILD_TESTS
+ std::string path = get_settings().app_storage_folder();
+ if (!path.empty()) {
+ db_->set_path(path + "/");
+ }
if (!db_->Open()) {
LOG4CXX_ERROR(logger_, "Failed opening database.");
LOG4CXX_INFO(logger_, "Starting opening retries.");
diff --git a/src/components/policy/test/sql_pt_representation_test.cc b/src/components/policy/test/sql_pt_representation_test.cc
index 1f4df5d15d..42f7a9cc33 100644
--- a/src/components/policy/test/sql_pt_representation_test.cc
+++ b/src/components/policy/test/sql_pt_representation_test.cc
@@ -76,21 +76,20 @@ class SQLPTRepresentationTest : public SQLPTRepresentation,
static DBMS* dbms;
static SQLPTRepresentation* reps;
static const std::string kDatabaseName;
+ static const std::string kAppStorageFolder;
// Gtest can show message that this object doesn't destroyed
static std::auto_ptr<policy_handler_test::MockPolicySettings>
policy_settings_;
static void SetUpTestCase() {
- const std::string kAppStorageFolder = "storage1";
- file_system::RemoveDirectory(kAppStorageFolder);
- file_system::DeleteFile("policy.sqlite");
+ file_system::DeleteFile(kAppStorageFolder + "/policy.sqlite");
reps = new SQLPTRepresentation;
- dbms = new DBMS(kDatabaseName);
policy_settings_ = std::auto_ptr<policy_handler_test::MockPolicySettings>(
new policy_handler_test::MockPolicySettings());
ON_CALL(*policy_settings_, app_storage_folder())
.WillByDefault(ReturnRef(kAppStorageFolder));
EXPECT_EQ(::policy::SUCCESS, reps->Init(policy_settings_.get()));
+ dbms = new DBMS(kAppStorageFolder + "/" + kDatabaseName);
EXPECT_TRUE(dbms->Open());
}
@@ -104,6 +103,7 @@ class SQLPTRepresentationTest : public SQLPTRepresentation,
reps->RemoveDB();
delete reps;
dbms->Close();
+ file_system::RemoveDirectory(kAppStorageFolder);
policy_settings_.reset();
}
@@ -351,6 +351,7 @@ class SQLPTRepresentationTest : public SQLPTRepresentation,
DBMS* SQLPTRepresentationTest::dbms = 0;
SQLPTRepresentation* SQLPTRepresentationTest::reps = 0;
const std::string SQLPTRepresentationTest::kDatabaseName = "policy.sqlite";
+const std::string SQLPTRepresentationTest::kAppStorageFolder = "storage1";
std::auto_ptr<policy_handler_test::MockPolicySettings>
SQLPTRepresentationTest::policy_settings_;
@@ -385,6 +386,25 @@ class SQLPTRepresentationTest2 : public ::testing::Test {
const uint16_t kAttemptsToOpenPolicyDB;
};
+class SQLPTRepresentationTest3 : public ::testing::Test {
+ protected:
+ SQLPTRepresentationTest3() : kAppStorageFolder("storage") {}
+
+ void SetUp() OVERRIDE {
+ file_system::CreateDirectory(kAppStorageFolder);
+ reps = new SQLPTRepresentation;
+ }
+
+ void TearDown() OVERRIDE {
+ file_system::RemoveDirectory(kAppStorageFolder, true);
+ delete reps;
+ }
+
+ SQLPTRepresentation* reps;
+ NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
+ const std::string kAppStorageFolder;
+};
+
// {AKozoriz} : Unknown behavior (must try 8 times, tried 2 and opened)
TEST_F(SQLPTRepresentationTest2,
DISABLED_OpenAttemptTimeOut_ExpectCorrectNumber) {
@@ -991,49 +1011,38 @@ TEST_F(SQLPTRepresentationTest,
EXPECT_EQ("EMERGENCY", priority);
}
-namespace {
-const std::string kAppStorageFolder = "storage";
-}
-
-TEST(SQLPTRepresentationTest3, Init_InitNewDataBase_ExpectResultSuccess) {
+TEST_F(SQLPTRepresentationTest3, Init_InitNewDataBase_ExpectResultSuccess) {
// Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
- SQLPTRepresentation* reps;
- reps = new SQLPTRepresentation;
- // Checks
ON_CALL(policy_settings_, app_storage_folder())
.WillByDefault(ReturnRef(kAppStorageFolder));
+ // Checks
EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_));
EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_));
reps->RemoveDB();
- delete reps;
}
-TEST(SQLPTRepresentationTest3,
- Init_TryInitNotExistingDataBase_ExpectResultFail) {
+TEST_F(SQLPTRepresentationTest3,
+ Init_TryInitNotExistingDataBase_ExpectResultFail) {
+ const std::string kEmptyDirectory = "";
// Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
ON_CALL(policy_settings_, app_storage_folder())
- .WillByDefault(ReturnRef(kAppStorageFolder));
- SQLPTRepresentation reps;
- (reps.db())->set_path("/home/");
+ .WillByDefault(ReturnRef(kEmptyDirectory));
+ (reps->db())->set_path("/home/");
// Check
- EXPECT_EQ(::policy::FAIL, reps.Init(&policy_settings_));
+ EXPECT_EQ(::policy::FAIL, reps->Init(&policy_settings_));
}
-TEST(SQLPTRepresentationTest3,
- Close_InitNewDataBaseThenClose_ExpectResultSuccess) {
+TEST_F(SQLPTRepresentationTest3,
+ Close_InitNewDataBaseThenClose_ExpectResultSuccess) {
// Arrange
- NiceMock<policy_handler_test::MockPolicySettings> policy_settings_;
ON_CALL(policy_settings_, app_storage_folder())
.WillByDefault(ReturnRef(kAppStorageFolder));
- SQLPTRepresentation reps;
- EXPECT_EQ(::policy::SUCCESS, reps.Init(&policy_settings_));
- EXPECT_TRUE(reps.Close());
+ EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_));
+ EXPECT_TRUE(reps->Close());
utils::dbms::SQLError error(utils::dbms::Error::OK);
// Checks
- EXPECT_EQ(error.number(), (reps.db()->LastError().number()));
- reps.RemoveDB();
+ EXPECT_EQ(error.number(), (reps->db()->LastError().number()));
+ reps->RemoveDB();
}
TEST_F(SQLPTRepresentationTest,
@@ -1476,10 +1485,10 @@ TEST_F(SQLPTRepresentationTest,
EXPECT_EQ(0, dbms->FetchOneInt(query_select));
}
-TEST(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) {
+TEST_F(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) {
// Arrange
- policy_handler_test::MockPolicySettings policy_settings_;
- SQLPTRepresentation* reps = new SQLPTRepresentation;
+ ON_CALL(policy_settings_, app_storage_folder())
+ .WillByDefault(ReturnRef(kAppStorageFolder));
EXPECT_EQ(::policy::SUCCESS, reps->Init(&policy_settings_));
EXPECT_EQ(::policy::EXISTS, reps->Init(&policy_settings_));
std::string path = (reps->db())->get_path();
@@ -1487,7 +1496,6 @@ TEST(SQLPTRepresentationTest3, RemoveDB_RemoveDB_ExpectFileDeleted) {
reps->RemoveDB();
// Check
EXPECT_FALSE(file_system::FileExists(path));
- delete reps;
}
// TODO {AKozoriz} : Snapshot must have module meta section, but test
diff --git a/src/components/utils/include/utils/sqlite_wrapper/sql_database.h b/src/components/utils/include/utils/sqlite_wrapper/sql_database.h
index 720628ef3c..8b78881473 100644
--- a/src/components/utils/include/utils/sqlite_wrapper/sql_database.h
+++ b/src/components/utils/include/utils/sqlite_wrapper/sql_database.h
@@ -131,6 +131,11 @@ class SQLDatabase {
sync_primitives::Lock conn_lock_;
/**
+ * The file path of database
+ */
+ std::string path_;
+
+ /**
* The filename of database
*/
std::string databasename_;
diff --git a/src/components/utils/src/sqlite_wrapper/sql_database.cc b/src/components/utils/src/sqlite_wrapper/sql_database.cc
index bf19275bac..2de5817cab 100644
--- a/src/components/utils/src/sqlite_wrapper/sql_database.cc
+++ b/src/components/utils/src/sqlite_wrapper/sql_database.cc
@@ -53,7 +53,8 @@ bool SQLDatabase::Open() {
sync_primitives::AutoLock auto_lock(conn_lock_);
if (conn_)
return true;
- error_ = sqlite3_open(databasename_.c_str(), &conn_);
+ error_ = sqlite3_open(get_path().c_str(), &conn_);
+ printf("OPEN SQLDATABASE: %i\n", error_);
return error_ == SQLITE_OK;
}
@@ -101,11 +102,11 @@ sqlite3* SQLDatabase::conn() const {
}
void SQLDatabase::set_path(const std::string& path) {
- databasename_ = path + databasename_;
+ path_ = path;
}
std::string SQLDatabase::get_path() const {
- return databasename_;
+ return path_ + databasename_;
}
bool SQLDatabase::Backup() {