1/*
2* Copyright (c) 2022 Huawei Device Co., Ltd.
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7*     http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15
16#include "store_unittest.h"
17#include <cstdio>
18#include <cstdlib>
19#include <cstring>
20#include <vector>
21#include "applypatch/block_set.h"
22#include "applypatch/store.h"
23#include "log/log.h"
24#include "utils.h"
25
26using namespace testing::ext;
27using namespace UpdaterUt;
28using namespace Updater;
29using namespace std;
30
31namespace UpdaterUt {
32void StoreUnitTest::SetUp()
33{
34    cout << "SetUpTestCase" << endl;
35}
36
37void StoreUnitTest::TearDown()
38{
39    cout << "TearDownTestCase" << endl;
40}
41
42HWTEST_F(StoreUnitTest, store_test_001, TestSize.Level1)
43{
44    std::string storePath = "/data/updater/ut_test";
45    Store::CreateNewSpace(storePath, true);
46    std::vector<uint8_t> buffer(4096, 0);
47    std::string filename1 = "test_file1";
48    std::string filename2 = "test_file2";
49    Store::WriteDataToStore(storePath, filename1, buffer, 4096);
50    Store::WriteDataToStore(storePath, filename2, buffer, 4096);
51    Store::LoadDataFromStore(storePath, filename1, buffer);
52    Store::DoFreeSpace(storePath);
53    Store::WriteDataToStore(storePath, filename1, buffer, 4096);
54    Store::WriteDataToStore(storePath, filename2, buffer, 4096);
55    Store::FreeStore(storePath, filename2);
56    EXPECT_EQ(Store::CreateNewSpace(storePath, true), 0);
57}
58
59HWTEST_F(StoreUnitTest, store_test_002, TestSize.Level1)
60{
61    std::vector<uint8_t> buffer(4096, 0);
62    EXPECT_EQ(Store::WriteDataToStore("", "test_file1", buffer, buffer.size()), -1);
63}
64
65HWTEST_F(StoreUnitTest, store_test_003, TestSize.Level1)
66{
67    std::string storePath = "data/updater/ut_test";
68    std::vector<uint8_t> buffer(4096, 0);
69    std::string filename1 = "test_file1";
70    EXPECT_EQ(Store::FreeStore("", filename1), -1);
71    Store::CreateNewSpace(storePath, true);
72    EXPECT_EQ(Store::WriteDataToStore(storePath, filename1, buffer, -1), -1);
73}
74}
75