summaryrefslogtreecommitdiff
path: root/test/regression/stream-nomem.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/regression/stream-nomem.c')
-rw-r--r--test/regression/stream-nomem.c88
1 files changed, 0 insertions, 88 deletions
diff --git a/test/regression/stream-nomem.c b/test/regression/stream-nomem.c
deleted file mode 100644
index 7233ac7..0000000
--- a/test/regression/stream-nomem.c
+++ /dev/null
@@ -1,88 +0,0 @@
-#include <stdio.h>
-#include <string.h>
-
-#include <hubbub/hubbub.h>
-
-#include "utils/utils.h"
-
-#include "input/inputstream.h"
-
-#include "testutils.h"
-
-static void *myrealloc(void *ptr, size_t len, void *pw)
-{
- UNUSED(pw);
-
- return realloc(ptr, len);
-}
-
-int main(int argc, char **argv)
-{
- hubbub_inputstream *stream;
-
- /* This is specially calculated so that the inputstream is forced to
- * reallocate (it assumes that the inputstream's buffer chunk size
- * is 4k) */
-#define BUFFER_SIZE (4096 + 4)
- uint8_t input_buffer[BUFFER_SIZE];
- uint8_t *buffer;
- size_t buflen;
- uint32_t c;
-
- if (argc != 2) {
- printf("Usage: %s <aliases_file>\n", argv[0]);
- return 1;
- }
-
- /* Populate the buffer with something sane */
- memset(input_buffer, 'a', BUFFER_SIZE);
- /* Now, set up our test data */
- input_buffer[BUFFER_SIZE - 1] = '5';
- input_buffer[BUFFER_SIZE - 2] = '4';
- input_buffer[BUFFER_SIZE - 3] = '\xbd';
- input_buffer[BUFFER_SIZE - 4] = '\xbf';
- /* This byte will occupy the 4095th byte in the buffer and
- * thus cause the entirety of U+FFFD to be buffered until after
- * the buffer has been enlarged */
- input_buffer[BUFFER_SIZE - 5] = '\xef';
- input_buffer[BUFFER_SIZE - 6] = '3';
- input_buffer[BUFFER_SIZE - 7] = '2';
- input_buffer[BUFFER_SIZE - 8] = '1';
-
- assert(hubbub_initialise(argv[1], myrealloc, NULL) == HUBBUB_OK);
-
- stream = hubbub_inputstream_create("UTF-8", "UTF-8", myrealloc, NULL);
- assert(stream != NULL);
-
- assert(hubbub_inputstream_append(stream, input_buffer, BUFFER_SIZE) ==
- HUBBUB_OK);
-
- assert(hubbub_inputstream_append(stream, NULL, 0) == HUBBUB_OK);
-
- while ((c = hubbub_inputstream_peek(stream)) != HUBBUB_INPUTSTREAM_EOF)
- hubbub_inputstream_advance(stream);
-
- assert(hubbub_inputstream_claim_buffer(stream, &buffer, &buflen) ==
- HUBBUB_OK);
-
- assert(buflen == BUFFER_SIZE);
-
- printf("Buffer: '%.*s'\n", 8, buffer + (BUFFER_SIZE - 8));
-
- assert( buffer[BUFFER_SIZE - 6] == '3' &&
- buffer[BUFFER_SIZE - 5] == (uint8_t) '\xef' &&
- buffer[BUFFER_SIZE - 4] == (uint8_t) '\xbf' &&
- buffer[BUFFER_SIZE - 3] == (uint8_t) '\xbd' &&
- buffer[BUFFER_SIZE - 2] == '4');
-
- free(buffer);
-
- hubbub_inputstream_destroy(stream);
-
- assert(hubbub_finalise(myrealloc, NULL) == HUBBUB_OK);
-
- printf("PASS\n");
-
- return 0;
-}
-