mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
rpcgen: add test case for XDR serialization
Test the serialization done by libtirpc, so that when we later switch to our own code, we can prove wire compatibility. Reviewed-by: Michal Privoznik <mprivozn@redhat.com> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
8ec79e5e14
commit
40cbaa8fbe
@ -1362,7 +1362,7 @@ exclude_file_name_regexp--sc_avoid_strcase = ^tools/(vsh\.h|nss/libvirt_nss_(lea
|
||||
exclude_file_name_regexp--sc_avoid_write = ^src/libvirt-stream\.c$$
|
||||
|
||||
exclude_file_name_regexp--sc_gettext_init = \
|
||||
^((tests|examples)/|tools/virt-login-shell.c)
|
||||
^((tests|examples)/|tools/virt-login-shell\.c$$|scripts/rpcgen/tests/test_demo\.c$$)
|
||||
|
||||
exclude_file_name_regexp--sc_copyright_usage = \
|
||||
^COPYING(|\.LESSER)$$
|
||||
@ -1391,7 +1391,7 @@ exclude_file_name_regexp--sc_prohibit_close = \
|
||||
(\.p[yl]$$|\.spec\.in$$|^docs/|^(src/util/vir(file|event)\.c|src/libvirt-stream\.c|tests/(vir.+mock\.c|commandhelper\.c|qemusecuritymock\.c)|tools/nss/libvirt_nss_(leases|macs)\.c)|tools/virt-qemu-qmp-proxy$$)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_empty_lines_at_EOF = \
|
||||
(^tests/(nodedevmdevctl|viracpi|virhostcpu|virpcitest|virstoragetest|qemunbdkit)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)
|
||||
((^tests/(nodedevmdevctl|viracpi|virhostcpu|virpcitest|virstoragetest|qemunbdkit)data/|docs/js/.*\.js|docs/fonts/.*\.woff|\.diff|tests/virconfdata/no-newline\.conf$$)|\.bin)
|
||||
|
||||
exclude_file_name_regexp--sc_prohibit_fork_wrappers = \
|
||||
(^(src/(util/(vircommand|virdaemon)|lxc/lxc_controller)|tests/testutils)\.c$$)
|
||||
@ -1436,10 +1436,10 @@ exclude_file_name_regexp--sc_prohibit_xmlURI = ^src/util/viruri\.c$$
|
||||
exclude_file_name_regexp--sc_prohibit_return_as_function = \.py$$
|
||||
|
||||
exclude_file_name_regexp--sc_require_config_h = \
|
||||
^(examples/c/.*/.*\.c|tools/virsh-edit\.c|tests/virmockstathelpers\.c|scripts/rpcgen/tests/demo\.c)$$
|
||||
^(examples/c/.*/.*\.c|tools/virsh-edit\.c|tests/virmockstathelpers\.c|scripts/rpcgen/tests/(test_)?demo\.c)$$
|
||||
|
||||
exclude_file_name_regexp--sc_require_config_h_first = \
|
||||
^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers.c)
|
||||
^(examples/|tools/virsh-edit\.c$$|tests/virmockstathelpers\.c$$|scripts/rpcgen/tests/test_demo\.c$$)
|
||||
|
||||
exclude_file_name_regexp--sc_trailing_blank = \
|
||||
/sysinfodata/.*\.data|/virhostcpudata/.*\.cpuinfo$$
|
||||
@ -1506,6 +1506,9 @@ exclude_file_name_regexp--sc_header-ifdef = \
|
||||
exclude_file_name_regexp--sc_black = \
|
||||
^tools/|src/|tests/|ci/|run\.in|scripts/[^/]*\.py
|
||||
|
||||
exclude_file_name_regexp--sc_spacing-check = \
|
||||
^scripts/rpcgen/tests/test_demo\.[ch]$$
|
||||
|
||||
## -------------- ##
|
||||
## Implementation ##
|
||||
## -------------- ##
|
||||
|
@ -74,7 +74,6 @@ struct TestStructAllTypes {
|
||||
bool sb;
|
||||
float sf;
|
||||
double sd;
|
||||
/* quadruple sq; */
|
||||
|
||||
int *ip;
|
||||
int ifa[TestConstDec];
|
||||
|
@ -3,3 +3,19 @@ rpcgen_tests = files([
|
||||
'test_lexer.py',
|
||||
'test_parser.py',
|
||||
])
|
||||
|
||||
|
||||
test_demo = executable(
|
||||
'test_demo',
|
||||
[ 'test_demo.c' ],
|
||||
c_args: cc_flags_relaxed_frame_limit,
|
||||
dependencies: [
|
||||
xdr_dep, glib_dep
|
||||
],
|
||||
)
|
||||
|
||||
test(
|
||||
'test_demo',
|
||||
test_demo,
|
||||
workdir: meson.current_source_dir(),
|
||||
)
|
||||
|
790
scripts/rpcgen/tests/test_demo.c
Normal file
790
scripts/rpcgen/tests/test_demo.c
Normal file
@ -0,0 +1,790 @@
|
||||
#include <glib.h>
|
||||
#include <rpc/types.h>
|
||||
#include <rpc/xdr.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "demo.h"
|
||||
#include "demo.c"
|
||||
|
||||
static void test_xdr(xdrproc_t proc, void *vorig, void *vnew, const char *testname, bool fail)
|
||||
{
|
||||
XDR xdr;
|
||||
/* 128kb is big enough for any of our test data */
|
||||
size_t buflen = 128 * 1000;
|
||||
g_autofree char *buf = g_new0(char, buflen);
|
||||
g_autofree char *expfile = g_strdup_printf("test_demo_%s.bin", testname);
|
||||
g_autofree char *expected = NULL;
|
||||
size_t explen;
|
||||
size_t actlen;
|
||||
g_autoptr(GError) err = NULL;
|
||||
bool_t ret;
|
||||
|
||||
/* Step 1: serialize the vorig and compare to the data in test .bin files */
|
||||
xdrmem_create(&xdr, buf, buflen, XDR_ENCODE);
|
||||
|
||||
ret = !!proc(&xdr, vorig);
|
||||
g_assert_cmpint(ret, ==, !fail);
|
||||
|
||||
if (fail)
|
||||
goto cleanup;
|
||||
|
||||
actlen = xdr_getpos(&xdr);
|
||||
|
||||
if (getenv("VIR_TEST_REGENERATE_OUTPUT")) {
|
||||
g_file_set_contents(expfile, buf, actlen, NULL);
|
||||
}
|
||||
|
||||
g_file_get_contents(expfile, &expected, &explen, &err);
|
||||
if (err != NULL) {
|
||||
g_printerr("%s\n", err->message);
|
||||
abort();
|
||||
}
|
||||
|
||||
g_assert_cmpint(explen, ==, actlen);
|
||||
|
||||
g_assert_cmpint(memcmp(buf, expected, actlen), ==, 0);
|
||||
|
||||
xdr_destroy(&xdr);
|
||||
|
||||
/* Step 2: de-serialize the state to create a new object */
|
||||
xdrmem_create(&xdr, buf, buflen, XDR_DECODE);
|
||||
|
||||
ret = !!proc(&xdr, vnew);
|
||||
g_assert_cmpint(ret, ==, true);
|
||||
|
||||
actlen = xdr_getpos(&xdr);
|
||||
g_assert_cmpint(explen, ==, actlen);
|
||||
|
||||
xdr_destroy(&xdr);
|
||||
|
||||
/* Step 3: serialize the new object again to prove we
|
||||
* round-tripped the original object */
|
||||
memset(buf, 0, buflen);
|
||||
|
||||
xdrmem_create(&xdr, buf, buflen, XDR_ENCODE);
|
||||
|
||||
ret = !!proc(&xdr, vnew);
|
||||
g_assert_cmpint(ret, ==, true);
|
||||
|
||||
actlen = xdr_getpos(&xdr);
|
||||
|
||||
g_assert_cmpint(explen, ==, actlen);
|
||||
|
||||
g_assert_cmpint(memcmp(buf, expected, actlen), ==, 0);
|
||||
xdr_destroy(&xdr);
|
||||
|
||||
/* Step 4: free mem from the new object only; the orig
|
||||
* was on the stack so leave untouched */
|
||||
xdrmem_create(&xdr, buf, buflen, XDR_FREE);
|
||||
|
||||
ret = !!proc(&xdr, vnew);
|
||||
g_assert_cmpint(ret, ==, true);
|
||||
|
||||
cleanup:
|
||||
xdr_destroy(&xdr);
|
||||
}
|
||||
|
||||
static void test_enum(void)
|
||||
{
|
||||
TestEnum vorig = TEST_ENUM_TWO;
|
||||
TestEnum vnew = 0;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnum, &vorig, &vnew, "enum", false);
|
||||
}
|
||||
|
||||
static void test_struct(void)
|
||||
{
|
||||
TestStruct vorig = {
|
||||
.c1 = 'a', .c2 = 'b',
|
||||
};
|
||||
TestStruct vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStruct, &vorig, &vnew, "struct", false);
|
||||
}
|
||||
|
||||
static void test_union_case(void)
|
||||
{
|
||||
TestUnion vorig = {
|
||||
.type = 20, .TestUnion_u = { .i1 = 1729 },
|
||||
};
|
||||
TestUnion vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnion, &vorig, &vnew, "union_case", false);
|
||||
}
|
||||
|
||||
static void test_union_default(void)
|
||||
{
|
||||
TestUnion vorig = {
|
||||
.type = 87539319, .TestUnion_u = { .i3 = 1729 },
|
||||
};
|
||||
TestUnion vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnion, &vorig, &vnew, "union_default", false);
|
||||
}
|
||||
|
||||
static void test_union_void_default_case(void)
|
||||
{
|
||||
TestUnionVoidDefault vorig = {
|
||||
.type = 21, .TestUnionVoidDefault_u = { .i1 = 1729 },
|
||||
};
|
||||
TestUnionVoidDefault vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionVoidDefault, &vorig, &vnew, "union_void_default_case", false);
|
||||
}
|
||||
|
||||
static void test_union_void_default_default(void)
|
||||
{
|
||||
TestUnionVoidDefault vorig = {
|
||||
.type = 87539319
|
||||
};
|
||||
TestUnionVoidDefault vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionVoidDefault, &vorig, &vnew, "union_void_default_default", false);
|
||||
}
|
||||
|
||||
static void test_union_no_default_case(void)
|
||||
{
|
||||
TestUnionNoDefault vorig = {
|
||||
.type = 22, .TestUnionNoDefault_u = { .i1 = 1729 },
|
||||
};
|
||||
TestUnionNoDefault vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionNoDefault, &vorig, &vnew, "union_no_default_case", false);
|
||||
}
|
||||
|
||||
static void test_union_no_default_default(void)
|
||||
{
|
||||
TestUnionNoDefault vorig = {
|
||||
.type = 87539319,
|
||||
};
|
||||
TestUnionNoDefault vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionNoDefault, &vorig, &vnew, "union_no_default_default", true);
|
||||
}
|
||||
|
||||
static void test_int_scalar(void)
|
||||
{
|
||||
TestIntScalar vorig = 1729;
|
||||
TestIntScalar vnew = 0;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntScalar, &vorig, &vnew, "int_scalar", false);
|
||||
}
|
||||
|
||||
static void test_int_pointer_set(void)
|
||||
{
|
||||
int vorigp = 1729;
|
||||
TestIntPointer vorig = &vorigp;
|
||||
TestIntPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntPointer, &vorig, &vnew, "int_pointer_set", false);
|
||||
}
|
||||
|
||||
static void test_int_pointer_null(void)
|
||||
{
|
||||
TestIntPointer vorig = NULL;
|
||||
TestIntPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntPointer, &vorig, &vnew, "int_pointer_null", false);
|
||||
}
|
||||
|
||||
static void test_int_fixed_array(void)
|
||||
{
|
||||
TestIntFixedArray vorig = { 1729, 0, 87539319 };
|
||||
TestIntFixedArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntFixedArray,
|
||||
vorig, vnew, "int_fixed_array", false);
|
||||
}
|
||||
|
||||
static void test_int_variable_array_set(void)
|
||||
{
|
||||
TestIntVariableArray vorig = {
|
||||
.TestIntVariableArray_len = 3,
|
||||
.TestIntVariableArray_val = (int[]) { 1729, 0, 87539319 }
|
||||
};
|
||||
TestIntVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntVariableArray,
|
||||
&vorig, &vnew, "int_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_int_variable_array_overflow(void)
|
||||
{
|
||||
TestIntVariableArray vorig = {
|
||||
.TestIntVariableArray_len = 6,
|
||||
.TestIntVariableArray_val = (int[]) { 1729, 0, 87539319, 0, 1729 }
|
||||
};
|
||||
TestIntVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntVariableArray,
|
||||
&vorig, &vnew, "int_variable_array_overflow", true);
|
||||
}
|
||||
|
||||
static void test_int_variable_array_empty(void)
|
||||
{
|
||||
TestIntVariableArray vorig = {
|
||||
.TestIntVariableArray_len = 0,
|
||||
.TestIntVariableArray_val = (int[]) {0},
|
||||
};
|
||||
TestIntVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestIntVariableArray,
|
||||
&vorig, &vnew, "int_variable_array_empty", false);
|
||||
}
|
||||
|
||||
static void test_string_variable_array_set(void)
|
||||
{
|
||||
TestStringVariableArray vorig = (TestStringVariableArray) "taxis";
|
||||
TestStringVariableArray vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStringVariableArray,
|
||||
&vorig, &vnew, "string_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_string_variable_array_empty(void)
|
||||
{
|
||||
TestStringVariableArray vorig = (TestStringVariableArray)"";
|
||||
TestStringVariableArray vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStringVariableArray,
|
||||
&vorig, &vnew, "string_variable_array_empty", false);
|
||||
}
|
||||
|
||||
static void test_opaque_fixed_array(void)
|
||||
{
|
||||
TestOpaqueFixedArray vorig = { 0xca, 0xfe, 0x12, 0x23, 0x34, 0x45, 0x56, 0x67, 0x78 };
|
||||
TestOpaqueFixedArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestOpaqueFixedArray, vorig, vnew, "opaque_fixed_array", false);
|
||||
}
|
||||
|
||||
static void test_opaque_variable_array_set(void)
|
||||
{
|
||||
TestOpaqueVariableArray vorig = {
|
||||
.TestOpaqueVariableArray_len = 3,
|
||||
.TestOpaqueVariableArray_val = (char[]) { 0xca, 0xfe, 0x12 },
|
||||
};
|
||||
TestOpaqueVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestOpaqueVariableArray,
|
||||
&vorig, &vnew, "opaque_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_opaque_variable_array_overflow(void)
|
||||
{
|
||||
TestOpaqueVariableArray vorig = {
|
||||
.TestOpaqueVariableArray_len = 12,
|
||||
.TestOpaqueVariableArray_val = (char[]) {
|
||||
0xca, 0xfe, 0x12, 0xca, 0xfe, 0x12,
|
||||
0xca, 0xfe, 0x12, 0xca, 0xfe, 0x12,
|
||||
},
|
||||
};
|
||||
TestOpaqueVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestOpaqueVariableArray,
|
||||
&vorig, &vnew, "opaque_variable_array_overflow", true);
|
||||
}
|
||||
|
||||
static void test_opaque_variable_array_empty(void)
|
||||
{
|
||||
TestOpaqueVariableArray vorig = {
|
||||
.TestOpaqueVariableArray_len = 0,
|
||||
.TestOpaqueVariableArray_val = (char[]) {0},
|
||||
};
|
||||
TestOpaqueVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestOpaqueVariableArray,
|
||||
&vorig, &vnew, "opaque_variable_array_empty", false);
|
||||
}
|
||||
|
||||
static void test_enum_scalar(void)
|
||||
{
|
||||
TestEnumScalar vorig = TEST_ENUM_TWO;
|
||||
TestEnumScalar vnew = 0;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumScalar,
|
||||
&vorig, &vnew, "enum_scalar", false);
|
||||
}
|
||||
|
||||
static void test_enum_pointer_set(void)
|
||||
{
|
||||
TestEnum vorigp = TEST_ENUM_TWO;
|
||||
TestEnumPointer vorig = &vorigp;
|
||||
TestEnumPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumPointer,
|
||||
&vorig, &vnew, "enum_pointer_set", false);
|
||||
}
|
||||
|
||||
static void test_enum_pointer_null(void)
|
||||
{
|
||||
TestEnumPointer vorig = NULL;
|
||||
TestEnumPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumPointer,
|
||||
&vorig, &vnew, "enum_pointer_null", false);
|
||||
}
|
||||
|
||||
static void test_enum_fixed_array(void)
|
||||
{
|
||||
TestEnumFixedArray vorig = {
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE
|
||||
};
|
||||
TestEnumFixedArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumFixedArray, vorig, vnew, "enum_fixed_array", false);
|
||||
}
|
||||
|
||||
static void test_enum_variable_array_set(void)
|
||||
{
|
||||
TestEnumVariableArray vorig = {
|
||||
.TestEnumVariableArray_len = 3,
|
||||
.TestEnumVariableArray_val = (TestEnum[]) {
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE,
|
||||
},
|
||||
};
|
||||
TestEnumVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumVariableArray,
|
||||
&vorig, &vnew, "enum_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_enum_variable_array_overflow(void)
|
||||
{
|
||||
TestEnumVariableArray vorig = {
|
||||
.TestEnumVariableArray_len = 16,
|
||||
.TestEnumVariableArray_val = (TestEnum[]) {
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
}
|
||||
};
|
||||
TestEnumVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumVariableArray,
|
||||
&vorig, &vnew, "enum_variable_array_overflow", true);
|
||||
}
|
||||
|
||||
static void test_enum_variable_array_empty(void)
|
||||
{
|
||||
TestEnumVariableArray vorig = {
|
||||
.TestEnumVariableArray_len = 0,
|
||||
.TestEnumVariableArray_val = (TestEnum[]) {0},
|
||||
};
|
||||
TestEnumVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestEnumVariableArray,
|
||||
&vorig, &vnew, "enum_variable_array_empty", false);
|
||||
}
|
||||
|
||||
#define TEST_STRUCT_INIT (TestStruct) { .c1 = 0xca, .c2 = 0xfe }
|
||||
#define TEST_STRUCT_INIT_ALT (TestStruct) { .c1 = 0x09, .c2 = 0x07 }
|
||||
|
||||
static void test_struct_scalar(void)
|
||||
{
|
||||
TestStructScalar vorig = TEST_STRUCT_INIT;
|
||||
TestStructScalar vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructScalar,
|
||||
&vorig, &vnew, "struct_scalar", false);
|
||||
}
|
||||
|
||||
static void test_struct_pointer_set(void)
|
||||
{
|
||||
TestStruct vorigp = TEST_STRUCT_INIT;
|
||||
TestStructPointer vorig = &vorigp;
|
||||
TestStructPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructPointer,
|
||||
&vorig, &vnew, "struct_pointer_set", false);
|
||||
}
|
||||
|
||||
static void test_struct_pointer_null(void)
|
||||
{
|
||||
TestStructPointer vorig = NULL;
|
||||
TestStructPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructPointer,
|
||||
&vorig, &vnew, "struct_pointer_null", false);
|
||||
}
|
||||
|
||||
static void test_struct_fixed_array(void)
|
||||
{
|
||||
TestStructFixedArray vorig = {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT_ALT
|
||||
};
|
||||
TestStructFixedArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructFixedArray, vorig, vnew, "struct_fixed_array", false);
|
||||
}
|
||||
|
||||
static void test_struct_variable_array_set(void)
|
||||
{
|
||||
TestStructVariableArray vorig = {
|
||||
.TestStructVariableArray_len = 3,
|
||||
.TestStructVariableArray_val = (TestStruct[]) {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT_ALT,
|
||||
},
|
||||
};
|
||||
TestStructVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructVariableArray,
|
||||
&vorig, &vnew, "struct_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_struct_variable_array_overflow(void)
|
||||
{
|
||||
TestStructVariableArray vorig = {
|
||||
.TestStructVariableArray_len = 20,
|
||||
.TestStructVariableArray_val = (TestStruct[]) {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
}
|
||||
};
|
||||
TestStructVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructVariableArray,
|
||||
&vorig, &vnew, "struct_variable_array_overflow", true);
|
||||
}
|
||||
|
||||
static void test_struct_variable_array_empty(void)
|
||||
{
|
||||
TestStructVariableArray vorig = {
|
||||
.TestStructVariableArray_len = 0,
|
||||
.TestStructVariableArray_val = (TestStruct[]) {},
|
||||
};
|
||||
TestStructVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructVariableArray,
|
||||
&vorig, &vnew, "struct_variable_array_empty", false);
|
||||
}
|
||||
|
||||
#define TEST_UNION_INIT (TestUnion) { .type = 20, .TestUnion_u = { .i1 = 1729 } }
|
||||
#define TEST_UNION_INIT_ALT (TestUnion) { .type = 1729, .TestUnion_u = { .i3 = 87539319 } }
|
||||
|
||||
static void test_union_scalar(void)
|
||||
{
|
||||
TestUnionScalar vorig = TEST_UNION_INIT;
|
||||
TestUnionScalar vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionScalar,
|
||||
&vorig, &vnew, "union_scalar", false);
|
||||
}
|
||||
|
||||
static void test_union_pointer_set(void)
|
||||
{
|
||||
TestUnion vorigp = TEST_UNION_INIT;
|
||||
TestUnionPointer vorig = &vorigp;
|
||||
TestUnionPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionPointer,
|
||||
&vorig, &vnew, "union_pointer_set", false);
|
||||
}
|
||||
|
||||
static void test_union_pointer_null(void)
|
||||
{
|
||||
TestUnionPointer vorig = NULL;
|
||||
TestUnionPointer vnew = NULL;
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionPointer,
|
||||
&vorig, &vnew, "union_pointer_null", false);
|
||||
}
|
||||
|
||||
static void test_union_fixed_array(void)
|
||||
{
|
||||
TestUnionFixedArray vorig = {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT
|
||||
};
|
||||
TestUnionFixedArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionFixedArray, vorig, vnew, "union_fixed_array", false);
|
||||
}
|
||||
|
||||
static void test_union_variable_array_set(void)
|
||||
{
|
||||
TestUnionVariableArray vorig = {
|
||||
.TestUnionVariableArray_len = 3,
|
||||
.TestUnionVariableArray_val = (TestUnion[]) {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT,
|
||||
},
|
||||
};
|
||||
TestUnionVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionVariableArray,
|
||||
&vorig, &vnew, "union_variable_array_set", false);
|
||||
}
|
||||
|
||||
static void test_union_variable_array_overflow(void)
|
||||
{
|
||||
TestUnionVariableArray vorig = {
|
||||
.TestUnionVariableArray_len = 24,
|
||||
.TestUnionVariableArray_val = (TestUnion[]) {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
}
|
||||
};
|
||||
TestUnionVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionVariableArray,
|
||||
&vorig, &vnew, "union_variable_array_overflow", true);
|
||||
}
|
||||
|
||||
static void test_union_variable_array_empty(void)
|
||||
{
|
||||
TestUnionVariableArray vorig = {
|
||||
.TestUnionVariableArray_len = 0,
|
||||
.TestUnionVariableArray_val = (TestUnion[]) {},
|
||||
};
|
||||
TestUnionVariableArray vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestUnionVariableArray,
|
||||
&vorig, &vnew, "union_variable_array_empty", false);
|
||||
}
|
||||
|
||||
static void test_struct_all_types(void)
|
||||
{
|
||||
int ip = 1729;
|
||||
TestEnum ep = TEST_ENUM_TWO;
|
||||
TestStruct sp = TEST_STRUCT_INIT;
|
||||
TestUnion up = TEST_UNION_INIT;
|
||||
TestStructAllTypes vorig = {
|
||||
.sc = 'x',
|
||||
.suc = 'y',
|
||||
.ss = -7,
|
||||
.sus = 14,
|
||||
.si = -1729,
|
||||
.sui = 1729,
|
||||
.sh = -87539319,
|
||||
.suh = -87539319,
|
||||
.sb = true,
|
||||
.sf = 0.1729,
|
||||
.sd = 8753.9319,
|
||||
.ip = &ip,
|
||||
.ifa = { 1, 2, 3 },
|
||||
.iva = {
|
||||
.iva_len = 3,
|
||||
.iva_val = (int[]) { 7, 8, 9 },
|
||||
},
|
||||
.stva = (char *)"hello",
|
||||
.ofa = {
|
||||
0x1, 0x2, 0x3, 0xff, 0xff, 0xff, 0xff, 0x1,
|
||||
0x1, 0x2, 0x3, 0xff, 0xff, 0xff, 0xff, 0x1,
|
||||
0x1, 0x2, 0x3, 0xff, 0xff, 0xff, 0xff, 0x1,
|
||||
0x1, 0x2, 0x3, 0xff, 0xff, 0xff, 0xff, 0x1,
|
||||
0xff,
|
||||
},
|
||||
.ova = {
|
||||
.ova_len = 3,
|
||||
.ova_val = (char[]) { 0x1, 0xca, 0xfe },
|
||||
},
|
||||
.e1 = TEST_ENUM_ONE,
|
||||
.e2 = TEST_ENUM_TWO,
|
||||
.ep = &ep,
|
||||
.efa = {
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE,
|
||||
},
|
||||
.eva = {
|
||||
.eva_len = 3,
|
||||
.eva_val = (TestEnum[]) {
|
||||
TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
},
|
||||
},
|
||||
.s = TEST_STRUCT_INIT,
|
||||
.sp = &sp,
|
||||
.sfa = {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT,
|
||||
},
|
||||
.sva = {
|
||||
.sva_len = 3,
|
||||
.sva_val = (TestStruct[]) {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
},
|
||||
},
|
||||
.u = TEST_UNION_INIT,
|
||||
.up = &up,
|
||||
.ufa = {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT,
|
||||
},
|
||||
.uva = {
|
||||
.uva_len = 3,
|
||||
.uva_val = (TestUnion[]) {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT,
|
||||
},
|
||||
},
|
||||
.tis = 1729,
|
||||
.tip = &ip,
|
||||
.tifa = { 1, 2, 3 },
|
||||
.tiva = {
|
||||
.TestIntVariableArray_len = 3,
|
||||
.TestIntVariableArray_val = (int[]) { 7, 8, 9 },
|
||||
},
|
||||
.tstva = (char *)"hello",
|
||||
.tofa = {
|
||||
0x1, 0x2, 0x3, 0xff, 0xff, 0xff, 0xff, 0x1,
|
||||
0xff,
|
||||
},
|
||||
.tova = {
|
||||
.TestOpaqueVariableArray_len = 3,
|
||||
.TestOpaqueVariableArray_val = (char[]) { 0x1, 0xca, 0xfe },
|
||||
},
|
||||
.tes = TEST_ENUM_ONE,
|
||||
.tep = &ep,
|
||||
.tefa = {
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE, TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
TEST_ENUM_ONE,
|
||||
},
|
||||
.teva = {
|
||||
.TestEnumVariableArray_len = 3,
|
||||
.TestEnumVariableArray_val = (TestEnum[]) {
|
||||
TEST_ENUM_TWO, TEST_ENUM_ONE, TEST_ENUM_TWO,
|
||||
},
|
||||
},
|
||||
.tss = TEST_STRUCT_INIT,
|
||||
.tsp = &sp,
|
||||
.tsfa = {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT, TEST_STRUCT_INIT,
|
||||
TEST_STRUCT_INIT,
|
||||
},
|
||||
.tsva = {
|
||||
.TestStructVariableArray_len = 3,
|
||||
.TestStructVariableArray_val = (TestStruct[]) {
|
||||
TEST_STRUCT_INIT, TEST_STRUCT_INIT_ALT, TEST_STRUCT_INIT,
|
||||
},
|
||||
},
|
||||
.tu = TEST_UNION_INIT,
|
||||
.tup = &up,
|
||||
.tufa = {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT,
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT, TEST_UNION_INIT_ALT,
|
||||
TEST_UNION_INIT_ALT,
|
||||
},
|
||||
.tuva = {
|
||||
.TestUnionVariableArray_len = 3,
|
||||
.TestUnionVariableArray_val = (TestUnion[]) {
|
||||
TEST_UNION_INIT, TEST_UNION_INIT_ALT, TEST_UNION_INIT_ALT,
|
||||
},
|
||||
},
|
||||
};
|
||||
TestStructAllTypes vnew = {0};
|
||||
|
||||
test_xdr((xdrproc_t)xdr_TestStructAllTypes,
|
||||
&vorig, &vnew, "test_struct_all_types", false);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
g_test_init(&argc, &argv, NULL);
|
||||
|
||||
g_test_set_nonfatal_assertions();
|
||||
|
||||
g_test_add_func("/xdr/enum", test_enum);
|
||||
|
||||
g_test_add_func("/xdr/struct", test_struct);
|
||||
|
||||
g_test_add_func("/xdr/union/case", test_union_case);
|
||||
g_test_add_func("/xdr/union/default", test_union_default);
|
||||
g_test_add_func("/xdr/union-void-default/case", test_union_void_default_case);
|
||||
g_test_add_func("/xdr/union-void-default/default", test_union_void_default_default);
|
||||
g_test_add_func("/xdr/union-no-default/case", test_union_no_default_case);
|
||||
g_test_add_func("/xdr/union-no-default/default", test_union_no_default_default);
|
||||
|
||||
g_test_add_func("/xdr/int-scalar", test_int_scalar);
|
||||
g_test_add_func("/xdr/int-pointer/set", test_int_pointer_set);
|
||||
g_test_add_func("/xdr/int-pointer/null", test_int_pointer_null);
|
||||
g_test_add_func("/xdr/int-fixed-array", test_int_fixed_array);
|
||||
g_test_add_func("/xdr/int-variable-array/set", test_int_variable_array_set);
|
||||
g_test_add_func("/xdr/int-variable-array/overflow", test_int_variable_array_overflow);
|
||||
g_test_add_func("/xdr/int-variable-array/empty", test_int_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/string-variable-array/set", test_string_variable_array_set);
|
||||
g_test_add_func("/xdr/string-variable-array/empty", test_string_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/opaque-fixed-array", test_opaque_fixed_array);
|
||||
g_test_add_func("/xdr/opaque-variable-array/set", test_opaque_variable_array_set);
|
||||
g_test_add_func("/xdr/opaque-variable-array/overflow", test_opaque_variable_array_overflow);
|
||||
g_test_add_func("/xdr/opaque-variable-array/empty", test_opaque_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/enum-scalar", test_enum_scalar);
|
||||
g_test_add_func("/xdr/enum-pointer/set", test_enum_pointer_set);
|
||||
g_test_add_func("/xdr/enum-pointer/null", test_enum_pointer_null);
|
||||
g_test_add_func("/xdr/enum-fixed-array", test_enum_fixed_array);
|
||||
g_test_add_func("/xdr/enum-variable-array/set", test_enum_variable_array_set);
|
||||
g_test_add_func("/xdr/enum-variable-array/overflow", test_enum_variable_array_overflow);
|
||||
g_test_add_func("/xdr/enum-variable-array/empty", test_enum_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/struct-scalar", test_struct_scalar);
|
||||
g_test_add_func("/xdr/struct-pointer/set", test_struct_pointer_set);
|
||||
g_test_add_func("/xdr/struct-pointer/null", test_struct_pointer_null);
|
||||
g_test_add_func("/xdr/struct-fixed-array", test_struct_fixed_array);
|
||||
g_test_add_func("/xdr/struct-variable-array/set", test_struct_variable_array_set);
|
||||
g_test_add_func("/xdr/struct-variable-array/overflow", test_struct_variable_array_overflow);
|
||||
g_test_add_func("/xdr/struct-variable-array/empty", test_struct_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/union-scalar", test_union_scalar);
|
||||
g_test_add_func("/xdr/union-pointer/set", test_union_pointer_set);
|
||||
g_test_add_func("/xdr/union-pointer/null", test_union_pointer_null);
|
||||
g_test_add_func("/xdr/union-fixed-array", test_union_fixed_array);
|
||||
g_test_add_func("/xdr/union-variable-array/set", test_union_variable_array_set);
|
||||
g_test_add_func("/xdr/union-variable-array/overflow", test_union_variable_array_overflow);
|
||||
g_test_add_func("/xdr/union-variable-array/empty", test_union_variable_array_empty);
|
||||
|
||||
g_test_add_func("/xdr/struct-all-types", test_struct_all_types);
|
||||
|
||||
return g_test_run();
|
||||
}
|
BIN
scripts/rpcgen/tests/test_demo_enum.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_fixed_array.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_fixed_array.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_pointer_null.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_pointer_null.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_pointer_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_pointer_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_scalar.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_scalar.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_enum_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_enum_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_fixed_array.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_fixed_array.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_pointer_null.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_pointer_null.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_pointer_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_pointer_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_scalar.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_scalar.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_int_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_int_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_opaque_fixed_array.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_opaque_fixed_array.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_opaque_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_opaque_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_opaque_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_opaque_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_string_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_string_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_string_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_string_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_struct.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_struct_fixed_array.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct_fixed_array.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_struct_pointer_null.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct_pointer_null.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_struct_pointer_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct_pointer_set.bin
Normal file
Binary file not shown.
1
scripts/rpcgen/tests/test_demo_struct_scalar.bin
Normal file
1
scripts/rpcgen/tests/test_demo_struct_scalar.bin
Normal file
@ -0,0 +1 @@
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
BIN
scripts/rpcgen/tests/test_demo_struct_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_struct_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_struct_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_test_struct_all_types.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_test_struct_all_types.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_case.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_case.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_default.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_default.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_fixed_array.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_fixed_array.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_no_default_case.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_no_default_case.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_pointer_null.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_pointer_null.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_pointer_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_pointer_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_scalar.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_scalar.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_variable_array_empty.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_variable_array_empty.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_variable_array_set.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_variable_array_set.bin
Normal file
Binary file not shown.
BIN
scripts/rpcgen/tests/test_demo_union_void_default_case.bin
Normal file
BIN
scripts/rpcgen/tests/test_demo_union_void_default_case.bin
Normal file
Binary file not shown.
@ -0,0 +1 @@
|
||||
7セw
|
Loading…
Reference in New Issue
Block a user