#include <stdlib.h>
#include <string.h>
-extern unsigned char *asmb(unsigned char *s);
+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;
+ unsigned char c=s[i];
+ c += (c>='A' && c<='Z') ? 'a'-'A' : 0;
s[i] = c;
}
return s;
}
-int main(int argc, char **argv) {
- char *input1[]={"asdfA\0BCDEFGHKL5", "foofuuMUHkk\0AAAA",
- "AbC\0AAAAAAAAAAAA", "BLA|MUHMKUH|KAA\0",
- "ASDFASDFasdfasdfaBC\0AAAABBBBCCCC",
- "ASDFASDFasdfasdfaBC0AAAABBBBCCCCmuhKA\0asASDFasdf"
- /* 8 16 20 24 28 32 36 40 48 */
- };
- int len[] = {16,16,
- 16,16,
- 32,
- 48};
- char *output1;
- char *output2;
- char *input2;
- char *input3;
- int i, j;
+#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;
- for(i = 0; i < 6; i++) {
- input2 = strdup(input1[i]);
- input3 = strdup(input1[i]);
- output1 = (char *)asmb_ref((unsigned char *)(input2));
- output2 = (char *)asmb((unsigned char *)(input3));
+ int i,j;
+ for(i = 0; i < NUM_TESTCASES; i++) {
+ input_our = strndup(input[i], len[i]);
+ input_ref = strndup(input[i], len[i]);
- printf("\n");
-#if 0
- if(memcmp(output1,output2, len[i])) {
-#else
- if(strncmp(output1,output2, len[i])) {
-#endif
- j = 0;
- printf("Testfall falsch; Input war: \"%s\"\n", input1[i]);
- printf("erwartet:\n\t\"%s\"\ntatsaechliches Ergebnis:\n\t\"%s\"\n", output1, output2);
-#if 0
- printf("0x");
- for(j = 0; j < 16; j++)
- printf("%02X", output2[j]);
+ output_our = asmb(input_our);
+ output_ref = asmb_ref(input_ref);
+ if(memcmp(output_our,output_ref, len[i]) != 0) {
+ printf("Testfall falsch!\nInput:\n\t");
+ for(j = 0; j <= len[i]; j++) {
+ printf("%02X ", input[i][j]);
+ }
+ printf("\nerwartet:\n\t");
+ for(j = 0; j <= len[i]; j++) {
+ printf("%02X ", output_ref[j]);
+ }
+ printf("\ntatsaechliches Ergebnis:\n\t");
+ for(j = 0; j <= len[i]; j++) {
+ printf("%02X ", output_our[j]);
+ }
printf("\n");
-#endif
- } else {
- printf("Testfall \"%s\" passt.\n", output1);
}
-
- free(input2);
- free(input3);
+ else {
+ printf("Testfall korrekt\n");
+ }
+ free(input_our);
+ free(input_ref);
}
-
return 0;
}