56 #include <sys/resource.h>
103 assert_ptr_equal(copy_var.
data.data, NULL);
104 var.
data.ui64 = 0x00000000F0000000;
107 assert_string_equal(copy_var.
data.s,
"4026531840");
109 var.
data.ui64 = 0x00000000F0000000;
111 var.
data.ui64 = 0xFFFFFFFF10000001;
116 assert_int_equal(copy_var.
data.i8, 127);
118 var.
data.ui64 = 0x00000000F0000000;
120 var.
data.ui64 = 0xFFFFFFFF10000001;
125 assert_int_equal(copy_var.
data.i16, 1024);
130 assert_int_equal(copy_var.
data.i64, 32766);
132 var.
data.ui64 = 0x00000000F0000000;
134 var.
data.ui64 = 0xFFFFFFFF10000001;
139 assert_int_equal(copy_var.
data.i32, 32766);
146 assert_int_equal(copy_var.
data.ui8, 255);
153 assert_int_equal(copy_var.
data.ui16, 65535);
160 assert_int_equal(copy_var.
data.ui32, 4294967295);
165 assert_int_equal(copy_var.
data.ui64, 4294967295);
174 var.
data.ui64 = 0x00000000F0000000;
177 assert_true(copy_var.
data.b);
181 assert_false(copy_var.
data.b);
186 assert_true(copy_var.
data.f == 4294967295);
190 assert_true(copy_var.
data.d == 4294967295);
192 struct rlimit nofile = { 0, 0 };
193 assert_int_equal(getrlimit(RLIMIT_NOFILE, &nofile), 0);
197 var.
data.ui64 = nofile.rlim_max + 1;
202 assert_int_equal(copy_var.
data.fd, STDIN_FILENO);
218 var1.
data.ui64 = 4026531840;
224 assert_true(result > 0);
227 assert_true(result < 0);
229 var2.
data.ui64 = 4026531840;
231 assert_true(result == 0);
241 assert_true(var1.
data.ui64 = 1024);
264 assert_ptr_equal(
amxc_var_add(uint64_t, NULL, 123), NULL);
265 assert_ptr_equal(
amxc_var_add(uint64_t, NULL, 456), NULL);
Ambiorix variant API header file.
AMXC_INLINE size_t amxc_htable_size(const amxc_htable_t *const htable)
Calculates the size of the hash table.
size_t amxc_llist_size(const amxc_llist_t *const llist)
Calculates the size of the linked list.
uint64_t amxc_var_get_uint64_t(const amxc_var_t *const var)
Conversion helper function.
int amxc_var_set_uint64_t(amxc_var_t *const var, uint64_t val)
Setter helper function.
#define AMXC_VAR_ID_UINT32
Unsigned 32 bit integer variant id.
#define AMXC_VAR_ID_CUSTOM_BASE
Base variant id for custom variants.
#define AMXC_VAR_ID_INT16
Signed 16 bit integer variant id.
#define AMXC_VAR_ID_NULL
Null variant type id (aka void)
#define AMXC_VAR_ID_CSTRING
C-string variant id (aka char *), null terminated string.
#define AMXC_VAR_ID_UINT8
Unsigned 8 bit integer variant id.
#define AMXC_VAR_ID_UINT64
Unsigned 64 bit integer variant id.
#define AMXC_VAR_ID_DOUBLE
Double variant id.
#define AMXC_VAR_ID_UINT16
Unsigned 16 bit integer variant id.
#define AMXC_VAR_ID_FD
File descriptor variant id.
#define AMXC_VAR_ID_BOOL
Boolean variant id.
#define AMXC_VAR_ID_INT32
Signed 32 bit integer variant id.
#define AMXC_VAR_ID_TIMESTAMP
Ambiorix timestamp variant id.
#define AMXC_VAR_ID_FLOAT
Float variant id.
#define AMXC_VAR_ID_LIST
Ambiorix Linked List variant id.
#define AMXC_VAR_ID_HTABLE
Ambiorix Hash Table variant id.
#define AMXC_VAR_ID_INT8
Signed 8 bit integer variant id.
#define AMXC_VAR_ID_INT64
Signed 64 bit integer variant id.
#define amxc_var_add_key(type, var, key, data)
Convenience macro for adding a variant to composite variant type.
#define amxc_var_add(type, var, data)
Convenience macro for adding a variant to composite variant type.
int amxc_var_set_type(amxc_var_t *const var, const uint32_t type)
Change the variant data type.
#define amxc_var_dyncast(type, var)
Dynamic cast a variant to a certain type.
int amxc_var_init(amxc_var_t *const var)
Initializes a variant.
int amxc_var_copy(amxc_var_t *const dest, const amxc_var_t *const src)
Copy the type and data from one variant (source) in another variant (destination).
void amxc_var_clean(amxc_var_t *const var)
Clean-up and reset variant.
int amxc_var_convert(amxc_var_t *const dest, const amxc_var_t *src, const uint32_t type_id)
Converts one variant (source) to another variant(destination) using the specified variant type id.
int amxc_var_compare(const amxc_var_t *const var1, const amxc_var_t *const var2, int *const result)
Compares two variants.
#define amxc_var_constcast(type, var)
Takes the content from a variant.
The hash table structure.
The linked list structure.
The variant struct definition.
void test_variant_uint64_compare(UNUSED void **state)
void test_variant_uint64_convert_to(UNUSED void **state)
void test_variant_uint64_add(UNUSED void **state)
void test_variant_uint64_copy(UNUSED void **state)
void test_variant_uint64_set_get(UNUSED void **state)