summaryrefslogtreecommitdiff
path: root/test/endless/test-hello.c
blob: 687f14d4a29d30cc7133570942acd6fb722e14bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
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);
}