Guten morgen,
ich soll unittests schreiben, habe aber bei einer bedingung ein Problem.
Folgende funktion:
1 | void handleReceive(void)
|
2 | {
|
3 | uint8_t *header;
|
4 | header = NULL;
|
5 |
|
6 | removeReceive(cid_b, &(header), &(length), &is_valid); // hier wird header gesetzt
|
7 | if(NULL != header)
|
8 | {
|
9 | data = header;
|
10 | MessageReceive(data, length); // Diese Funktion ist gemockt
|
11 |
|
12 | if(NULL != data )
|
13 | {
|
14 | // mache etwas
|
15 | }
|
16 | else
|
17 | {
|
18 | // mache etwas anderes
|
19 | }
|
20 | }
|
21 | }
|
Mein Problem ist die bedingung
if(NULL != data)
hier bekomme ich es nicht hin, dass data=NULL ist, da es ja quasi vorher
schon abgefragt worden ist (NULL != header und data = header).
Jetzt habe ich versucht data in der Funktion MessageReceive zu löschen
1 | void mockMessageReceive(uint8 *buffer, uint16 lenght)
|
2 | {
|
3 | // buffer= NULL;
|
4 |
|
5 | // delete buffer;
|
6 |
|
7 | // uint8 *pointer;
|
8 | // pointer = NULL;
|
9 | // buffer = pointer;
|
10 |
|
11 | free(buffer);
|
12 |
|
13 | printf("buffer: %p\r\n", &buffer);
|
14 | }
|
Allerdings bekomme ihc es nicht hin buffer zu löschen, bzw. buffer auf
NULL zu setzen.