diff --git a/tests/Makefile b/tests/Makefile index 3027e61..de72878 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -1,7 +1,7 @@ CC = gcc TEST = test -OBJS = test.o base32.o read.o -SRCOBJS = ../src/base32.o ../src/read.o +OBJS = test.o base32.o read.o dns.o encoding.o +SRCOBJS = ../src/base32.o ../src/read.o ../src/dns.o ../src/encoding.o OS = `uname | tr "a-z" "A-Z"` @@ -22,5 +22,5 @@ $(TEST): $(OBJS) $(SRCOBJS) clean: @echo "Cleaning..." - @rm -f *~ *.core $(TESTS) $(OBJS) + @rm -f *~ *.core $(TEST) $(OBJS) diff --git a/tests/base32.c b/tests/base32.c index 3828532..8ade85f 100644 --- a/tests/base32.c +++ b/tests/base32.c @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2006 Bjorn Andersson , Erik Ekman + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + #include #include #include diff --git a/tests/dns.c b/tests/dns.c new file mode 100644 index 0000000..89bacb5 --- /dev/null +++ b/tests/dns.c @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2006 Bjorn Andersson , Erik Ekman + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "structs.h" +#include "dns.h" +#include "test.h" + +START_TEST(test_encode_hostname) +{ + char buf[256]; + int len; + int ret; + + len = 256; + + memset(buf, 0, 256); + ret = dns_encode_hostname( // More than 63 chars between dots + "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" + "ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ" + , buf, len); + fail_unless(ret == -1, NULL); + + memset(buf, 0, 256); + ret = dns_encode_hostname( // More chars than fits into array + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + "ABCDEFGHIJKLMNOPQRSTUVWXYZ.ABCDEFGHIJKLMNOPQRSTUVWXYZ." + , buf, len); + + fail_unless(ret == -1, NULL); + fail_unless(strlen(buf) < len, NULL); +} +END_TEST + +TCase * +test_dns_create_tests() +{ + TCase *tc; + + tc = tcase_create("Dns"); + tcase_add_test(tc, test_encode_hostname); + + return tc; +} diff --git a/tests/encoding.c b/tests/encoding.c new file mode 100644 index 0000000..ee0dd3a --- /dev/null +++ b/tests/encoding.c @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2006 Bjorn Andersson , Erik Ekman + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include +#include +#include +#include + +#include "encoding.h" +#include "test.h" + +START_TEST(test_encoding_base32) +{ + char temp[256]; + char *start = "HELLOTEST"; + char *out = "1HELLOTEST"; + char *end; + char *tempend; + int codedlength; + + memset(temp, 0, sizeof(temp)); + end = malloc(16); + memset(end, 0, 16); + + codedlength = encode_data(start, 9, 256, temp, 0); + tempend = temp + strlen(temp); + decode_data(end, 16, temp, tempend); + + fail_unless(strcmp(out, end) == 0, NULL); + + free(end); +} +END_TEST + +TCase * +test_encoding_create_tests() +{ + TCase *tc; + + tc = tcase_create("Encoding"); + tcase_add_test(tc, test_encoding_base32); + + return tc; +} diff --git a/tests/test.c b/tests/test.c index 53abc17..6a7640e 100644 --- a/tests/test.c +++ b/tests/test.c @@ -1,3 +1,19 @@ +/* + * Copyright (c) 2006 Bjorn Andersson , Erik Ekman + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + #include #include #include @@ -31,6 +47,12 @@ main() test = test_base32_create_tests(); suite_add_tcase(iodine, test); + test = test_dns_create_tests(); + suite_add_tcase(iodine, test); + + test = test_encoding_create_tests(); + suite_add_tcase(iodine, test); + test = test_read_create_tests(); suite_add_tcase(iodine, test); diff --git a/tests/test.h b/tests/test.h index de7783f..1e9fdf0 100644 --- a/tests/test.h +++ b/tests/test.h @@ -1,7 +1,25 @@ +/* + * Copyright (c) 2006 Bjorn Andersson , Erik Ekman + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + #ifndef __TEST_H__ #define __TEST_H__ TCase *test_base32_create_tests(); +TCase *test_dns_create_tests(); +TCase *test_encoding_create_tests(); TCase *test_read_create_tests(); char *va_str(const char *, ...);