summaryrefslogtreecommitdiff
path: root/lib/util/tests
diff options
context:
space:
mode:
authorKamen Mazdrashki <kamen.mazdrashki@postpath.com>2009-09-25 23:46:07 +0300
committerMatthias Dieter Wallnöfer <mwallnoefer@yahoo.de>2009-10-01 23:12:59 +0200
commit3c3ef94ab328698b7b5a2ffeea787d44b2898dfb (patch)
tree24160b818b659dd522bc28566961aa0bfdedf282 /lib/util/tests
parentbd5343924f07154012488ff96d3dd8f64e729a64 (diff)
downloadsamba-3c3ef94ab328698b7b5a2ffeea787d44b2898dfb.tar.gz
samba-3c3ef94ab328698b7b5a2ffeea787d44b2898dfb.tar.bz2
samba-3c3ef94ab328698b7b5a2ffeea787d44b2898dfb.zip
s4/asn1: Added test for ber_write_OID_String()
Diffstat (limited to 'lib/util/tests')
-rw-r--r--lib/util/tests/asn1_tests.c74
1 files changed, 74 insertions, 0 deletions
diff --git a/lib/util/tests/asn1_tests.c b/lib/util/tests/asn1_tests.c
index 6ad321b815..a8207a5e4f 100644
--- a/lib/util/tests/asn1_tests.c
+++ b/lib/util/tests/asn1_tests.c
@@ -23,6 +23,78 @@
#include "torture/torture.h"
#include "../asn1.h"
+struct oid_data {
+ const char *oid; /* String OID */
+ const char *bin_oid; /* Binary OID represented as string */
+};
+
+/* Data for successfull OIDs conversions */
+struct oid_data oid_data_ok[] = {
+ {
+ .oid = "2.5.4.0",
+ .bin_oid = "550400"
+ },
+ {
+ .oid = "2.5.4.1",
+ .bin_oid = "550401"
+ },
+ {
+ .oid = "2.5.4.130",
+ .bin_oid = "55048102"
+ },
+ {
+ .oid = "2.5.130.4",
+ .bin_oid = "55810204"
+ },
+ {
+ .oid = "2.5.4.16387",
+ .bin_oid = "5504818003"
+ },
+ {
+ .oid = "2.5.16387.4",
+ .bin_oid = "5581800304"
+ },
+ {
+ .oid = "2.5.2097155.4",
+ .bin_oid = "558180800304"
+ },
+ {
+ .oid = "2.5.4.130.16387.2097155.268435459",
+ .bin_oid = "55048102818003818080038180808003"
+ },
+};
+
+
+
+/* Testing ber_write_OID_String() function */
+static bool test_ber_write_OID_String(struct torture_context *tctx)
+{
+ int i;
+ char *hex_str;
+ DATA_BLOB blob;
+ TALLOC_CTX *mem_ctx;
+ struct oid_data *data = oid_data_ok;
+
+ mem_ctx = talloc_new(NULL);
+
+ for (i = 0; i < ARRAY_SIZE(oid_data_ok); i++) {
+ torture_assert(tctx, ber_write_OID_String(&blob, data[i].oid),
+ "ber_write_OID_String failed");
+
+ hex_str = hex_encode_talloc(mem_ctx, blob.data, blob.length);
+ torture_assert(tctx, hex_str, "No memory!");
+
+ torture_assert(tctx, strequal(data[i].bin_oid, hex_str),
+ talloc_asprintf(mem_ctx,
+ "Failed: oid=%s, bin_oid:%s",
+ data[i].oid, data[i].bin_oid));
+ }
+
+ talloc_free(mem_ctx);
+
+ return true;
+}
+
/* LOCAL-ASN1 test suite creation */
@@ -30,6 +102,8 @@ struct torture_suite *torture_local_util_asn1(TALLOC_CTX *mem_ctx)
{
struct torture_suite *suite = torture_suite_create(mem_ctx, "ASN1");
+ torture_suite_add_simple_test(suite, "ber_write_OID_String",
+ test_ber_write_OID_String);
return suite;
}