char *p;
char *end;
- if (fr_sbuff_extend_lowat(NULL, in, needle_len) == 0) break;
+ if (fr_sbuff_extend_lowat(NULL, &our_in, needle_len) == 0) break;
p = fr_sbuff_current(&our_in);
end = CONSTRAINED_END(&our_in, len, fr_sbuff_used_total(&our_in));
fr_sbuff_uctx_file_t fctx;
FILE *fp;
char buff[5];
- char out[16 + 1];
+ char out[24];
char fbuff[24];
const char PATTERN[] = "xyzzy";
#define PATTERN_LEN (sizeof(PATTERN) - 1)
TEST_CHECK_SLEN(slen, 0);
fclose(fp);
+
+ TEST_CASE("Verify fr_sbuff_out_bstrncpy_until() extends from file properly");
+ fp = fmemopen(fbuff, sizeof(fbuff), "r");
+ TEST_CHECK(fp != NULL);
+ TEST_CHECK(fr_sbuff_init_file(&sbuff, &fctx, buff, sizeof(buff), fp, 128) == &sbuff);
+ our_sbuff = FR_SBUFF_BIND_CURRENT(&sbuff);
+ slen = fr_sbuff_out_bstrncpy_until(&FR_SBUFF_OUT(out, sizeof(out)), &our_sbuff, SIZE_MAX, &FR_SBUFF_TERM("x"), NULL);
+ TEST_CHECK_SLEN(slen, sizeof(fbuff) - PATTERN_LEN);
+
+ fclose(fp);
}
static void test_file_extend_max(void)