annotate src/tests/tuple_formatter_functor_test.c @ 4736:e14398ef0868

remove some code duplication
author mf0102 <0102@gmx.at>
date Thu, 17 Jul 2008 20:21:52 +0200
parents a97fb19a0148
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3291
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
1 /*
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
2 * Audacious
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
3 * Copyright (c) 2007 William Pitcock
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
4 *
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
5 * This program is free software; you can redistribute it and/or modify
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
6 * it under the terms of the GNU General Public License as published by
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
7 * the Free Software Foundation; under version 3 of the License.
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
8 *
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
9 * This program is distributed in the hope that it will be useful,
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
12 * GNU General Public License for more details.
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
13 *
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
15 * along with this program. If not, see <http://www.gnu.org/licenses>.
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
16 *
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
17 * The Audacious team does not consider modular code linking to
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
18 * Audacious or using our public API to be a derived work.
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
19 */
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
20
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
21 #include <glib.h>
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
22 #include <mowgli.h>
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
23
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
24 #include "tuple.h"
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
25 #include "tuple_formatter.h"
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
26
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
27 static gboolean
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
28 test_functor(Tuple *tuple, const char *expr)
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
29 {
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
30 return TRUE;
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
31 }
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
32
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
33 int
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
34 test_run(int argc, const char *argv[])
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
35 {
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
36 Tuple *tuple;
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
37 gchar *tstr;
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
38
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
39 tuple_formatter_register_expression("(true)", test_functor);
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
40
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
41 tuple = tuple_new();
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
42 tuple_associate_string(tuple, "splork", "moo");
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
43
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
44 tstr = tuple_formatter_process_string(tuple, "${(true):${splork}}");
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
45 if (g_ascii_strcasecmp(tstr, "moo"))
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
46 {
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
47 g_print("fail 1: '%s'\n", tstr);
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
48 return EXIT_FAILURE;
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
49 }
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
50 g_free(tstr);
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
51
3292
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
52 tstr = tuple_formatter_process_string(tuple, "%{audacious-version}");
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
53 if (g_str_has_prefix(tstr, "audacious") == FALSE)
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
54 {
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
55 g_print("fail 2: '%s'\n", tstr);
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
56 return EXIT_FAILURE;
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
57 }
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
58 g_free(tstr);
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
59
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
60 tstr = tuple_formatter_process_string(tuple, "${(true):%{audacious-version}}");
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
61 if (g_str_has_prefix(tstr, "audacious") == FALSE)
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
62 {
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
63 g_print("fail 3: '%s'\n", tstr);
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
64 return EXIT_FAILURE;
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
65 }
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
66 g_free(tstr);
a97fb19a0148 Add support for functions.
William Pitcock <nenolod@atheme-project.org>
parents: 3291
diff changeset
67
3291
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
68 mowgli_object_unref(tuple);
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
69
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
70 return EXIT_SUCCESS;
02335e399a16 Test functor extension code from outside scope.
William Pitcock <nenolod@atheme-project.org>
parents:
diff changeset
71 }