#include #include #include extern unsigned char *asmb(unsigned char *s); unsigned char *asmb_ref(unsigned char *s) { unsigned long i; for (i=0; s[i]; i++) { unsigned char c = s[i]; c += (c >= 'A' && c <= 'Z') ? 'a'-'A' : 0; s[i] = c; } return s; } int main(int argc, char **argv) { char *input1[]={"asdfA\0BCDEFGHKL5", "foofuuMUHkk\0AAAA", "AbC\0AAAAAAAAAAAA", "BLA|MUHMKUH|KAA\0", "ASDFASDFasdfasdfaBC\0AAAABBBBCCCC", "ASDFASDFasdfasdfaBC0AAAABBBBCCCCmuhKA\0asASDFasdf" /* 8 16 20 24 28 32 36 40 48 */ }; int len[] = {16,16, 16,16, 32, 48}; char *output1; char *output2; char *input2; char *input3; int i, j; for(i = 0; i < 6; i++) { input2 = strdup(input1[i]); input3 = strdup(input1[i]); output1 = (char *)asmb_ref((unsigned char *)(input2)); output2 = (char *)asmb((unsigned char *)(input3)); printf("\n"); #if 0 if(memcmp(output1,output2, len[i])) { #else if(strncmp(output1,output2, len[i])) { #endif j = 0; printf("Testfall falsch; Input war: \"%s\"\n", input1[i]); printf("erwartet:\n\t\"%s\"\ntatsaechliches Ergebnis:\n\t\"%s\"\n", output1, output2); #if 0 printf("0x"); for(j = 0; j < 16; j++) printf("%02X", output2[j]); printf("\n"); #endif } else { printf("Testfall \"%s\" passt.\n", output1); } free(input2); free(input3); } return 0; }