CHORE: Bug fixing. Major changes to bugs and also unit testing
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "char/char.h"
|
||||
#include "utils/utils.h"
|
||||
|
||||
int
|
||||
LLVMFuzzerTestOneInput(const uint8_t* data, size_t size)
|
||||
{
|
||||
if (size < 2) return 0;
|
||||
|
||||
err_t err = ERR_T_INIT;
|
||||
_VecCharInternal vec = VEC_INIT;
|
||||
|
||||
// Use input bytes to drive arbitrary vector operations
|
||||
for (size_t i = 0; i < size; i++)
|
||||
{
|
||||
uint8_t op = data[i] % 5;
|
||||
switch (op)
|
||||
{
|
||||
case 0:
|
||||
_vec_char_push_back(&vec, (char)data[i], &err);
|
||||
break;
|
||||
case 1:
|
||||
_vec_char_pop_back(&vec, &err);
|
||||
break;
|
||||
case 2:
|
||||
if (vec._internal_size > 0)
|
||||
{
|
||||
size_t idx = (size_t)data[i] %
|
||||
vec._internal_size;
|
||||
_vec_char_erase(&vec, idx, &err);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
_vec_char_reserve(&vec, (size_t)data[i], &err);
|
||||
break;
|
||||
case 4:
|
||||
_vec_char_shrink_to_fit(&vec, &err);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
_vec_char_delete(&vec, &err);
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user