Annotation of embedaddon/lighttpd/src/test_base64.c, revision 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>