#include <stdlib.h>
#include <spvm_api.h>
int8_t SPVM__TestCase__Extension__native_api_get_byte_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_byte");
int8_t value = api->get_byte_field(api, test_case, field_id);
return value;
}
int16_t SPVM__TestCase__Extension__native_api_get_short_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_short");
int16_t value = api->get_short_field(api, test_case, field_id);
return value;
}
int32_t SPVM__TestCase__Extension__native_api_get_int_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_int");
int32_t value = api->get_int_field(api, test_case, field_id);
return value;
}
int64_t SPVM__TestCase__Extension__native_api_get_long_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_long");
int64_t value = api->get_long_field(api, test_case, field_id);
return value;
}
float SPVM__TestCase__Extension__native_api_get_float_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_float");
float value = api->get_float_field(api, test_case, field_id);
return value;
}
int32_t SPVM__TestCase__Extension__native_api_get_double_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "x_double");
double value = api->get_double_field(api, test_case, field_id);
return value;
}
SPVM_API_OBJECT* SPVM__TestCase__Extension__native_api_get_object_field(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* test_case = args[0].object_value;
int32_t field_id = api->get_field_id(api, test_case, "minimal");
SPVM_API_OBJECT* value = api->get_object_field(api, test_case, field_id);
return value;
}
int32_t SPVM__TestCase__Extension__sum(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
int32_t total = args[0].int_value + args[1].int_value;
return total;
}
SPVM_API_OBJECT* SPVM__TestCase__Extension__add_int_array(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* obj_nums1 = args[0].object_value;
SPVM_API_OBJECT* obj_nums2 = args[1].object_value;
int32_t length = api->get_array_length(api, obj_nums1);
int32_t* nums1 = api->get_int_array_elements(api, obj_nums1);
int32_t* nums2 = api->get_int_array_elements(api, obj_nums2);
SPVM_API_OBJECT* obj_nums3 = api->new_int_array(api, length);
int32_t* nums3 = api->get_int_array_elements(api, obj_nums3);
{
int32_t i;
for (i = 0; i < length; i++) {
nums3[i] = nums1[i] + nums2[i];
}
}
return obj_nums3;
}
void SPVM__TestCase__Extension__call_void_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return;
}
int8_t SPVM__TestCase__Extension__call_byte_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
int16_t SPVM__TestCase__Extension__call_short_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
int32_t SPVM__TestCase__Extension__call_int_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
int64_t SPVM__TestCase__Extension__call_long_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
float SPVM__TestCase__Extension__call_float_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
double SPVM__TestCase__Extension__call_double_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return 0;
}
SPVM_API_OBJECT* SPVM__TestCase__Extension__call_object_sub_exception_native(SPVM_API* api, const SPVM_API_VALUE* args) {
(void)api;
(void)args;
SPVM_API_OBJECT* exception = api->new_string_chars(api, "Exception");
api->set_exception(api, exception);
return NULL;
}