#include #include #include extern unsigned char *asmb(unsigned char *a); 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; } #define NUM_TESTCASES 12 int main() { char *input[NUM_TESTCASES]={"asdfABCDEFGHKL54", "foofuuMUHkk", "AbC", "BLA|MUHMKUH|KA", "ASDFNERABHDFKHDFKLGJAHGLKAHGLKASHGEARNAKLVNLVAANLSADJVHASDLGH", "asdfABCDEFGHKL544", "asdfA\0BCDEFGHKL5", "foofuuMUHkk\0AAAA", "AbC\0AAAAAAAAAAAA", "BLA|MUHMKUH|KAA\0", "ASDFASDFasdfasdfaBC\0AAAABBBBCCCC", "ASDFASDFasdfasdfaBC0AAAABBBBCCCCmuhKA\0asASDFasdf" }; int len[NUM_TESTCASES] = {16, 11, 3, 14, 60, 17, 16, 16, 16, 16, 32, 48 }; char *output_our, *output_ref; char *input_our, *input_ref; int i,j; for(i = 0; i < NUM_TESTCASES; i++) { input_our = strndup(input[i], len[i]); input_ref = strndup(input[i], len[i]); output_our = asmb(input_our); output_ref = asmb_ref(input_ref); if(memcmp(output_our,output_ref, len[i]) != 0) { printf("Testfall falsch! \n Input: \n"); for(j = 0; j <= len[i]; j++) { printf("%02X ",input[j]); } printf("\nerwartet: \n"); for(j = 0; j <= len[i]; j++) { printf("%02X ",output_ref[j]); } printf("\ntatsaechliches Ergebnis: \n"); for(j = 0; j <= len[i]; j++) { printf("%02X ",output_our[j]); } printf("\n"); } else { printf("Testfall korrekt\n"); } free(input_our); free(input_ref); } return 0; }