summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am19
-rw-r--r--test/run-tests.c18
-rw-r--r--test/run-tests.h9
-rw-r--r--test/smoke-tests/hello.c11
-rw-r--r--test/smoke-tests/introspection.js4
-rw-r--r--test/smoke-tests/introspection.py4
-rw-r--r--test/test-hello.c59
-rw-r--r--test/test-init.c19
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);
+}