18
18
*/
19
19
20
20
#include "log_test_util/log_test_util.h"
21
+ #include "log/log.h"
21
22
22
23
#if MYNEWT_VAL (LOG_FCB )
23
24
static struct flash_area fcb_areas [] = {
@@ -46,6 +47,37 @@ static struct flash_sector_range fcb_range = {
46
47
static int ltu_str_idx = 0 ;
47
48
static int ltu_str_max_idx = 0 ;
48
49
50
+ struct dummy_log {
51
+ struct log_entry_hdr hdr ;
52
+ struct log_tlv tlv ;
53
+ uint32_t num_entries ;
54
+ };
55
+
56
+ struct dummy_log dummy_log = {
57
+ .hdr = {
58
+ .ue_ts = 1 ,
59
+ .ue_module = 2 ,
60
+ .ue_etype = 3 ,
61
+ .ue_flags = 0
62
+ #if MYNEWT_VAL (LOG_FLAGS_IMAGE_HASH )
63
+ | LOG_FLAGS_IMG_HASH
64
+ #endif
65
+ #if MYNEWT_VAL (LOG_FLAGS_TLV_SUPPORT )
66
+ | LOG_FLAGS_TLV_SUPPORT
67
+ #endif
68
+ ,
69
+ .ue_etype = 4 ,
70
+ .ue_imghash = {1 , 2 , 3 , 4 },
71
+ .ue_level = 3 ,
72
+ .ue_num_entries = 5
73
+ },
74
+ .tlv = {
75
+ .tag = LOG_TLV_NUM_ENTRIES ,
76
+ .len = LOG_NUM_ENTRIES_SIZE
77
+ },
78
+ .num_entries = 0 ,
79
+ };
80
+
49
81
char * ltu_str_logs [] = {
50
82
"testdata" ,
51
83
"1testdata2" ,
@@ -54,6 +86,10 @@ char *ltu_str_logs[] = {
54
86
NULL
55
87
};
56
88
89
+ uint16_t ltu_off_arr [5 ];
90
+
91
+ uint8_t dummy_log_arr [sizeof (ltu_str_logs ) + sizeof (struct dummy_log )* 4 ];
92
+
57
93
static uint8_t ltu_cbmem_buf [2048 ];
58
94
59
95
int
@@ -66,6 +102,40 @@ ltu_num_strs(void)
66
102
return i ;
67
103
}
68
104
105
+ uint16_t *
106
+ ltu_get_ltu_off_arr (void )
107
+ {
108
+ return ltu_off_arr ;
109
+ }
110
+
111
+ uint16_t
112
+ ltu_init_arr (void )
113
+ {
114
+ int i ;
115
+ uint16_t offset = 0 ;
116
+
117
+ for (i = 0 ; i < ltu_num_strs (); i ++ ) {
118
+ ltu_off_arr [i ] = offset ;
119
+ memcpy (dummy_log_arr + offset , & dummy_log .hdr , LOG_BASE_ENTRY_HDR_SIZE );
120
+ offset += LOG_BASE_ENTRY_HDR_SIZE ;
121
+ #if MYNEWT_VAL (LOG_FLAGS_IMAGE_HASH )
122
+ memcpy (dummy_log_arr + offset ,
123
+ dummy_log .hdr .ue_imghash , LOG_IMG_HASHLEN );
124
+ offset += LOG_IMG_HASHLEN ;
125
+ #endif
126
+ memcpy (dummy_log_arr + offset , ltu_str_logs [i ], strlen (ltu_str_logs [i ]));
127
+ offset += strlen (ltu_str_logs [i ]);
128
+ #if MYNEWT_VAL (LOG_FLAGS_TLV_SUPPORT ) && MYNEWT_VAL (LOG_TLV_NUM_ENTRIES )
129
+ memcpy (dummy_log_arr + offset , & dummy_log .tlv , sizeof (struct log_tlv ));
130
+ offset += sizeof (struct log_tlv );
131
+ memcpy (dummy_log_arr + offset , & dummy_log .num_entries , LOG_NUM_ENTRIES_SIZE );
132
+ offset += LOG_NUM_ENTRIES_SIZE ;
133
+ #endif
134
+ }
135
+ ltu_off_arr [i ] = offset ;
136
+ return offset ;
137
+ }
138
+
69
139
struct os_mbuf *
70
140
ltu_flat_to_fragged_mbuf (const void * flat , int len , int frag_sz )
71
141
{
@@ -191,13 +261,21 @@ ltu_walk_verify(struct log *log, struct log_offset *log_offset,
191
261
int dlen ;
192
262
uint16_t hdr_len ;
193
263
uint16_t trailer_len ;
264
+ uint16_t offset = 0 ;
194
265
195
266
TEST_ASSERT (ltu_str_idx < ltu_str_max_idx );
196
267
197
268
/*** Verify contents using single read. */
198
269
199
270
rc = log_read (log , dptr , & ueh , 0 , LOG_BASE_ENTRY_HDR_SIZE );
200
271
TEST_ASSERT (rc == LOG_BASE_ENTRY_HDR_SIZE );
272
+ offset = LOG_BASE_ENTRY_HDR_SIZE ;
273
+
274
+ if (ueh .ue_flags & LOG_FLAGS_IMG_HASH ) {
275
+ rc = log_read (log , dptr , data , offset , LOG_IMG_HASHLEN );
276
+ TEST_ASSERT (rc == LOG_IMG_HASHLEN );
277
+ offset += LOG_IMG_HASHLEN ;
278
+ }
201
279
202
280
hdr_len = log_hdr_len (& ueh );
203
281
trailer_len = log_trailer_len (& ueh );
0 commit comments