⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 modp_b85_test.c

📁 本人收集整理的一份c/c++跨平台网络库
💻 C
字号:
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil; tab-width: 4 -*- *//* vi: set expandtab shiftwidth=4 tabstop=4: */#include <stdio.h>#include <stdlib.h>#include <string.h>#include "modp_b85.h"#include "minunit.h"/** * checks to make sure results are the same reguardless of * CPU endian type (i.e. Intel vs. Sparc, etc) * */static char* testEndian(){    // this test that "1" is "!!!!#"    char buf[100];    char result[10];    char endian[] = {(char)0, (char)0, (char)0, (char)1};    int d = modp_b85_encode(buf, endian, 4);    mu_assert_int_equals(5, d);    mu_assert_int_equals('!', buf[0]);    mu_assert_int_equals('!', buf[1]);    mu_assert_int_equals('!', buf[2]);    mu_assert_int_equals('!', buf[3]);    mu_assert_int_equals('#', buf[4]);    memset(result, 255, sizeof(result));    d = modp_b85_decode(result, "!!!!#", 5);    mu_assert_int_equals(4, d);    mu_assert_int_equals(0, result[0]);    mu_assert_int_equals(0, result[1]);    mu_assert_int_equals(0, result[2]);    mu_assert_int_equals(1, result[3]);    mu_assert_int_equals(-1, result[4]);    return 0;}static char* testLength(){    /**     * Decode Len     * 5 bytes -> 4 in, no null     */    mu_assert_int_equals(0, modp_b85_decode_len(0));    mu_assert_int_equals(4, modp_b85_decode_len(5));    mu_assert_int_equals(8, modp_b85_decode_len(10));    /* Encode Len     * 4 byte -> 5 output + 1 null byte     */    mu_assert_int_equals( 1, modp_b85_encode_len(0));    mu_assert_int_equals( 6, modp_b85_encode_len(4));    mu_assert_int_equals(11, modp_b85_encode_len(8));    return 0;}/** \brief test bad input lengths * The b85 encode only accepts multiples of 4. * * The b85 decoder only accepts a mutliple of 5. * */static char* testBadInputLength(){    char buf[100];    mu_assert_int_equals(-1, modp_b85_encode(buf, buf, 5));    mu_assert_int_equals(-1, modp_b85_decode(buf, buf, 11));    return 0;}/** \brief test decoding invalid b85 chars * */static char* testBadCharDecode(){    char buf[] = {'A', 'B', 'C', 'D', '\n', '\0'};    mu_assert_int_equals(-1, modp_b85_decode(buf, buf, 5));    return 0;}static char* testEncodeDecode(){    char ibuf[10]; /* input */    char obuf[10]; /* output */    char rbuf[10]; /* final result */    int d;    int i,j,k,l;    for (i = 0; i < 256; ++i) {        for (j = 0; j < 256; j+=16) { // save some time +=16            for (k = 0; k < 256; k += 8) { // save some time += 8                for (l = 0; l < 256; ++l) {                    ibuf[0] = i;                    ibuf[1] = j;                    ibuf[2] = k;                    ibuf[3] = l;                    memset(obuf, 255, sizeof(obuf));                    d = modp_b85_encode(obuf, ibuf, 4);                    mu_assert_int_equals(5, d);                    mu_assert_int_equals(0, obuf[5]);                    memset(rbuf, 255, sizeof(rbuf));                    d = modp_b85_decode(rbuf, obuf, 5);                    mu_assert_int_equals(4, d);                    mu_assert_int_equals(ibuf[0], rbuf[0]);                    mu_assert_int_equals(ibuf[1], rbuf[1]);                    mu_assert_int_equals(ibuf[2], rbuf[2]);                    mu_assert_int_equals(ibuf[3], rbuf[3]);                    mu_assert_int_equals(-1, rbuf[4]);                }            }        }    }    return 0;}static char* all_tests(){    mu_run_test(testEndian);    mu_run_test(testLength);    mu_run_test(testBadInputLength);    mu_run_test(testBadCharDecode);    mu_run_test(testEncodeDecode);    return 0;}UNITTESTS

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -