/****************************************************************************** * TEST CASES *****************************************************************************/ TEST( record_udf_1, "echo bin a of {a = 123, b = 456 }" ) { as_rec * rec = map_rec_new(); as_rec_set(rec, "a", (as_val *) as_integer_new(123)); as_list * arglist = (as_list *) as_arraylist_new(1,0); as_list_append_str(arglist, "a"); as_result * res = as_success_new(NULL); int rc = as_module_apply_record(&mod_lua, &as, "records", "getbin", rec, arglist, res); assert_int_eq( rc, 0 ); assert_true( res->is_success ); assert_not_null( res->value ); assert_int_eq( as_integer_toint((as_integer *) res->value), 123 ); as_rec_destroy(rec); as_list_destroy(arglist); as_result_destroy(res); } TEST( record_udf_2, "concat bins a and b of {a = 'abc', b = 'def' }" ) { as_rec * rec = map_rec_new(); as_rec_set(rec, "a", (as_val *) as_string_new("abc",false));
*****************************************************************************/ TEST( list_udf_1, "create a list" ) { as_rec * rec = map_rec_new(); as_arraylist arglist; as_arraylist_inita(&arglist, 4); as_arraylist_append_int64(&arglist, 1); as_arraylist_append_int64(&arglist, 2); as_arraylist_append_int64(&arglist, 3); as_arraylist_append_int64(&arglist, 4); as_result * res = as_success_new(NULL); int rc = as_module_apply_record(&mod_lua, &ctx, "lists", "create", rec, (as_list *) &arglist, res); assert_int_eq( rc, 0 ); assert_true( res->is_success ); assert_not_null( res->value ); as_list * rlist = (as_list *) res->value; assert_int_eq( as_list_size(rlist), 4 ); assert_int_eq( as_list_get_int64(rlist,0), 1 ); assert_int_eq( as_list_get_int64(rlist,1), 2 ); assert_int_eq( as_list_get_int64(rlist,2), 3 ); assert_int_eq( as_list_get_int64(rlist,3), 4 ); as_rec_destroy(rec); as_arraylist_destroy(&arglist); as_result_destroy(res); }
TEST(record_udf_1, "echo bin a of {a = 123, b = 456 }") { as_rec * rec = map_rec_new(); as_rec_set(rec, "a", (as_val *) as_integer_new(123)); // as_module_apply_record() will decrement ref count and attempt to free, // so add extra reserve and free later. as_val_reserve(rec); as_arraylist arglist; as_arraylist_inita(&arglist, 1); as_arraylist_append_str(&arglist, "a"); as_result * res = as_success_new(NULL); int rc = as_module_apply_record(&mod_lua, &ctx, "records", "getbin", rec, (as_list *) &arglist, res); assert_int_eq(rc, 0); assert_true(res->is_success); assert_not_null(res->value); assert_int_eq(as_integer_toint((as_integer *) res->value), 123); as_rec_destroy(rec); as_arraylist_destroy(&arglist); as_result_destroy(res); } TEST(record_udf_2, "concat bins a and b of {a = 'abc', b = 'def' }") { as_rec * rec = map_rec_new(); as_rec_set(rec, "a", (as_val *) as_string_new("abc",false));