sbus_codegen_tests.c revision 1a94716209e40a9ccaedc7e70f9de961d1cced48
8d80659e504ffb34bb0c6a633184fece35751b18Timo Sirainen sbus_codegen tests.
c5794838af9995f50bfecb06a3cd4f9a0ac77858Timo Sirainen Stef Walter <stefw@redhat.com>
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen Copyright (C) Red Hat, Inc 2014
8d80659e504ffb34bb0c6a633184fece35751b18Timo Sirainen This program is free software; you can redistribute it and/or modify
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen it under the terms of the GNU General Public License as published by
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen the Free Software Foundation; either version 3 of the License, or
beb6125ee872e7fed57745ab33e6de99639180f3Timo Sirainen (at your option) any later version.
81a5d8714c566ce50c4a2409f59e82e716d576d2Timo Sirainen This program is distributed in the hope that it will be useful,
81a5d8714c566ce50c4a2409f59e82e716d576d2Timo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
81a5d8714c566ce50c4a2409f59e82e716d576d2Timo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
beb6125ee872e7fed57745ab33e6de99639180f3Timo Sirainen GNU General Public License for more details.
d6badc27cd6e8d3398877b6766cb0aaeef3a7800Timo Sirainen You should have received a copy of the GNU General Public License
d6badc27cd6e8d3398877b6766cb0aaeef3a7800Timo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
d6badc27cd6e8d3398877b6766cb0aaeef3a7800Timo Sirainen#include "tests/sbus_codegen_tests_generated.h"
09c3a491f4f6ccebe290c7709bdc0d79a187610bTimo Sirainen/* The following 2 macros were taken from check's project source files (0.9.10)
48270badadd82279bfe50ae3d187aea8b0b2b30eTimo Sirainen ck_assert_msg(_ck_x OP _ck_y, "Assertion '"#X#OP#Y"' failed: "#X"==%ju, "#Y"==%ju", _ck_x, _ck_y); \
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#endif /* _ck_assert_uint */
c251a38df327599a62d341bf5c2282f31352faa5Timo Sirainen#define ck_assert_uint_eq(X, Y) _ck_assert_uint(X, ==, Y)
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#endif /* ck_assert_uint_eq */
aa38d1a0945f0bc13a225d043f53fad2eec666b1Timo Sirainenstatic const struct sbus_arg_meta *
8d80659e504ffb34bb0c6a633184fece35751b18Timo Sirainen ck_assert_str_eq(com_planetexpress_Ship_meta.name, "com.planetexpress.Ship");
1175f27441385a7011629f295f42708f9a3a4ffcTimo Sirainen ck_assert(com_planetexpress_Ship_meta.methods != NULL);
48270badadd82279bfe50ae3d187aea8b0b2b30eTimo Sirainen ck_assert(com_planetexpress_Ship_meta.signals != NULL);
48270badadd82279bfe50ae3d187aea8b0b2b30eTimo Sirainen ck_assert(com_planetexpress_Ship_meta.properties != NULL);
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen /* Explicit C Symbol */
72cbf33ae81fde08384d30c779ff540752d9256cTimo Sirainen ck_assert_str_eq(test_pilot_meta.name, "com.planetexpress.Pilot");
46c31f64b9f0949f00b7819f45b22f2d64b2ea27Timo Sirainen ck_assert(test_pilot_meta.signals == NULL); /* no signals */
46c31f64b9f0949f00b7819f45b22f2d64b2ea27Timo Sirainen ck_assert(test_pilot_meta.properties != NULL);
a022088674a5ae72ed29ae001834cbad62a4f19fTimo Sirainen method = sbus_meta_find_method(&com_planetexpress_Ship_meta, "MoveUniverse");
73e7998716853b5b7621c06aea0022dccda70ad1Timo Sirainen ck_assert_str_eq(method->name, "MoveUniverse");
d6badc27cd6e8d3398877b6766cb0aaeef3a7800Timo Sirainen arg = find_arg(method->out_args, "where_we_crashed");
d6badc27cd6e8d3398877b6766cb0aaeef3a7800Timo Sirainen ck_assert_str_eq(arg->name, "where_we_crashed");
1279090ba03f9c176976a69ab7718f0ed77b19afTimo Sirainen prop = sbus_meta_find_property(&com_planetexpress_Ship_meta, "Color");
3fe9483b2b412a14493e3120751b0e99ecfe9388Timo Sirainen ck_assert_int_eq(prop->flags, SBUS_PROPERTY_READABLE);
1279090ba03f9c176976a69ab7718f0ed77b19afTimo Sirainen signal = sbus_meta_find_signal(&com_planetexpress_Ship_meta, "BecameSentient");
1279090ba03f9c176976a69ab7718f0ed77b19afTimo Sirainen ck_assert_str_eq(signal->name, "BecameSentient");
const char *where)
{ &com_planetexpress_Ship_meta, 0 },
/* constants for com.planetexpress.Pilot */
return tc;
arg_byte++;
arg_int16++;
arg_uint16++;
arg_int32++;
arg_uint32++;
arg_int64++;
arg_uint64++;
arg_double++;
for (i = 0; i < len_byte_array; i++)
arg_byte_array[i]++;
for (i = 0; i < len_int16_array; i++)
arg_int16_array[i]++;
for (i = 0; i < len_uint16_array; i++)
arg_uint16_array[i]++;
for (i = 0; i < len_int32_array; i++)
arg_int32_array[i]++;
for (i = 0; i < len_uint32_array; i++)
arg_uint32_array[i]++;
for (i = 0; i < len_int64_array; i++)
arg_int64_array[i]++;
for (i = 0; i < len_uint64_array; i++)
arg_uint64_array[i]++;
for (i = 0; i < len_double_array; i++)
arg_double_array[i]++;
for (i = 0; i < len_double_array; i++) {
arg_object_path_array = talloc_memdup(req, arg_object_path_array, sizeof(char *) * len_object_path_array);
for (i = 0; i < len_object_path_array; i++) {
{ &test_pilot_meta, 0 },
int ret;
return EOK;
&error,
return tc;
int opt;
int failure_count;
switch (opt) {