summaryrefslogtreecommitdiff
path: root/source4/torture/raw
diff options
context:
space:
mode:
Diffstat (limited to 'source4/torture/raw')
-rw-r--r--source4/torture/raw/mux.c21
-rw-r--r--source4/torture/raw/open.c9
2 files changed, 26 insertions, 4 deletions
diff --git a/source4/torture/raw/mux.c b/source4/torture/raw/mux.c
index c184fb79a7..c02045817e 100644
--- a/source4/torture/raw/mux.c
+++ b/source4/torture/raw/mux.c
@@ -42,6 +42,8 @@ static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
int fnum;
BOOL ret = True;
struct smbcli_request *req;
+ struct timeval tv;
+ double d;
printf("testing multiplexed open/open/close\n");
@@ -64,14 +66,25 @@ static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
CHECK_STATUS(status, NT_STATUS_OK);
fnum = io.ntcreatex.out.fnum;
+ tv = timeval_current();
+
/* send an open that will conflict */
io.ntcreatex.in.open_disposition = NTCREATEX_DISP_OPEN;
status = smb_raw_open(cli->tree, mem_ctx, &io);
CHECK_STATUS(status, NT_STATUS_SHARING_VIOLATION);
+ d = timeval_elapsed(&tv);
+ if (d < 0.5 || d > 1.5) {
+ printf("bad timeout for conflict - %.2f should be 1.0\n", d);
+ ret = False;
+ } else {
+ printf("open delay %.2f\n", d);
+ }
+
/*
same request, but async
*/
+ tv = timeval_current();
req = smb_raw_open_send(cli->tree, &io);
/* and close the file */
@@ -81,6 +94,14 @@ static BOOL test_mux_open(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
status = smb_raw_open_recv(req, mem_ctx, &io);
CHECK_STATUS(status, NT_STATUS_OK);
+ d = timeval_elapsed(&tv);
+ if (d > 0.25) {
+ printf("bad timeout for async conflict - %.2f should be <0.25\n", d);
+ ret = False;
+ } else {
+ printf("async open delay %.2f\n", d);
+ }
+
smbcli_close(cli->tree, io.ntcreatex.out.fnum);
done:
diff --git a/source4/torture/raw/open.c b/source4/torture/raw/open.c
index 81681bbd74..c810984900 100644
--- a/source4/torture/raw/open.c
+++ b/source4/torture/raw/open.c
@@ -266,6 +266,7 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
int fnum = -1, fnum2;
BOOL ret = True;
int i;
+ struct timeval tv;
struct {
uint16_t open_func;
BOOL with_file;
@@ -398,13 +399,13 @@ static BOOL test_openx(struct smbcli_state *cli, TALLOC_CTX *mem_ctx)
fnum = io.openx.out.fnum;
io.openx.in.timeout = 20000;
- start_timer();
+ tv = timeval_current();
io.openx.in.open_mode = OPENX_MODE_ACCESS_RDWR | OPENX_MODE_DENY_NONE;
status = smb_raw_open(cli->tree, mem_ctx, &io);
CHECK_STATUS(status, NT_STATUS_SHARING_VIOLATION);
- if (end_timer() > 3) {
- printf("(%s) Incorrect timing in openx with timeout - waited %d seconds\n",
- __location__, (int)end_timer());
+ if (timeval_elapsed(&tv) > 3.0) {
+ printf("(%s) Incorrect timing in openx with timeout - waited %.2f seconds\n",
+ __location__, timeval_elapsed(&tv));
ret = False;
}
smbcli_close(cli->tree, fnum);