You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by David Jones <os...@gmail.com> on 2007/12/19 17:58:27 UTC

PATCH: apr-util/test/testpass.c does not support EBCDIC platforms

Adding the support needed to get testpass to work on ebcdic:

Index: apr-util/test/testpass.c
===================================================================
--- apr-util/test/testpass.c    (revision 605614)
+++ apr-util/test/testpass.c    (working copy)
@@ -46,6 +46,16 @@
   htpasswd -b passwords pass8 pass8
   (insert Perl one-liner to convert to initializer :) )
  */
+#if APR_CHARSET_EBCDIC
+    {"pass1", "rWy/HnBer2TdJ"},
+    {"pass2", "qdrOSG4cj7MC3"},
+    {"pass3", "PI4o9ZJbivdDX"},
+    {"pass4", "pkKRZ8C5iOHZy"},
+    {"pass5", "OP3zqMQDbFvJT"},
+    {"pass6", ".4hyjmhze4PhM"},
+    {"pass7", "akP2LZLNYQ23e"},
+    {"pass8", "APf2p0wuJ9iNs"}
+#else
     {"pass1", "1fWDc9QWYCWrQ"},
     {"pass2", "1fiGx3u7QoXaM"},
     {"pass3", "1fzijMylTiwCs"},
@@ -54,6 +64,7 @@
     {"pass6", "nHbsbWmJ3uyhc"},
     {"pass7", "nHQ3BbF0Y9vpI"},
     {"pass8", "nHZA1rViSldQk"}
+#endif
 };
 static int num_passwords = sizeof(passwords) / sizeof(passwords[0]);

@@ -128,6 +139,30 @@

 abts_suite *testpass(abts_suite *suite)
 {
+#if APR_CHARSET_EBCDIC
+    apr_status_t rv;
+    apr_xlate_t *to_ascii;
+    apr_pool_t *pool;
+
+    apr_initialize();
+    atexit(apr_terminate);
+    apr_pool_create(&pool, NULL);
+    rv = apr_xlate_open(&to_ascii, "ISO-8859-1", APR_DEFAULT_CHARSET,
pool);
+    if (rv) {
+        fprintf(stderr, "apr_xlate_open(to ASCII)->%d", rv);
+        return suite;
+    }
+    rv = apr_SHA1InitEBCDIC(to_ascii);
+    if (rv) {
+        fprintf(stderr, "apr_SHA1InitEBCDIC()->%d", rv);
+        return suite;
+    }
+    rv = apr_MD5InitEBCDIC(to_ascii);
+    if (rv) {
+        fprintf(stderr, "apr_MD5InitEBCDIC()->%d", rv);
+        return suite;
+    }
+#endif
     suite = ADD_SUITE(suite);

     abts_run_test(suite, test_crypt, NULL);