r20962: Fix lcov
authorJelmer Vernooij <jelmer@samba.org>
Tue, 23 Jan 2007 00:39:12 +0000 (00:39 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:44:03 +0000 (14:44 -0500)
(This used to be commit 3d3d3031c80b56c824ab8a0f3616d564f092a110)

source4/torture/local/config.mk
source4/torture/local/local.c
source4/torture/local/tdr.c [new file with mode: 0644]

index f41ce8ac5be4a7413dd5c89b3058e1925f71d4e7..be06e0141e723122a84b0cd234d53d47bf76f64b 100644 (file)
@@ -26,12 +26,14 @@ OBJ_FILES = \
                util_file.o \
                sddl.o \
                ndr.o \
+               tdr.o \
                event.o \
                local.o \
                dbspeed.o \
                torture.o
 PUBLIC_DEPENDENCIES = \
                RPC_NDR_ECHO \
+               TDR \
                LIBCLI_SMB \
                MESSAGING \
                ICONV \
index 47a91c96f77daeb38be5cff4e09257c7d05895db..8c050ddd1472327cf0d0451e29eb73fde5ee6540 100644 (file)
@@ -40,6 +40,7 @@
        torture_local_resolve,
        torture_local_sddl,
        torture_local_ndr, 
+       torture_local_tdr, 
        torture_local_event, 
        torture_local_torture,
        torture_local_dbspeed, 
diff --git a/source4/torture/local/tdr.c b/source4/torture/local/tdr.c
new file mode 100644 (file)
index 0000000..12887f0
--- /dev/null
@@ -0,0 +1,61 @@
+/* 
+   Unix SMB/CIFS implementation.
+   test suite for basic tdr functions
+
+   Copyright (C) Jelmer Vernooij 2007
+   
+   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/torture.h"
+#include "lib/tdr/tdr.h"
+
+static bool test_push_uint8(struct torture_context *tctx)
+{
+       uint8_t v = 4;
+       struct tdr_push *tdr = talloc_zero(tctx, struct tdr_push);
+
+       torture_assert_ntstatus_ok(tctx, tdr_push_uint8(tdr, &v), "push failed");
+       torture_assert_int_equal(tctx, tdr->data.length, 1, "length incorrect");
+       torture_assert_int_equal(tctx, tdr->data.data[0], 4, "data incorrect");
+       return true;
+}
+
+static bool test_pull_uint8(struct torture_context *tctx)
+{
+       uint8_t d = 2;
+       uint8_t l;
+       struct tdr_pull tdr;
+       tdr.data.data = &d;
+       tdr.data.length = 1;
+       tdr.offset = 0;
+       tdr.flags = 0;
+       torture_assert_ntstatus_ok(tctx, tdr_pull_uint8(&tdr, tctx, &l), 
+                                                          "pull failed");
+       torture_assert_int_equal(tctx, 1, tdr.offset, 
+                                                        "offset invalid");
+       return true;
+}
+
+struct torture_suite *torture_local_tdr(TALLOC_CTX *mem_ctx)
+{
+       struct torture_suite *suite = torture_suite_create(mem_ctx, "TDR");
+
+       torture_suite_add_simple_test(suite, "pull_uint8", test_pull_uint8);
+       torture_suite_add_simple_test(suite, "push_uint8", test_push_uint8);
+
+       return suite;
+}