[2/3] cmd/tests: Factor out keyword recognition in test runner
Frédéric Delanoy
frederic.delanoy at gmail.com
Fri Jun 24 08:51:20 CDT 2011
---
programs/cmd/tests/batch.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/programs/cmd/tests/batch.c b/programs/cmd/tests/batch.c
index 5d2668d..946d9d3 100644
--- a/programs/cmd/tests/batch.c
+++ b/programs/cmd/tests/batch.c
@@ -135,6 +135,12 @@ static DWORD map_file(const char *file_name, const char **ret)
return size;
}
+static inline BOOL command_found(const char *cmd_name, const char *line_ptr, const char *line_end)
+{
+ const size_t cmd_size = strlen(cmd_name);
+ return (line_ptr + cmd_size <= line_end) && !strncmp(line_ptr, cmd_name, cmd_size);
+}
+
static const char *compare_line(const char *out_line, const char *out_end, const char *exp_line,
const char *exp_end)
{
@@ -147,8 +153,7 @@ static const char *compare_line(const char *out_line, const char *out_end, const
while(exp_ptr < exp_end) {
if(*exp_ptr == '@') {
- if(exp_ptr+strlen(pwd_cmd) <= exp_end
- && !strncmp(exp_ptr, pwd_cmd, strlen(pwd_cmd))) {
+ if(command_found(pwd_cmd, exp_ptr, exp_end)) {
exp_ptr += strlen(pwd_cmd);
if(out_end-out_ptr < workdir_len
|| (CompareStringA(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, out_ptr, workdir_len,
@@ -158,15 +163,13 @@ static const char *compare_line(const char *out_line, const char *out_end, const
out_ptr += workdir_len;
continue;
}
- }else if(exp_ptr+strlen(space_cmd) <= exp_end
- && !strncmp(exp_ptr, space_cmd, strlen(space_cmd))) {
+ }else if(command_found(space_cmd, exp_ptr, exp_end)) {
exp_ptr += strlen(space_cmd);
ok(*out_ptr == ' ', "expected space\n");
if(out_ptr < out_end && *out_ptr == ' ')
out_ptr++;
continue;
- }else if(exp_ptr+strlen(or_broken_cmd) <= exp_end
- && !strncmp(exp_ptr, or_broken_cmd, strlen(or_broken_cmd))) {
+ }else if(command_found(or_broken_cmd, exp_ptr, exp_end)) {
exp_ptr = exp_end;
continue;
}
@@ -180,6 +183,7 @@ static const char *compare_line(const char *out_line, const char *out_end, const
while(exp_ptr+strlen(or_broken_cmd) <= exp_end && strncmp(exp_ptr,or_broken_cmd, strlen(or_broken_cmd)))
exp_ptr++;
+
if(!exp_ptr)
return err;
--
1.7.5.4
More information about the wine-patches
mailing list