diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/Makefile.am | 19 | ||||
-rw-r--r-- | test/run-tests.c | 18 | ||||
-rw-r--r-- | test/run-tests.h | 9 | ||||
-rw-r--r-- | test/smoke-tests/hello.c | 11 | ||||
-rw-r--r-- | test/smoke-tests/introspection.js | 4 | ||||
-rw-r--r-- | test/smoke-tests/introspection.py | 4 | ||||
-rw-r--r-- | test/test-hello.c | 59 | ||||
-rw-r--r-- | test/test-init.c | 19 |
8 files changed, 143 insertions, 0 deletions
diff --git a/test/Makefile.am b/test/Makefile.am new file mode 100644 index 0000000..85c0fe7 --- /dev/null +++ b/test/Makefile.am @@ -0,0 +1,19 @@ +# Copyright 2013 Endless Mobile, Inc. + +noinst_PROGRAMS = \ + test/run-tests \ + test/smoke-tests/hello + +TEST_FLAGS = @EOS_SDK_CFLAGS@ -I$(top_srcdir) +TEST_LIBS = @EOS_SDK_LIBS@ $(top_builddir)/libendless-@EOS_SDK_API_VERSION@.la + +test_run_tests_SOURCES = \ + test/run-tests.c \ + test/test-init.c \ + test/test-hello.c +test_run_tests_CPPFLAGS = $(TEST_FLAGS) +test_run_tests_LDADD = $(TEST_LIBS) + +test_smoke_tests_hello_SOURCES = test/smoke-tests/hello.c +test_smoke_tests_hello_CPPFLAGS = $(TEST_FLAGS) +test_smoke_tests_hello_LDADD = $(TEST_LIBS) diff --git a/test/run-tests.c b/test/run-tests.c new file mode 100644 index 0000000..ba016bc --- /dev/null +++ b/test/run-tests.c @@ -0,0 +1,18 @@ +/* Copyright 2013 Endless Mobile, Inc. */ + +#include <glib-object.h> +#include <glib.h> + +#include "run-tests.h" + +int +main (int argc, + char **argv) +{ + g_test_init (&argc, &argv, NULL); + + add_init_tests (); + add_hello_tests (); + + return g_test_run (); +} diff --git a/test/run-tests.h b/test/run-tests.h new file mode 100644 index 0000000..3efac9e --- /dev/null +++ b/test/run-tests.h @@ -0,0 +1,9 @@ +/* Copyright 2013 Endless Mobile, Inc. */ + +#ifndef RUN_TESTS_H +#define RUN_TESTS_H + +void add_init_tests (void); +void add_hello_tests (void); + +#endif /* RUN_TESTS_H */ diff --git a/test/smoke-tests/hello.c b/test/smoke-tests/hello.c new file mode 100644 index 0000000..4538835 --- /dev/null +++ b/test/smoke-tests/hello.c @@ -0,0 +1,11 @@ +/* Copyright 2013 Endless Mobile, Inc. */ + +#include <endless/endless.h> + +int +main (int argc, + char **argv) +{ + eos_hello_sample_function (NULL, NULL); + return 0; +} diff --git a/test/smoke-tests/introspection.js b/test/smoke-tests/introspection.js new file mode 100644 index 0000000..8197fe7 --- /dev/null +++ b/test/smoke-tests/introspection.js @@ -0,0 +1,4 @@ +// Copyright 2013 Endless Mobile, Inc. + +const Endless = imports.gi.Endless; +Endless.hello_sample_function(null); diff --git a/test/smoke-tests/introspection.py b/test/smoke-tests/introspection.py new file mode 100644 index 0000000..7870bc1 --- /dev/null +++ b/test/smoke-tests/introspection.py @@ -0,0 +1,4 @@ +# Copyright 2013 Endless Mobile, Inc. + +from gi.repository import Endless +Endless.hello_sample_function(None) diff --git a/test/test-hello.c b/test/test-hello.c new file mode 100644 index 0000000..687f14d --- /dev/null +++ b/test/test-hello.c @@ -0,0 +1,59 @@ +/* Copyright 2013 Endless Mobile, Inc. */ + +#include <stdlib.h> +#include <glib.h> +#include <endless/endless.h> + +#include "run-tests.h" + +#define EXPECTED_HELLO_STRING "Hello, world!\n" + +static void +test_hello_stdout (void) +{ + GError *error = NULL; + + /* Unix-only test */ + if (g_test_trap_fork(0 /* timeout */, G_TEST_TRAP_SILENCE_STDOUT)) + { + gboolean success = eos_hello_sample_function (NULL, &error); + g_assert (success); + g_assert_no_error (error); + exit (0); + } + + g_test_trap_assert_passed (); + g_test_trap_assert_stdout (EXPECTED_HELLO_STRING); +} + +static void +test_hello_gfile (void) +{ + GError *error = NULL; + GFileIOStream *stream; + GFile *file = g_file_new_tmp ("sdktestXXXXXX", &stream, &error); + gboolean success; + char *file_contents; + + g_assert_no_error (error); + g_io_stream_close (G_IO_STREAM (stream), NULL, &error); + g_assert_no_error (error); + + success = eos_hello_sample_function (file, &error); + g_assert (success); + g_assert_no_error (error); + + g_file_load_contents (file, NULL, &file_contents, NULL, NULL, &error); + g_assert_no_error (error); + g_assert_cmpstr (file_contents, ==, EXPECTED_HELLO_STRING); + + g_free (file_contents); + g_object_unref (file); +} + +void +add_hello_tests (void) +{ + g_test_add_func ("/hello/stdout", test_hello_stdout); + g_test_add_func ("/hello/gfile", test_hello_gfile); +} diff --git a/test/test-init.c b/test/test-init.c new file mode 100644 index 0000000..1fd856e --- /dev/null +++ b/test/test-init.c @@ -0,0 +1,19 @@ +/* Copyright 2013 Endless Mobile, Inc. */ + +#include <glib.h> +#include <endless/endless.h> +#include "endless/init-private.h" + +#include "run-tests.h" + +static void +test_constructor_called (void) +{ + g_assert (eos_is_inited ()); +} + +void +add_init_tests (void) +{ + g_test_add_func ("/init/constructor-called", test_constructor_called); +} |