diff --git a/libtls-standalone/Makefile.am b/libtls-standalone/Makefile.am index 66fe845..2581717 100644 --- a/libtls-standalone/Makefile.am +++ b/libtls-standalone/Makefile.am @@ -1,4 +1,4 @@ -SUBDIRS = include compat src app man +SUBDIRS = include compat src tests man ACLOCAL_AMFLAGS = -I m4 pkgconfigdir = $(libdir)/pkgconfig diff --git a/libtls-standalone/app/test.c b/libtls-standalone/app/test.c deleted file mode 100644 index e3c3f76..0000000 --- a/libtls-standalone/app/test.c +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main() -{ - tls_init(); -} diff --git a/libtls-standalone/configure.ac b/libtls-standalone/configure.ac index e8fb24e..ebdd850 100644 --- a/libtls-standalone/configure.ac +++ b/libtls-standalone/configure.ac @@ -42,10 +42,10 @@ CHECK_LIBC_CRYPTO_COMPAT AC_CONFIG_FILES([ Makefile include/Makefile - app/Makefile compat/Makefile man/Makefile src/Makefile + tests/Makefile libtls.pc ]) diff --git a/libtls-standalone/src/Makefile.am b/libtls-standalone/src/Makefile.am index e821186..7844525 100644 --- a/libtls-standalone/src/Makefile.am +++ b/libtls-standalone/src/Makefile.am @@ -3,7 +3,7 @@ AM_CFLAGS = -I$(top_srcdir)/include lib_LTLIBRARIES = libtls.la libtls_la_LDFLAGS = -version-info @LIBTLS_VERSION@ -no-undefined -libtls_la_LIBADD = -lcrypto -lssl $(PLATFORM_LDADD) +libtls_la_LIBADD = -lcrypto -lssl -lcrypto $(PLATFORM_LDADD) libtls_la_LIBADD += $(top_builddir)/compat/libcompat.la libtls_la_LIBADD += $(top_builddir)/compat/libcompatnoopt.la diff --git a/libtls-standalone/app/Makefile.am b/libtls-standalone/tests/Makefile.am similarity index 77% rename from libtls-standalone/app/Makefile.am rename to libtls-standalone/tests/Makefile.am index 75a3dd6..1a08aef 100644 --- a/libtls-standalone/app/Makefile.am +++ b/libtls-standalone/tests/Makefile.am @@ -1,6 +1,7 @@ AM_CFLAGS = -I$(top_srcdir)/include -bin_PROGRAMS = test +check_PROGRAMS = test +TESTS = test test_SOURCES = test.c test_LDADD = -lcrypto -lssl $(top_builddir)/src/libtls.la diff --git a/libtls-standalone/tests/test.c b/libtls-standalone/tests/test.c new file mode 100644 index 0000000..b2b7c67 --- /dev/null +++ b/libtls-standalone/tests/test.c @@ -0,0 +1,51 @@ +#include +#include + +int main() +{ + struct tls *tls; + struct tls_config *tls_config; + size_t written, read; + char buf[4096]; + + if (tls_init() != 0) { + fprintf(stderr, "tls_init failed"); + return 1; + } + + if ((tls = tls_client()) == NULL) + goto err; + + if ((tls_config = tls_config_new()) == NULL) + goto err; + + if (tls_config_set_ciphers(tls_config, "compat") != 0) + goto err; + + tls_config_insecure_noverifycert(tls_config); + tls_config_insecure_noverifyname(tls_config); + + if (tls_configure(tls, tls_config) != 0) + goto err; + + if (tls_connect(tls, "google.com", "443") != 0) + goto err; + + if (tls_write(tls, "GET /\r\n", 7, &written) != 0) + goto err; + + if (tls_read(tls, buf, sizeof(buf), &read) != 0) + goto err; + + buf[read - 1] = '\0'; + puts(buf); + + if (tls_close(tls) != 0) + goto err; + + return 0; + +err: + fprintf(stderr, "%s\n", tls_error(tls)); + return 0; +}