예제 #1
0
/******************************************************************************
 * 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));
예제 #2
0
 *****************************************************************************/

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);
}
예제 #3
0
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));