File Coverage

lib/Clownfish/Test.xs
Criterion Covered Total %
statement 197 403 48.8
branch 67 160 41.8
condition n/a
subroutine n/a
pod n/a
total 264 563 46.8


line stmt bran cond sub pod time code
1            
2            
3            

perltidy

4            
 
5             /* * *********************************************** * * !!!! DO NOT EDIT !!!! * * This file was auto-generated by Build.PL. * * *********************************************** * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #define CFP_TESTCFISH #include "XSBind.h" #include "testcfish_perl.h" #include "Clownfish/Test/TestHashIterator.h" #include "Clownfish/Test/TestLockFreeRegistry.h" #include "Clownfish/Test/TestObj.h" #include "Clownfish/Test/TestBoolean.h" #include "Clownfish/Test/TestErr.h" #include "Clownfish/Test/TestMethod.h" #include "Clownfish/Test/TestString.h" #include "Clownfish/Test/TestNum.h" #include "Clownfish/Test/TestHash.h" #include "Clownfish/Test/TestBlob.h" #include "Clownfish/Test/TestCharBuf.h" #include "Clownfish/Test/TestVector.h" #include "Clownfish/Test/TestByteBuf.h" #include "Clownfish/Test/TestPtrHash.h" #include "Clownfish/Test/TestClass.h" #include "Clownfish/Test/Util/TestAtomic.h" #include "Clownfish/Test/Util/TestMemory.h" #include "Clownfish/Test/TestString.h" #include "Clownfish/Test/TestHost.h" #include "Clownfish/Test.h" #ifndef XS_INTERNAL #define XS_INTERNAL XS #endif XS_INTERNAL(XS_Clownfish_Test_TestHashIterator_run); XS_INTERNAL(XS_Clownfish_Test_TestHashIterator_run) { dXSARGS; SV *sv; testcfish_TestHashIterator* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestHashIterator_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHashIterator*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHASHITERATOR, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHASHITERATOR, TESTCFISH_TestHashIterator_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestLockFreeRegistry_run); XS_INTERNAL(XS_Clownfish_Test_TestLockFreeRegistry_run) { dXSARGS; SV *sv; testcfish_TestLockFreeRegistry* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestLFReg_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestLockFreeRegistry*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTLOCKFREEREGISTRY, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTLOCKFREEREGISTRY, TESTCFISH_TestLFReg_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestObj_run); XS_INTERNAL(XS_Clownfish_Test_TestObj_run) { dXSARGS; SV *sv; testcfish_TestObj* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestObj_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestObj*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTOBJ, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTOBJ, TESTCFISH_TestObj_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestBoolean_run); XS_INTERNAL(XS_Clownfish_Test_TestBoolean_run) { dXSARGS; SV *sv; testcfish_TestBoolean* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestBoolean_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestBoolean*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTBOOLEAN, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTBOOLEAN, TESTCFISH_TestBoolean_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestErr_run); XS_INTERNAL(XS_Clownfish_Test_TestErr_run) { dXSARGS; SV *sv; testcfish_TestErr* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestErr_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestErr*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTERR, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTERR, TESTCFISH_TestErr_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestMethod_run); XS_INTERNAL(XS_Clownfish_Test_TestMethod_run) { dXSARGS; SV *sv; testcfish_TestMethod* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestMethod_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestMethod*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTMETHOD, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTMETHOD, TESTCFISH_TestMethod_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestString_run); XS_INTERNAL(XS_Clownfish_Test_TestString_run) { dXSARGS; SV *sv; testcfish_TestString* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestStr_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestString*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTSTRING, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTSTRING, TESTCFISH_TestStr_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestNum_run); XS_INTERNAL(XS_Clownfish_Test_TestNum_run) { dXSARGS; SV *sv; testcfish_TestNum* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestNum_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestNum*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTNUM, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTNUM, TESTCFISH_TestNum_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestHash_run); XS_INTERNAL(XS_Clownfish_Test_TestHash_run) { dXSARGS; SV *sv; testcfish_TestHash* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestHash_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHash*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHASH, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHASH, TESTCFISH_TestHash_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestBlob_run); XS_INTERNAL(XS_Clownfish_Test_TestBlob_run) { dXSARGS; SV *sv; testcfish_TestBlob* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestBlob_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestBlob*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTBLOB, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTBLOB, TESTCFISH_TestBlob_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestCharBuf_run); XS_INTERNAL(XS_Clownfish_Test_TestCharBuf_run) { dXSARGS; SV *sv; testcfish_TestCharBuf* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestCB_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestCharBuf*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTCHARBUF, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTCHARBUF, TESTCFISH_TestCB_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestVector_run); XS_INTERNAL(XS_Clownfish_Test_TestVector_run) { dXSARGS; SV *sv; testcfish_TestVector* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestVector_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestVector*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTVECTOR, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTVECTOR, TESTCFISH_TestVector_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestByteBuf_run); XS_INTERNAL(XS_Clownfish_Test_TestByteBuf_run) { dXSARGS; SV *sv; testcfish_TestByteBuf* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestBB_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestByteBuf*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTBYTEBUF, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTBYTEBUF, TESTCFISH_TestBB_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestPtrHash_run); XS_INTERNAL(XS_Clownfish_Test_TestPtrHash_run) { dXSARGS; SV *sv; testcfish_TestPtrHash* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestPtrHash_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestPtrHash*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTPTRHASH, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTPTRHASH, TESTCFISH_TestPtrHash_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestClass_run); XS_INTERNAL(XS_Clownfish_Test_TestClass_run) { dXSARGS; SV *sv; testcfish_TestClass* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestClass_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestClass*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTCLASS, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTCLASS, TESTCFISH_TestClass_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_Util_TestAtomic_run); XS_INTERNAL(XS_Clownfish_Test_Util_TestAtomic_run) { dXSARGS; SV *sv; testcfish_TestAtomic* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestAtomic_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestAtomic*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTATOMIC, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTATOMIC, TESTCFISH_TestAtomic_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_Util_TestMemory_run); XS_INTERNAL(XS_Clownfish_Test_Util_TestMemory_run) { dXSARGS; SV *sv; testcfish_TestMemory* arg_self; cfish_TestBatchRunner* arg_runner; TESTCFISH_TestMemory_Run_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, runner"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestMemory*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTMEMORY, NULL); sv = ST(1); arg_runner = (cfish_TestBatchRunner*)XSBind_arg_to_cfish(aTHX_ sv, "runner", CFISH_TESTBATCHRUNNER, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTMEMORY, TESTCFISH_TestMemory_Run); method(arg_self, arg_runner); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_StringCallbackTest_unchanged_by_callback); XS_INTERNAL(XS_Clownfish_Test_StringCallbackTest_unchanged_by_callback) { dXSARGS; SV *sv; testcfish_StringCallbackTest* arg_self; cfish_String* arg_str; TESTCFISH_StrCbTest_Unchanged_By_Callback_t method; bool retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, str"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_StringCallbackTest*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_STRINGCALLBACKTEST, NULL); sv = ST(1); arg_str = (cfish_String*)XSBind_arg_to_cfish(aTHX_ sv, "str", CFISH_STRING, CFISH_ALLOCA_OBJ(CFISH_STRING)); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_STRINGCALLBACKTEST, TESTCFISH_StrCbTest_Unchanged_By_Callback); retval = method(arg_self, arg_str); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_StringCallbackTest_callback); XS_INTERNAL(XS_Clownfish_Test_StringCallbackTest_callback) { dXSARGS; testcfish_StringCallbackTest* arg_self; TESTCFISH_StrCbTest_Callback_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 1) { XSBind_invalid_args_error(aTHX_ cv, "self"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_StringCallbackTest*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_STRINGCALLBACKTEST, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_STRINGCALLBACKTEST, TESTCFISH_StrCbTest_Callback); method(arg_self); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_pos_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_pos_arg) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; cfish_Obj* arg_arg; TESTCFISH_TestHost_Test_Obj_Pos_Arg_t method; cfish_Obj* retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, arg"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); arg_arg = (cfish_Obj*)XSBind_arg_to_cfish(aTHX_ sv, "arg", CFISH_OBJ, CFISH_ALLOCA_OBJ(CFISH_STRING)); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Obj_Pos_Arg); retval = method(arg_self, arg_arg); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_pos_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_pos_arg_def) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; cfish_Obj* arg_arg; TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def_t method; cfish_Obj* retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items < 1 || items > 2) { XSBind_invalid_args_error(aTHX_ cv, "self, [arg]"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); arg_arg = 1 < items ? (cfish_Obj*)XSBind_arg_to_cfish_nullable(aTHX_ sv, "arg", CFISH_OBJ, CFISH_ALLOCA_OBJ(CFISH_STRING)) : NULL; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Obj_Pos_Arg_Def); retval = method(arg_self, arg_arg); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_label_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_label_arg) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 1), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; cfish_Obj* arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Obj_Label_Arg_t method; cfish_Obj* retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); arg_arg = (cfish_Obj*)XSBind_arg_to_cfish(aTHX_ sv, "arg", CFISH_OBJ, CFISH_ALLOCA_OBJ(CFISH_STRING)); sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Obj_Label_Arg); retval = method(arg_self, arg_arg, arg_unused); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_label_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_obj_label_arg_def) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 0), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; cfish_Obj* arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Obj_Label_Arg_Def_t method; cfish_Obj* retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); arg_arg = locations[0] < items ? (cfish_Obj*)XSBind_arg_to_cfish_nullable(aTHX_ sv, "arg", CFISH_OBJ, CFISH_ALLOCA_OBJ(CFISH_STRING)) : NULL; sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Obj_Label_Arg_Def); retval = method(arg_self, arg_arg, arg_unused); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_pos_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_pos_arg) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; int32_t arg_arg; TESTCFISH_TestHost_Test_Int32_Pos_Arg_t method; int32_t retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, arg"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); if (!XSBind_sv_defined(aTHX_ sv)) { XSBind_undef_arg_error(aTHX_ "arg"); } arg_arg = (int32_t)SvIV(sv); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Int32_Pos_Arg); retval = method(arg_self, arg_arg); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_pos_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_pos_arg_def) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; int32_t arg_arg; TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def_t method; int32_t retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items < 1 || items > 2) { XSBind_invalid_args_error(aTHX_ cv, "self, [arg]"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); arg_arg = 1 < items && XSBind_sv_defined(aTHX_ sv) ? (int32_t)SvIV(sv) : 101; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Int32_Pos_Arg_Def); retval = method(arg_self, arg_arg); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_label_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_label_arg) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 1), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; int32_t arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Int32_Label_Arg_t method; int32_t retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); if (!XSBind_sv_defined(aTHX_ sv)) { XSBind_undef_arg_error(aTHX_ "arg"); } arg_arg = (int32_t)SvIV(sv); sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Int32_Label_Arg); retval = method(arg_self, arg_arg, arg_unused); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_label_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_int32_label_arg_def) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 0), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; int32_t arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Int32_Label_Arg_Def_t method; int32_t retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); arg_arg = locations[0] < items && XSBind_sv_defined(aTHX_ sv) ? (int32_t)SvIV(sv) : 101; sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Int32_Label_Arg_Def); retval = method(arg_self, arg_arg, arg_unused); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_pos_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_pos_arg) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; bool arg_arg; TESTCFISH_TestHost_Test_Bool_Pos_Arg_t method; bool retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 2) { XSBind_invalid_args_error(aTHX_ cv, "self, arg"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); if (!XSBind_sv_defined(aTHX_ sv)) { XSBind_undef_arg_error(aTHX_ "arg"); } arg_arg = XSBind_sv_true(aTHX_ sv); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Bool_Pos_Arg); retval = method(arg_self, arg_arg); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_pos_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_pos_arg_def) { dXSARGS; SV *sv; testcfish_TestHost* arg_self; bool arg_arg; TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def_t method; bool retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items < 1 || items > 2) { XSBind_invalid_args_error(aTHX_ cv, "self, [arg]"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(1); arg_arg = 1 < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : true; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Bool_Pos_Arg_Def); retval = method(arg_self, arg_arg); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_label_arg); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_label_arg) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 1), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; bool arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Bool_Label_Arg_t method; bool retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); if (!XSBind_sv_defined(aTHX_ sv)) { XSBind_undef_arg_error(aTHX_ "arg"); } arg_arg = XSBind_sv_true(aTHX_ sv); sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Bool_Label_Arg); retval = method(arg_self, arg_arg, arg_unused); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_label_arg_def); XS_INTERNAL(XS_Clownfish_Test_TestHost_test_bool_label_arg_def) { dXSARGS; static const XSBind_ParamSpec param_specs[2] = { XSBIND_PARAM("arg", 0), XSBIND_PARAM("unused", 0) }; int32_t locations[2]; SV *sv; testcfish_TestHost* arg_self; bool arg_arg; bool arg_unused; TESTCFISH_TestHost_Test_Bool_Label_Arg_Def_t method; bool retval; CFISH_UNUSED_VAR(cv); if (items < 1) { XSBind_invalid_args_error(aTHX_ cv, "self, ..."); } SP -= items; /* Locate args on Perl stack. */ XSBind_locate_args(aTHX_ &ST(0), 1, items, param_specs, locations, 2); arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); sv = ST(locations[0]); arg_arg = locations[0] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : true; sv = ST(locations[1]); arg_unused = locations[1] < items && XSBind_sv_defined(aTHX_ sv) ? XSBind_sv_true(aTHX_ sv) : false; /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Test_Bool_Label_Arg_Def); retval = method(arg_self, arg_arg, arg_unused); ST(0) = newSViv(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_invoke_invalid_callback_from_c); XS_INTERNAL(XS_Clownfish_Test_TestHost_invoke_invalid_callback_from_c) { dXSARGS; testcfish_TestHost* arg_self; TESTCFISH_TestHost_Invoke_Invalid_Callback_From_C_t method; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 1) { XSBind_invalid_args_error(aTHX_ cv, "self"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Invoke_Invalid_Callback_From_C); method(arg_self); XSRETURN(0); } XS_INTERNAL(XS_Clownfish_Test_TestHost_perl_alias); XS_INTERNAL(XS_Clownfish_Test_TestHost_perl_alias) { dXSARGS; testcfish_TestHost* arg_self; TESTCFISH_TestHost_Aliased_t method; cfish_String* retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 1) { XSBind_invalid_args_error(aTHX_ cv, "self"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Aliased); retval = method(arg_self); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); CFISH_DECREF(retval); sv_2mortal( ST(0) ); XSRETURN(1); } XS_INTERNAL(XS_Clownfish_Test_TestHost_invoke_aliased_from_c); XS_INTERNAL(XS_Clownfish_Test_TestHost_invoke_aliased_from_c) { dXSARGS; testcfish_TestHost* arg_self; TESTCFISH_TestHost_Invoke_Aliased_From_C_t method; cfish_String* retval; CFISH_UNUSED_VAR(cv); SP -= items; if (items != 1) { XSBind_invalid_args_error(aTHX_ cv, "self"); } /* Extract vars from Perl stack. */ arg_self = (testcfish_TestHost*)XSBind_perl_to_cfish_noinc(aTHX_ ST(0), TESTCFISH_TESTHOST, NULL); /* Execute */ method = CFISH_METHOD_PTR(TESTCFISH_TESTHOST, TESTCFISH_TestHost_Invoke_Aliased_From_C); retval = method(arg_self); ST(0) = XSBind_cfish_to_perl(aTHX_ (cfish_Obj*)retval); CFISH_DECREF(retval); sv_2mortal( ST(0) ); XSRETURN(1); } MODULE = Clownfish::Test PACKAGE = Clownfish::Test BOOT: { static const cfish_XSBind_ClassSpec class_specs[] = { { "Clownfish::Test::TestHashIterator", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestLockFreeRegistry", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestObj", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestBoolean", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestErr", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestMethod", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestString", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestNum", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestHash", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestBlob", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestCharBuf", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestVector", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestByteBuf", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestPtrHash", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::TestClass", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::Util::TestAtomic", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::Util::TestMemory", "Clownfish::TestHarness::TestBatch", 1 }, { "Clownfish::Test::StringCallbackTest", "Clownfish::Obj", 2 }, { "Clownfish::Test::TestHost", "Clownfish::Obj", 15 } }; static const cfish_XSBind_XSubSpec xsub_specs[] = { { "run", XS_Clownfish_Test_TestHashIterator_run }, { "run", XS_Clownfish_Test_TestLockFreeRegistry_run }, { "run", XS_Clownfish_Test_TestObj_run }, { "run", XS_Clownfish_Test_TestBoolean_run }, { "run", XS_Clownfish_Test_TestErr_run }, { "run", XS_Clownfish_Test_TestMethod_run }, { "run", XS_Clownfish_Test_TestString_run }, { "run", XS_Clownfish_Test_TestNum_run }, { "run", XS_Clownfish_Test_TestHash_run }, { "run", XS_Clownfish_Test_TestBlob_run }, { "run", XS_Clownfish_Test_TestCharBuf_run }, { "run", XS_Clownfish_Test_TestVector_run }, { "run", XS_Clownfish_Test_TestByteBuf_run }, { "run", XS_Clownfish_Test_TestPtrHash_run }, { "run", XS_Clownfish_Test_TestClass_run }, { "run", XS_Clownfish_Test_Util_TestAtomic_run }, { "run", XS_Clownfish_Test_Util_TestMemory_run }, { "unchanged_by_callback", XS_Clownfish_Test_StringCallbackTest_unchanged_by_callback }, { "callback", XS_Clownfish_Test_StringCallbackTest_callback }, { "test_obj_pos_arg", XS_Clownfish_Test_TestHost_test_obj_pos_arg }, { "test_obj_pos_arg_def", XS_Clownfish_Test_TestHost_test_obj_pos_arg_def }, { "test_obj_label_arg", XS_Clownfish_Test_TestHost_test_obj_label_arg }, { "test_obj_label_arg_def", XS_Clownfish_Test_TestHost_test_obj_label_arg_def }, { "test_int32_pos_arg", XS_Clownfish_Test_TestHost_test_int32_pos_arg }, { "test_int32_pos_arg_def", XS_Clownfish_Test_TestHost_test_int32_pos_arg_def }, { "test_int32_label_arg", XS_Clownfish_Test_TestHost_test_int32_label_arg }, { "test_int32_label_arg_def", XS_Clownfish_Test_TestHost_test_int32_label_arg_def }, { "test_bool_pos_arg", XS_Clownfish_Test_TestHost_test_bool_pos_arg }, { "test_bool_pos_arg_def", XS_Clownfish_Test_TestHost_test_bool_pos_arg_def }, { "test_bool_label_arg", XS_Clownfish_Test_TestHost_test_bool_label_arg }, { "test_bool_label_arg_def", XS_Clownfish_Test_TestHost_test_bool_label_arg_def }, { "invoke_invalid_callback_from_c", XS_Clownfish_Test_TestHost_invoke_invalid_callback_from_c }, { "perl_alias", XS_Clownfish_Test_TestHost_perl_alias }, { "invoke_aliased_from_c", XS_Clownfish_Test_TestHost_invoke_aliased_from_c } }; size_t num_classes = sizeof(class_specs) / sizeof(class_specs[0]); const char* file = __FILE__; testcfish_bootstrap_perl(); cfish_XSBind_bootstrap(aTHX_ num_classes, class_specs, xsub_specs, file); } MODULE = Clownfish::Test PACKAGE = Clownfish::Test SV* create_test_suite() CODE: cfish_TestSuite *suite = testcfish_Test_create_test_suite(); RETVAL = CFISH_OBJ_TO_SV_NOINC(suite); OUTPUT: RETVAL void invoke_to_string(obj) cfish_Obj *obj; PPCODE: cfish_String *str = CFISH_Obj_To_String(obj); CFISH_DECREF(str); int refcount(obj) cfish_Obj *obj; CODE: RETVAL = (int)CFISH_REFCOUNT_NN(obj); OUTPUT: RETVAL