r20955: Add tests
authorJelmer Vernooij <jelmer@samba.org>
Mon, 22 Jan 2007 18:24:24 +0000 (18:24 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:44:01 +0000 (14:44 -0500)
(This used to be commit 965d0d9289eceed1b9b88ad3f87046ac47202237)

source4/torture/local/ndr.c

index b14b066455c413f22ff64ea4b57852f33265e99d..395fba190513cd3a2bc7306fe0d6dafa039e29f4 100644 (file)
@@ -70,6 +70,116 @@ static bool test_check_string_terminator(struct torture_context *tctx)
        return true;
 }
 
+static bool test_guid_from_string_valid(struct torture_context *tctx)
+{
+       /* FIXME */
+       return true;
+}
+
+static bool test_guid_from_string_null(struct torture_context *tctx)
+{
+       struct GUID guid;
+       torture_assert_ntstatus_equal(tctx, NT_STATUS_INVALID_PARAMETER, 
+                                                                 GUID_from_string(NULL, &guid), 
+                                                                 "NULL failed");
+       return true;
+}
+
+static bool test_guid_from_string_invalid(struct torture_context *tctx)
+{
+       struct GUID g1;
+       torture_assert_ntstatus_equal(tctx, NT_STATUS_INVALID_PARAMETER, 
+                                                                 GUID_from_string("bla", &g1),
+                                                                 "parameter not invalid");
+       return true;
+}      
+
+static bool test_guid_from_string(struct torture_context *tctx)
+{
+       struct GUID g1, exp;
+       torture_assert_ntstatus_ok(tctx,
+                                                          GUID_from_string("00000001-0002-0003-0405-060708090a0b", &g1),
+                                                          "invalid return code");
+       exp.time_low = 1;
+       exp.time_mid = 2;
+       exp.time_hi_and_version = 3;
+       exp.clock_seq[0] = 4;
+       exp.clock_seq[1] = 5;
+       exp.node[0] = 6;
+       exp.node[1] = 7;
+       exp.node[2] = 8;
+       exp.node[3] = 9;
+       exp.node[4] = 10;
+       exp.node[5] = 11;
+       torture_assert(tctx, GUID_equal(&g1, &exp), "UUID parsed incorrectly");
+       torture_assert_ntstatus_ok(tctx,
+                                                          GUID_from_string("{00000001-0002-0003-0405-060708090a0b}", &g1),
+                                                          "invalid return code");
+       torture_assert(tctx, GUID_equal(&g1, &exp), "UUID parsed incorrectly");
+
+       return true;
+}
+
+static bool test_guid_string_valid(struct torture_context *tctx)
+{
+       struct GUID g;
+       g.time_low = 1;
+       g.time_mid = 2;
+       g.time_hi_and_version = 3;
+       g.clock_seq[0] = 4;
+       g.clock_seq[1] = 5;
+       g.node[0] = 6;
+       g.node[1] = 7;
+       g.node[2] = 8;
+       g.node[3] = 9;
+       g.node[4] = 10;
+       g.node[5] = 11;
+       torture_assert_str_equal(tctx, "00000001-0002-0003-0405-060708090a0b", GUID_string(tctx, &g), 
+                                                        "parsing guid failed");
+       return true;
+}
+
+static bool test_guid_string2_valid(struct torture_context *tctx)
+{
+       struct GUID g;
+       g.time_low = 1;
+       g.time_mid = 2;
+       g.time_hi_and_version = 3;
+       g.clock_seq[0] = 4;
+       g.clock_seq[1] = 5;
+       g.node[0] = 6;
+       g.node[1] = 7;
+       g.node[2] = 8;
+       g.node[3] = 9;
+       g.node[4] = 10;
+       g.node[5] = 11;
+       torture_assert_str_equal(tctx, "{00000001-0002-0003-0405-060708090a0b}", GUID_string2(tctx, &g), 
+                                                        "parsing guid failed");
+       return true;
+}
+
+static bool test_compare_uuid(struct torture_context *tctx)
+{
+       struct GUID g1, g2;
+       ZERO_STRUCT(g1); ZERO_STRUCT(g2);
+       torture_assert_int_equal(tctx, 0, GUID_compare(&g1, &g2), 
+                                                        "GUIDs not equal");
+       g1.time_low = 1;
+       torture_assert_int_equal(tctx, 1, GUID_compare(&g1, &g2), 
+                                                        "GUID diff invalid");
+
+       g1.time_low = 10;
+       torture_assert_int_equal(tctx, 10, GUID_compare(&g1, &g2), 
+                                                        "GUID diff invalid");
+
+       g1.time_low = 0;
+       g1.clock_seq[1] = 20;
+       torture_assert_int_equal(tctx, 20, GUID_compare(&g1, &g2), 
+                                                        "GUID diff invalid");
+       return true;
+}
+
+
 struct torture_suite *torture_local_ndr(TALLOC_CTX *mem_ctx)
 {
        struct torture_suite *suite = torture_suite_create(mem_ctx, "NDR");
@@ -77,5 +187,26 @@ struct torture_suite *torture_local_ndr(TALLOC_CTX *mem_ctx)
        torture_suite_add_simple_test(suite, "string terminator", 
                                                                   test_check_string_terminator);
 
+       torture_suite_add_simple_test(suite, "guid_from_string_null", 
+                                                                  test_guid_from_string_null);
+
+       torture_suite_add_simple_test(suite, "guid_from_string", 
+                                                                  test_guid_from_string);
+
+       torture_suite_add_simple_test(suite, "guid_from_string_invalid", 
+                                                                  test_guid_from_string_invalid);
+
+       torture_suite_add_simple_test(suite, "guid_string_valid", 
+                                                                  test_guid_string_valid);
+
+       torture_suite_add_simple_test(suite, "guid_string2_valid", 
+                                                                  test_guid_string2_valid);
+
+       torture_suite_add_simple_test(suite, "guid_from_string_valid", 
+                                                                  test_guid_from_string_valid);
+
+       torture_suite_add_simple_test(suite, "compare_uuid", 
+                                                                  test_compare_uuid);
+
        return suite;
 }