43
43
#endif
44
44
45
45
#define EXPECTED_SIZE 512
46
- #define CANARY 0xff
47
46
48
47
static const struct device * const flash_dev = TEST_AREA_DEVICE ;
49
48
static struct flash_pages_info page_info ;
50
49
static uint8_t __aligned (4 ) expected [EXPECTED_SIZE ];
50
+ static const struct flash_parameters * flash_params ;
51
+ static uint8_t erase_value ;
51
52
52
53
static void * flash_driver_setup (void )
53
54
{
54
55
int rc ;
55
56
56
57
zassert_true (device_is_ready (flash_dev ));
57
58
58
- const struct flash_parameters * flash_params =
59
- flash_get_parameters ( flash_dev ) ;
59
+ flash_params = flash_get_parameters ( flash_dev );
60
+ erase_value = flash_params -> erase_value ;
60
61
61
62
/* For tests purposes use page (in nrf_qspi_nor page = 64 kB) */
62
63
flash_get_page_info_by_offs (flash_dev , TEST_AREA_OFFSET ,
@@ -70,8 +71,12 @@ static void *flash_driver_setup(void)
70
71
zassert_equal (rc , 0 , "Cannot read flash" );
71
72
72
73
/* Fill test buffer with random data */
73
- for (int i = 0 ; i < EXPECTED_SIZE ; i ++ ) {
74
- expected [i ] = i ;
74
+ for (int i = 0 , val = 0 ; i < EXPECTED_SIZE ; i ++ , val ++ ) {
75
+ /* Skip erase value */
76
+ if (val == erase_value ) {
77
+ val ++ ;
78
+ }
79
+ expected [i ] = val ;
75
80
}
76
81
77
82
/* Check if tested region fits in flash */
@@ -82,7 +87,7 @@ static void *flash_driver_setup(void)
82
87
bool is_buf_clear = true;
83
88
84
89
for (off_t i = 0 ; i < EXPECTED_SIZE ; i ++ ) {
85
- if (buf [i ] != flash_params -> erase_value ) {
90
+ if (buf [i ] != erase_value ) {
86
91
is_buf_clear = false;
87
92
break ;
88
93
}
@@ -105,6 +110,7 @@ ZTEST(flash_driver, test_read_unaligned_address)
105
110
{
106
111
int rc ;
107
112
uint8_t buf [EXPECTED_SIZE ];
113
+ const uint8_t canary = erase_value ;
108
114
109
115
rc = flash_write (flash_dev ,
110
116
page_info .start_offset ,
@@ -118,8 +124,8 @@ ZTEST(flash_driver, test_read_unaligned_address)
118
124
/* buffer offset; leave space for buffer guard */
119
125
for (off_t buf_o = 1 ; buf_o < 5 ; buf_o ++ ) {
120
126
/* buffer overflow protection */
121
- buf [buf_o - 1 ] = CANARY ;
122
- buf [buf_o + len ] = CANARY ;
127
+ buf [buf_o - 1 ] = canary ;
128
+ buf [buf_o + len ] = canary ;
123
129
memset (buf + buf_o , 0 , len );
124
130
rc = flash_read (flash_dev ,
125
131
page_info .start_offset + ad_o ,
@@ -131,10 +137,10 @@ ZTEST(flash_driver, test_read_unaligned_address)
131
137
0 , "Flash read failed at len=%d, "
132
138
"ad_o=%d, buf_o=%d" , len , ad_o , buf_o );
133
139
/* check buffer guards */
134
- zassert_equal (buf [buf_o - 1 ], CANARY ,
140
+ zassert_equal (buf [buf_o - 1 ], canary ,
135
141
"Buffer underflow at len=%d, "
136
142
"ad_o=%d, buf_o=%d" , len , ad_o , buf_o );
137
- zassert_equal (buf [buf_o + len ], CANARY ,
143
+ zassert_equal (buf [buf_o + len ], canary ,
138
144
"Buffer overflow at len=%d, "
139
145
"ad_o=%d, buf_o=%d" , len , ad_o , buf_o );
140
146
}
0 commit comments