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

📄 modp_ascii_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 "modp_ascii.h"#include <stdio.h>#include <limits.h>#include <stdlib.h>#include <string.h>#include "minunit.h"static char* testLowerSimple(){    const char* case4 = "ABCD abcd1234";    const char* case3 = "ABCD abcd123";    const char* case2 = "ABCD abcd12";    const char* case1 = "ABCD abcd1";    char orig[100];    strcpy(orig, case4);    modp_tolower(orig, strlen(orig));    mu_assert_str_equals("abcd abcd1234", orig);    strcpy(orig, case3);    modp_tolower(orig, strlen(orig));    mu_assert_str_equals("abcd abcd123", orig);    strcpy(orig, case2);    modp_tolower(orig, strlen(orig));    mu_assert_str_equals("abcd abcd12", orig);    strcpy(orig, case1);    modp_tolower(orig, strlen(orig));    mu_assert_str_equals("abcd abcd1", orig);    return 0;}/**  * Test possible overflow conditions * */static char* testUpperHighBits(){    char obuf[5];    char expected[5];    char buf[5];    buf[0] = 'z';    buf[1] = 0xff;    buf[2] = 0xff;    buf[3] = 0xff;    buf[4] = '\0';    expected[0] = 'Z';    expected[1] = 0xff;    expected[2] = 0xff;    expected[3] = 0xff;    expected[4] = '\0';    memset(obuf, 0, sizeof(obuf));    modp_toupper_copy(obuf, buf, strlen(buf));    mu_assert_str_equals(expected, obuf);    buf[0] = 0xff;    buf[1] = 0xff;    buf[2] = 0xff;    buf[3] = 'z';    buf[4] = '\0';    expected[0] = 0xff;    expected[1] = 0xff;    expected[2] = 0xff;    expected[3] = 'Z';    expected[4] = '\0';    memset(obuf, 0, sizeof(obuf));    modp_toupper_copy(obuf, buf, strlen(buf));    mu_assert_str_equals(expected, obuf);    return 0;}static char* testUpperSimple(){    const char* case4 = "ABCD abcd1234";    const char* case3 = "ABCD abcd123";    const char* case2 = "ABCD abcd12";    const char* case1 = "ABCD abcd1";    char orig[100];    strcpy(orig, case4);    modp_toupper(orig, strlen(orig));    mu_assert_str_equals("ABCD ABCD1234", orig);    strcpy(orig, case3);    modp_toupper(orig, strlen(orig));    mu_assert_str_equals("ABCD ABCD123", orig);    strcpy(orig, case2);    modp_toupper(orig, strlen(orig));    mu_assert_str_equals("ABCD ABCD12", orig);    strcpy(orig, case1);    modp_toupper(orig, strlen(orig));    mu_assert_str_equals("ABCD ABCD1", orig);    return 0;}static char* testPrintSimple(){    const char* case4 = "ABCD abcd\t\t\t\t";    const char* case3 = "ABCD abcd\t\t\t";    const char* case2 = "ABCD abcd\t\t";    const char* case1 = "ABCD abcd\t";    char orig[100];    strcpy(orig, case4);    modp_toprint(orig, strlen(orig));    mu_assert_str_equals("ABCD abcd????", orig);    strcpy(orig, case3);    modp_toprint(orig, strlen(orig));    mu_assert_str_equals("ABCD abcd???", orig);    strcpy(orig, case2);    modp_toprint(orig, strlen(orig));    mu_assert_str_equals("ABCD abcd??", orig);    strcpy(orig, case1);    modp_toprint(orig, strlen(orig));    mu_assert_str_equals("ABCD abcd?", orig);    return 0;}static char* testToUpper(){    int i;    char buf1[300];    char expected[300];    for (i = 0; i < 256; ++i) {        buf1[i] = (char) i;        expected[i] = (i >= 'a' && i <= 'z') ? i-32 : i;    }    modp_toupper(buf1, 256);    mu_assert(memcmp(expected, buf1, 256) == 0);    // do other sizes to check    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_toupper(buf1, 255);    mu_assert(memcmp(expected, buf1, 255) == 0);    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_toupper(buf1, 254);    mu_assert(memcmp(expected, buf1, 254) == 0);    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_toupper(buf1, 253);    mu_assert(memcmp(expected, buf1, 253) == 0);    return 0;}static char* testToLower(){    int i;    char buf1[300];    char expected[300];    for (i = 0; i < 256; ++i) {        buf1[i] = (char) i;        expected[i] = (i >= 'A' && i <= 'Z') ? i+32 : i;    }    modp_tolower(buf1, 256);    mu_assert(memcmp(expected, buf1, 256) == 0);    // do other sizes to check    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_tolower(buf1, 255);    mu_assert(memcmp(expected, buf1, 255) == 0);    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_tolower(buf1, 254);    mu_assert(memcmp(expected, buf1, 254) == 0);    for (i = 0; i < 256; ++i) buf1[i] = (char) i;    modp_tolower(buf1, 253);    mu_assert(memcmp(expected, buf1, 253) == 0);    return 0;}static char* testToUpperCopy(){    int i;    char buf1[300];    char output[300];    char expected[300];    for (i = 0; i < 256; ++i) {        buf1[i] = (char) i;        output[i] = 0;        expected[i] = (i >= 'a' && i <= 'z') ? i-32 : i;    }    buf1[i] = 0;    output[i] = 0;    modp_toupper_copy(output, buf1, 256);    mu_assert(memcmp(expected, output, 256) == 0);    // do other sizes to check    for (i = 0; i < 256; ++i) output[i] = 0;    modp_toupper_copy(output, buf1, 255);    mu_assert(memcmp(expected, output, 255) == 0);    for (i = 0; i < 256; ++i) output[i] = 0;    modp_toupper_copy(output, buf1, 254);    mu_assert(memcmp(expected, output, 254) == 0);    for (i = 0; i < 256; ++i) output[i] = 0;    modp_toupper_copy(output, buf1, 253);    mu_assert(memcmp(expected, output, 253) == 0);    return 0;}static char* testToLowerCopy(){    int i;    char buf1[300];    char output[300];    char expected[300];    for (i = 0; i < 256; ++i) {        buf1[i] = (char) i;        output[i] = 0;        expected[i] = (i >= 'A' && i <= 'Z') ? i+32 : i;    }    buf1[i] = 0;    output[i] = 0;    modp_tolower_copy(output, buf1, 256);    mu_assert(memcmp(expected, output, 256) == 0);    // do other sizes to check    for (i = 0; i < 256; ++i) output[i] = 0;    modp_tolower_copy(output, buf1, 255);    mu_assert(memcmp(expected, output, 255) == 0);    for (i = 0; i < 256; ++i) output[i] = 0;    modp_tolower_copy(output, buf1, 254);    mu_assert(memcmp(expected, output, 254) == 0);    for (i = 0; i < 256; ++i) output[i] = 0;    modp_tolower_copy(output, buf1, 253);    mu_assert(memcmp(expected, output, 253) == 0);    return 0;}static char* all_tests() {    mu_run_test(testUpperHighBits);    mu_run_test(testUpperSimple);    mu_run_test(testLowerSimple);    mu_run_test(testPrintSimple);    mu_run_test(testToUpperCopy);    mu_run_test(testToLowerCopy);    mu_run_test(testToUpper);    mu_run_test(testToLower);    return 0;}UNITTESTS

⌨️ 快捷键说明

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