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