Files

47 lines
873 B
C

#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;
}