merge master code to build iotivity
[platform/upstream/iotivity.git] / resource / csdk / security / unittest / srmtestcommon.cpp
1 //******************************************************************
2 //
3 // Copyright 2015 Intel Mobile Communications GmbH All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #include "gtest/gtest.h"
22 #include "oic_malloc.h"
23 #include "ocstack.h"
24
25 char* ReadFile(const char* filename)
26 {
27
28     FILE *fp = NULL;
29     char *data = NULL;
30     struct stat st;
31     // TODO: Find the location of the executable and concatenate the SVR file name
32     // before opening it.
33     fp = fopen(filename, "r");
34     if (fp)
35     {
36         if (stat(filename, &st) == 0)
37         {
38             data = (char*)OICMalloc(st.st_size);
39             if (data)
40             {
41                 if (fread(data, 1, st.st_size, fp) != (size_t)st.st_size)
42                 {
43                     printf("Error in reading file %s", filename);
44                 }
45             }
46         }
47         fclose(fp);
48     }
49     else
50     {
51         printf("Unable to open %s file", filename);
52     }
53
54     return data;
55 }
56
57 void SetPersistentHandler(OCPersistentStorage *ps, bool set)
58 {
59     if (set)
60     {
61         ps->open = fopen;
62         ps->read = fread;
63         ps->write = fwrite;
64         ps->close = fclose;
65         ps->unlink = unlink;
66     }
67     else
68     {
69         memset(ps, 0, sizeof(OCPersistentStorage));
70     }
71     EXPECT_EQ(OC_STACK_OK,
72             OCRegisterPersistentStorageHandler(ps));
73 }