From: Bernhard Urban Date: Thu, 4 Mar 2010 18:46:30 +0000 (+0100) Subject: asmb: testen und zwar richtig X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=commitdiff_plain;h=7628166391caf88dc595a4810b535e3e1cacc7b6;p=uebersetzerbau-ss10.git asmb: testen und zwar richtig --- diff --git a/asmb/asmbtest.c b/asmb/asmbtest.c index b8932f7..ed928c5 100644 --- a/asmb/asmbtest.c +++ b/asmb/asmbtest.c @@ -16,7 +16,8 @@ unsigned char *asmb_ref(unsigned char *s) } #define NUM_TESTCASES 13 -int main() { +int main() +{ char *input[NUM_TESTCASES]={"asdfABCDEFGHKL54", "foofuuMUHkk", "AbC", @@ -50,13 +51,22 @@ int main() { int i,j; for(i = 0; i < NUM_TESTCASES; i++) { - input_our = strndup(input[i], len[i]); - input_ref = strndup(input[i], len[i]); + input_our = (char *) malloc (len[i]); + input_ref = (char *) malloc (len[i]); + + (void) memcpy(input_our, input[i], len[i]+1); + (void) memcpy(input_ref, input[i], len[i]+1); output_our = (char *) asmb((unsigned char *) input_our); output_ref = (char *) asmb_ref((unsigned char *) input_ref); + if(memcmp(output_our,output_ref, len[i]) != 0) { - printf("Testfall%02i falsch!\n Input(\"%s\"):\n\t", i, input[i]); + if(strncmp(output_our, output_ref, len[i]) == 0) + printf("Testfall%02i nach Nullbyte ungleich\n", i); + else + printf("Testfall%02i falsch!\n", i); + + printf("Input(\"%s\"):\n\t", input[i]); for(j = 0; j <= len[i]; j++) { printf("%02X ", input[i][j]); }