diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d9b474..9f0c767 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -204,6 +204,10 @@ if(BUILD_TESTING) target_link_libraries(simultaneous_chaiscript_test ${LIBS}) add_test(NAME Simultaneous_Chaiscript_Test COMMAND simultaneous_chaiscript_test) + add_executable(c_linkage_test unittests/c_linkage_test.cpp) + target_link_libraries(c_linkage_test ${LIBS}) + add_test(NAME C_Linkage_Test COMMAND c_linkage_test) + if (MULTITHREAD_SUPPORT_ENABLED) add_executable(multithreaded_test unittests/multithreaded_test.cpp) target_link_libraries(multithreaded_test ${LIBS}) diff --git a/unittests/c_linkage_test.cpp b/unittests/c_linkage_test.cpp new file mode 100644 index 0000000..833e400 --- /dev/null +++ b/unittests/c_linkage_test.cpp @@ -0,0 +1,20 @@ +#include + + +extern "C" +{ + int dosomething(int i) + { + return i % 2; + } +} + +int main() +{ + + chaiscript::ChaiScript chai; + chai.add(chaiscript::fun(&dosomething), "dosomething"); + + return chai.eval("dosomething(101)") == 101 % 2?EXIT_SUCCESS:EXIT_FAILURE; + +}