mirror of
https://github.com/samba-team/samba.git
synced 2025-02-26 21:57:41 +03:00
r14718: Add initial work on a standardized UI for smbtorture
(This used to be commit a15a8d87b50fe3011c009d3c030cf54ec86540b4)
This commit is contained in:
parent
a0effc9d04
commit
6c5853aa8d
@ -6,7 +6,8 @@ VERSION = 0.0.1
|
||||
PUBLIC_HEADERS = torture.h
|
||||
PUBLIC_PROTO_HEADER = proto.h
|
||||
OBJ_FILES = \
|
||||
torture.o
|
||||
torture.o \
|
||||
ui.o
|
||||
REQUIRED_SUBSYSTEMS = \
|
||||
TORTURE_UTIL \
|
||||
TORTURE_RAW \
|
||||
|
@ -41,6 +41,9 @@ extern int torture_numops;
|
||||
extern int torture_failures;
|
||||
extern BOOL use_level_II_oplocks;
|
||||
|
||||
struct torture_context;
|
||||
struct torture_test;
|
||||
|
||||
#include "torture/proto.h"
|
||||
|
||||
#endif /* __TORTURE_H__ */
|
||||
|
76
source4/torture/ui.c
Normal file
76
source4/torture/ui.c
Normal file
@ -0,0 +1,76 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
SMB torture UI functions
|
||||
|
||||
Copyright (C) Jelmer Vernooij 2006
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include "includes.h"
|
||||
#include "torture/ui.h"
|
||||
|
||||
struct torture_test *torture_test(struct torture_context *ctx, const char *name, const char *description)
|
||||
{
|
||||
struct torture_test *test = talloc(ctx, struct torture_test);
|
||||
|
||||
test->name = talloc_strdup(test, name);
|
||||
test->description = talloc_strdup(test, description);
|
||||
test->context = ctx;
|
||||
|
||||
ctx->ui_ops->test_start(test);
|
||||
|
||||
return test;
|
||||
}
|
||||
|
||||
struct torture_test *torture_subtest(struct torture_test *parent, const char *name, const char *description)
|
||||
{
|
||||
struct torture_test *test = talloc(parent, struct torture_test);
|
||||
|
||||
test->name = talloc_strdup(test, name);
|
||||
test->description = talloc_strdup(test, description);
|
||||
test->context = parent->context;
|
||||
|
||||
test->context->ui_ops->test_start(test);
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void torture_comment(struct torture_test *test, const char *comment, ...)
|
||||
{
|
||||
va_list ap;
|
||||
char *tmp;
|
||||
va_start(ap, comment);
|
||||
tmp = talloc_vasprintf(test, comment, ap);
|
||||
|
||||
test->context->ui_ops->comment(test, tmp);
|
||||
|
||||
talloc_free(tmp);
|
||||
}
|
||||
|
||||
void torture_ok(struct torture_test *test)
|
||||
{
|
||||
test->context->ui_ops->test_result(test, TORTURE_OK);
|
||||
}
|
||||
|
||||
void torture_fail(struct torture_test *test)
|
||||
{
|
||||
test->context->ui_ops->test_result(test, TORTURE_FAIL);
|
||||
}
|
||||
|
||||
void torture_skip(struct torture_test *test)
|
||||
{
|
||||
test->context->ui_ops->test_result(test, TORTURE_SKIP);
|
||||
}
|
52
source4/torture/ui.h
Normal file
52
source4/torture/ui.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
SMB torture UI functions
|
||||
|
||||
Copyright (C) Jelmer Vernooij 2006
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
struct torture_test;
|
||||
|
||||
enum torture_result {
|
||||
TORTURE_OK=0,
|
||||
TORTURE_FAIL=1,
|
||||
TORTURE_TODO=2,
|
||||
TORTURE_SKIP=3
|
||||
};
|
||||
|
||||
struct torture_ui_ops
|
||||
{
|
||||
void (*comment) (struct torture_test *, const char *);
|
||||
void (*test_start) (struct torture_test *);
|
||||
void (*test_result) (struct torture_test *, enum torture_result);
|
||||
};
|
||||
|
||||
struct torture_test
|
||||
{
|
||||
char *name;
|
||||
char *description;
|
||||
|
||||
void *ui_data;
|
||||
|
||||
struct torture_context *context;
|
||||
};
|
||||
|
||||
struct torture_context
|
||||
{
|
||||
const struct torture_ui_ops *ui_ops;
|
||||
void *ui_data;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user