5 extern unsigned char *asmb(unsigned char *a);
7 unsigned char *asmb_ref(unsigned char *s)
10 for (i=0; s[i]; i++) {
12 c += (c>='A' && c<='Z') ? 'a'-'A' : 0;
18 #define NUM_TESTCASES 13
21 char *input[NUM_TESTCASES]={"asdfABCDEFGHKL54",
25 "ASDFNERABHDFKHDFKLGJAHGLKAHGLKASHGEARNAKLVNLVAANLSADJVHASDLGH",
31 "ASDFASDFasdfasdfaBC\0AAAABBBBCCCC",
32 "ASDFASDFasdfasdfaBC0AAAABBBBCCCCmuhKA\0asASDFasdf" ,
35 int len[NUM_TESTCASES] = {16,
49 char *output_our, *output_ref;
50 char *input_our, *input_ref;
53 for(i = 0; i < NUM_TESTCASES; i++) {
54 input_our = (char *) malloc (len[i]);
55 input_ref = (char *) malloc (len[i]);
57 (void) memcpy(input_our, input[i], len[i]+1);
58 (void) memcpy(input_ref, input[i], len[i]+1);
60 output_our = (char *) asmb((unsigned char *) input_our);
61 output_ref = (char *) asmb_ref((unsigned char *) input_ref);
63 if(memcmp(output_our,output_ref, len[i]) != 0) {
64 if(strncmp(output_our, output_ref, len[i]) == 0)
65 printf("Testfall%02i nach Nullbyte ungleich\n", i);
67 printf("Testfall%02i falsch!\n", i);
69 printf("Input(\"%s\"):\n\t", input[i]);
70 for(j = 0; j <= len[i]; j++) {
71 printf("%02X ", input[i][j]);
73 printf("\nerwartet:\n\t");
74 for(j = 0; j <= len[i]; j++) {
75 printf("%02X ", output_ref[j]);
77 printf("\ntatsaechliches Ergebnis:\n\t");
78 for(j = 0; j <= len[i]; j++) {
79 printf("%02X ", output_our[j]);
84 printf("Testfall%02i korrekt\n", i);