&& (njs_strncasecmp((s1)->start, (s2)->start, (s1)->length) == 0))
+#define \
+njs_strstr_starts_with(str, prefix) \
+ (((str)->length >= (prefix)->length) \
+ && (memcmp((str)->start, (prefix)->start, (prefix)->length) == 0))
+
+
NJS_EXPORT njs_int_t njs_strncasecmp(u_char *s1, u_char *s2, size_t n);
{ njs_str("/+/.test('')"),
njs_str("SyntaxError: "
- njs_pcre_var("pcre_compile2(\"+\") failed: quantifier does not follow a repeatable item at \"+\" in 1",
- "pcre_compile(\"+\") failed: nothing to repeat at \"+\" in 1")) },
+ njs_pcre_var("pcre_compile2(\"+\") failed: quantifier does not follow a repeatable item",
+ "pcre_compile(\"+\") failed: nothing to repeat")) },
{ njs_str("/^$/.test('')"),
njs_str("true") },
return NJS_ERROR;
}
- success = expected->ret.length <= s.length
- && (memcmp(expected->ret.start, s.start, expected->ret.length)
- == 0);
+ success = njs_strstr_starts_with(&s, &expected->ret);
if (!success) {
njs_stderror("njs(\"%V\")\nexpected: \"%V\"\n got: \"%V\"\n",
&expected->script, &expected->ret, &s);
"Extra characters at the end of the script");
}
- success = njs_strstr_eq(&tests[i].ret, &s);
+ success = njs_strstr_starts_with(&s, &tests[i].ret);
if (!success) {
njs_stderror("njs(\"%V\")\nexpected: \"%V\"\n"
" got: \"%V\"\n",