diff options
-rw-r--r-- | source4/torture/gentest.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/source4/torture/gentest.c b/source4/torture/gentest.c index ec090d59dd..4711ea91ae 100644 --- a/source4/torture/gentest.c +++ b/source4/torture/gentest.c @@ -1087,6 +1087,40 @@ static BOOL handler_openx(int instance) /* + generate open operations +*/ +static BOOL handler_open(int instance) +{ + union smb_open parm[NSERVERS]; + NTSTATUS status[NSERVERS]; + + parm[0].open.level = RAW_OPEN_OPEN; + parm[0].open.in.flags = gen_bits_mask2(0xF, 0xFFFF); + parm[0].open.in.search_attrs = gen_attrib(); + parm[0].open.in.fname = gen_fname_open(instance); + + if (!options.use_oplocks) { + /* mask out oplocks */ + parm[0].open.in.flags &= ~(OPENX_FLAGS_REQUEST_OPLOCK| + OPENX_FLAGS_REQUEST_BATCH_OPLOCK); + } + + GEN_COPY_PARM; + GEN_CALL(smb_raw_open(tree, current_op.mem_ctx, &parm[i])); + + CHECK_EQUAL(open.out.attrib); + CHECK_TIMES_EQUAL(open.out.write_time); + CHECK_EQUAL(open.out.size); + CHECK_EQUAL(open.out.rmode); + + /* open creates a new file handle */ + ADD_HANDLE(parm[0].open.in.fname, open.out.fnum); + + return True; +} + + +/* generate ntcreatex operations */ static BOOL handler_ntcreatex(int instance) @@ -1820,6 +1854,7 @@ static struct { BOOL (*handler)(int instance); int count, success_count; } gen_ops[] = { + {"OPEN", handler_open}, {"OPENX", handler_openx}, {"NTCREATEX", handler_ntcreatex}, {"CLOSE", handler_close}, |