b63e8df7e1140069683377f6d40ee18a10622af6
[uebersetzerbau-ss10.git] / asmb / main.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 extern unsigned char *asmb(unsigned char *s);
6
7 unsigned char *asmb_ref(unsigned char *s)
8 {
9         unsigned long i;
10         for (i=0; s[i]; i++) {
11                 unsigned char c = s[i];
12                 c += (c >= 'A' && c <= 'Z') ? 'a'-'A' : 0;
13                 s[i] = c;
14         }
15         return s;
16 }
17
18 int main(int argc, char **argv) {
19         char *input1[]={"asdfA\0BCDEFGHKL5", "foofuuMUHkk\0AAAA", 
20                                         "AbC\0AAAAAAAAAAAA", "BLA|MUHMKUH|KAA\0", 
21                                         "ASDFASDFasdfasdfaBC\0AAAABBBBCCCC",
22                                         "ASDFASDFasdfasdfaBC0AAAABBBBCCCCmuhKA\0asASDFasdf"
23                                         /*      8      16  20  24  28  32  36   40      48 */
24                                         };
25         int len[] = {16,16,
26                                 16,16,
27                                 32,
28                                 48};
29         char *output1;
30         char *output2;
31         char *input2;
32         char *input3;
33         int i, j;
34
35         for(i = 0; i < 6; i++) {
36                 input2 = strdup(input1[i]);
37                 input3 = strdup(input1[i]);
38                 output1 = (char *)asmb_ref((unsigned char *)(input2));
39                 output2 = (char *)asmb((unsigned char *)(input3));
40
41                 printf("\n");
42 #if 0
43                 if(memcmp(output1,output2, len[i])) {
44 #else
45                 if(strncmp(output1,output2, len[i])) {
46 #endif
47                         j = 0;
48                         printf("Testfall falsch; Input war: \"%s\"\n", input1[i]);
49                         printf("erwartet:\n\t\"%s\"\ntatsaechliches Ergebnis:\n\t\"%s\"\n", output1, output2);
50 #if 0
51                         printf("0x");
52                         for(j = 0; j < 16; j++)
53                                 printf("%02X", output2[j]);
54                         printf("\n");
55 #endif
56                 } else {
57                         printf("Testfall \"%s\" passt.\n", output1);
58                 }
59
60                 free(input2);
61                 free(input3);
62         }
63
64         return 0;
65 }
66