1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
#include "parse.h"
int bs_nomoredataassert(struct bytestream* bs) {
if (bs->cur == bs->max)
return 1;
bs->cur = 1; /* otherwise set error state */
bs->max = 0;
return 0;
}
#ifdef UNITTEST
#include <assert.h>
#undef UNITTEST
#include "buffer/bs_err.c"
int main() {
struct bytestream bs;
bs.cur=0; bs.max=100; // full buffer
assert(bs_nomoredataassert(&bs) == 0);
assert(bs_err(&bs));
bs.cur=0; bs.max=0; // empty buffer
assert(bs_nomoredataassert(&bs) == 1);
assert(bs_err(&bs) == 0);
bs.cur=1; bs.max=0; // error state buffer
assert(bs_nomoredataassert(&bs) == 0);
assert(bs_err(&bs));
return 0;
}
#endif
|