sbus_codegen_tests.c revision b699c4d7f85a5404be1d1ee9450331aea869b886
16f816d3f3c32ae3351834253f52ddd0212bcbf3Timo Sirainen sbus_codegen tests.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen Stef Walter <stefw@redhat.com>
08b30498acefc69e223baf7eda6429be98cc3a10Timo Sirainen Copyright (C) Red Hat, Inc 2014
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen This program is free software; you can redistribute it and/or modify
5363a534097c170ef9cccbdde5ca802f581f5eb7Timo Sirainen it under the terms of the GNU General Public License as published by
5363a534097c170ef9cccbdde5ca802f581f5eb7Timo Sirainen the Free Software Foundation; either version 3 of the License, or
5363a534097c170ef9cccbdde5ca802f581f5eb7Timo Sirainen (at your option) any later version.
5363a534097c170ef9cccbdde5ca802f581f5eb7Timo Sirainen This program is distributed in the hope that it will be useful,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen but WITHOUT ANY WARRANTY; without even the implied warranty of
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen GNU General Public License for more details.
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen You should have received a copy of the GNU General Public License
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen along with this program. If not, see <http://www.gnu.org/licenses/>.
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen#include "tests/sbus_codegen_tests_generated.h"
2d3aac5be07b96f72cf0551fac35ac74a4f07770Timo Sirainenstatic const struct sbus_arg_meta *
f0569d9fbb25c8437760be69f194595a841ad711Timo Sirainen ck_assert_str_eq(com_planetexpress_Ship_meta.name, "com.planetexpress.Ship");
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen ck_assert(com_planetexpress_Ship_meta.methods != NULL);
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen ck_assert(com_planetexpress_Ship_meta.signals != NULL);
12d34ab79772e0748a1daef30fa749dfe3036608Timo Sirainen ck_assert(com_planetexpress_Ship_meta.properties != NULL);
a6a2b38d806f3ab3198160e39240a8200775e525Timo Sirainen /* Explicit C Symbol */
a6a2b38d806f3ab3198160e39240a8200775e525Timo Sirainen ck_assert_str_eq(test_pilot_meta.name, "com.planetexpress.Pilot");
fb2e0bbb7737f3223b16aa41e4b40fb0cd5f288fTimo Sirainen ck_assert(test_pilot_meta.methods == NULL); /* no methods */
12d34ab79772e0748a1daef30fa749dfe3036608Timo Sirainen ck_assert(test_pilot_meta.signals == NULL); /* no signals */
12d34ab79772e0748a1daef30fa749dfe3036608Timo Sirainen ck_assert(test_pilot_meta.properties != NULL);
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen method = sbus_meta_find_method(&com_planetexpress_Ship_meta, "MoveUniverse");
abe8230dd1dd37d7ccf0163100e934bb5e658c20Timo Sirainen ck_assert_str_eq(method->name, "MoveUniverse");
821984ecb6c90696f35c32a8dc4c8a60f9e98f99Timo Sirainen arg = find_arg(method->out_args, "where_we_crashed");
9aa52288a4b53186d81b0ec9afa7d9e0a8ee8753Timo Sirainen ck_assert_str_eq(arg->name, "where_we_crashed");
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen prop = sbus_meta_find_property(&com_planetexpress_Ship_meta, "Color");
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen ck_assert_int_eq(prop->flags, SBUS_PROPERTY_READABLE);
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen signal = sbus_meta_find_signal(&com_planetexpress_Ship_meta, "BecameSentient");
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen ck_assert_str_eq(signal->name, "BecameSentient");
313fe89df4d91cd0cd7f3558dc6d7fd21ad39eeeTimo Sirainen /* Do some testing */
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen /* Add all test cases to the test suite */
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen pc = poptGetContext(argv[0], argc, argv, long_options, 0);
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen fprintf(stderr, "\nInvalid option %s: %s\n\n",
bb10ebcf076c959c752f583746d83805d7686df8Timo Sirainen /* If CK_VERBOSITY is set, use that, otherwise it defaults to CK_NORMAL */