Annotation of embedaddon/lighttpd/src/test_base64.c, revision 1.1.1.1

1.1       misho       1: #include "first.h"
                      2: 
                      3: #include "base64.h"
                      4: 
                      5: static void check_all_len_0() {
                      6:        buffer *check = buffer_init();
                      7:        const char empty[] = "";
                      8: 
                      9:        {
                     10:                unsigned char* check_res;
                     11: 
                     12:                force_assert(0 == li_to_base64_no_padding(NULL, 0, NULL, 0, BASE64_STANDARD));
                     13: 
                     14:                buffer_reset(check);
                     15:                check_res = buffer_append_base64_decode(check, NULL, 0, BASE64_STANDARD);
                     16:                force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     17:                force_assert(buffer_is_equal_string(check, empty, 0));
                     18:        }
                     19: 
                     20:        {
                     21:                unsigned char* check_res;
                     22: 
                     23:                force_assert(0 == li_to_base64_no_padding(NULL, 0, NULL, 0, BASE64_URL));
                     24: 
                     25:                buffer_reset(check);
                     26:                check_res = buffer_append_base64_decode(check, NULL, 0, BASE64_URL);
                     27:                force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     28:                force_assert(buffer_is_equal_string(check, empty, 0));
                     29:        }
                     30: 
                     31:        buffer_free(check);
                     32: }
                     33: 
                     34: static void check_all_len_1() {
                     35:        unsigned int c1;
                     36:        buffer *check = buffer_init();
                     37: 
                     38:        for (c1 = 0; c1 < 256; ++c1) {
                     39:                {
                     40:                        unsigned char in[] = { c1 };
                     41:                        char out[2] = { 0, 0 };
                     42:                        unsigned char* check_res;
                     43: 
                     44:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_STANDARD));
                     45: 
                     46:                        buffer_reset(check);
                     47:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_STANDARD);
                     48:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     49:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                     50:                }
                     51: 
                     52:                {
                     53:                        unsigned char in[] = { c1 };
                     54:                        char out[2] = { 0, 0 };
                     55:                        unsigned char* check_res;
                     56: 
                     57:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_URL));
                     58: 
                     59:                        buffer_reset(check);
                     60:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_URL);
                     61:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     62:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                     63:                }
                     64:        }
                     65: 
                     66:        buffer_free(check);
                     67: }
                     68: 
                     69: static void check_all_len_2() {
                     70:        unsigned int c1, c2;
                     71:        buffer *check = buffer_init();
                     72: 
                     73:        for (c1 = 0; c1 < 256; ++c1) for (c2 = 0; c2 < 256; ++c2) {
                     74:                {
                     75:                        unsigned char in[] = { c1, c2 };
                     76:                        char out[3] = { 0, 0, 0 };
                     77:                        unsigned char* check_res;
                     78: 
                     79:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_STANDARD));
                     80: 
                     81:                        buffer_reset(check);
                     82:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_STANDARD);
                     83:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     84:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                     85:                }
                     86: 
                     87:                {
                     88:                        unsigned char in[] = { c1, c2 };
                     89:                        char out[3] = { 0, 0, 0 };
                     90:                        unsigned char* check_res;
                     91: 
                     92:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_URL));
                     93: 
                     94:                        buffer_reset(check);
                     95:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_URL);
                     96:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                     97:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                     98:                }
                     99:        }
                    100: 
                    101:        buffer_free(check);
                    102: }
                    103: 
                    104: static void check_all_len_3() {
                    105:        unsigned int c1, c2, c3;
                    106:        buffer *check = buffer_init();
                    107: 
                    108:        for (c1 = 0; c1 < 256; ++c1) for (c2 = 0; c2 < 256; ++c2) for (c3 = 0; c3 < 256; ++c3) {
                    109:                {
                    110:                        unsigned char in[] = { c1, c2, c3 };
                    111:                        char out[4] = { 0, 0, 0, 0 };
                    112:                        unsigned char* check_res;
                    113: 
                    114:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_STANDARD));
                    115: 
                    116:                        buffer_reset(check);
                    117:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_STANDARD);
                    118:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                    119:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                    120:                }
                    121: 
                    122:                {
                    123:                        unsigned char in[] = { c1, c2, c3 };
                    124:                        char out[4] = { 0, 0, 0, 0 };
                    125:                        unsigned char* check_res;
                    126: 
                    127:                        force_assert(sizeof(out) == li_to_base64_no_padding(out, sizeof(out), in, sizeof(in), BASE64_URL));
                    128: 
                    129:                        buffer_reset(check);
                    130:                        check_res = buffer_append_base64_decode(check, out, sizeof(out), BASE64_URL);
                    131:                        force_assert((check_res != NULL) && (check_res == (unsigned char*) check->ptr));
                    132:                        force_assert(buffer_is_equal_string(check, (const char*) in, sizeof(in)));
                    133:                }
                    134:        }
                    135: 
                    136:        buffer_free(check);
                    137: }
                    138: 
                    139: int main() {
                    140:        check_all_len_0();
                    141:        check_all_len_1();
                    142:        check_all_len_2();
                    143:        check_all_len_3();
                    144: 
                    145:        return 0;
                    146: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>