init
[uebersetzerbau-ss10.git] / aus_sammelwut / paulchen / ublu / ss08 / test_asmb.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 extern void asmb(unsigned char *s, unsigned char *t, unsigned char *u);
6                 
7 void asmb_ref(unsigned char *s, unsigned char *t, unsigned char *u)  
8 {  
9   int i;  
10   for (i=0; s[i] && t[i]; i++)  
11     u[i] = (s[i]<t[i]) ? s[i] : t[i];  
12   u[i] = '\0';  
13
14
15 int main(int argc, char **argv) {
16         char input1[]="0123456789abcdefghijklmnopqrstuvwxyzäöüßABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ\0.""...................";
17         char *input2=strdup(input1);
18         char *output1;
19         char *output2;
20
21         int a,b;
22         output1=(char *)malloc(100*(sizeof(char)+1));
23         output2=(char *)malloc(100*(sizeof(char)+1));
24         for(a=0;a<70;a++) {
25                 for(b=1;b<70;b++) {
26                         asmb_ref((unsigned char *)(input1+a),(unsigned char *)(input2+b),(unsigned char *)output1);
27                         asmb((unsigned char *)(input1+a),(unsigned char *)(input2+b),(unsigned char *)output2);
28
29                         if(memcmp(output1,output2,strlen(input1)-(a<b ? b : a))!=0) {
30                                 printf("Testfall falsch, erwartet %s, tatsaechliches Ergebnis: %s\n",output1,output2);
31                         }
32                 }
33         }
34         free(output1);
35         free(output2);
36         return 0;
37 }
38
39