summaryrefslogtreecommitdiff
path: root/tests/cpp/main.cpp
diff options
context:
space:
mode:
authorEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2015-11-05 10:25:57 +0100
committerEmiel Bruijntjes <emiel.bruijntjes@copernica.com>2015-11-05 10:25:57 +0100
commitaec191bc6cbb83884466800a750ecad0b37e254f (patch)
treef52fe2b9551056580c5c519fb78a3c5600e1034a /tests/cpp/main.cpp
parentaf530282f530580c1ed7bc184df0a727068275e1 (diff)
remove test framework, it never works, most of the bugs found by the test framework turn out to be caused by errors in the tests instead of errors in the real code, people complain about it all the time, and basically this whole test framework causes more problems than it solves, solves issue #215 and solves issue #221
Diffstat (limited to 'tests/cpp/main.cpp')
-rw-r--r--tests/cpp/main.cpp179
1 files changed, 0 insertions, 179 deletions
diff --git a/tests/cpp/main.cpp b/tests/cpp/main.cpp
deleted file mode 100644
index 47cd90d..0000000
--- a/tests/cpp/main.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- *
- * An example file to show the working of using a C++ class in PHP.
- */
-
-#include <string>
-#include <iostream>
-#include <phpcpp.h>
-
-// Test includes
-#include "h/ValueIterator.h"
-#include "h/Classes_and_objects.h"
-#include "h/variables.h"
-#include "h/ini_entries.h"
-
-
-
-
-// Symbols are exported according to the "C" language
-extern "C"
-{
- // export the "get_module" function that will be called by the Zend engine
- PHPCPP_EXPORT void *get_module()
- {
- // create extension
- static Php::Extension extension("extension_for_tests","0.1");
-
- // build an interface
- //Php::Interface interface("MyInterface");
-
- // add methods to the interface
- //interface.method("method1");
- //interface.method("method2");
-
- // add the interface to the extension
- //extension.add(interface);
-
-
-
-
- /**
- * Classes and objects
- *
- */
- // we are going to define a class
- Php::Class<TestBaseClass::MyCustomClass> customClass("TestBaseClass\\MyClass");
-
- // add methods to it
- customClass.method("myMethod", &TestBaseClass::MyCustomClass::myMethod, Php::Final, {});
- customClass.property("property1", "prop1");
- customClass.property("property2", "prop2", Php::Protected);
-
- customClass.property("CONSTANT1", "some string", Php::Const);
- customClass.property("EXP", 2.718281828459, Php::Const);
- customClass.property("CONSTANT2", -2582341, Php::Const);
- customClass.property("CONSTANT3", true, Php::Const);
-
- customClass.property("StatProp1", "some string", Php::Static);
- customClass.property("Exp", 2.718281828459, Php::Static);
- customClass.property("StatProp2", -2582341, Php::Static);
- customClass.property("StatProp3", true, Php::Static);
-
- // add the class to the extension
- extension.add(customClass);
-
- // Comparable
- extension.add( Php::Class<TestBaseClass::Comparable>("TestBaseClass\\Comparable") );
-
-
- // test static functions
- //
- // description of the class so that PHP knows which methods are accessible
- Php::Class<TestBaseClass::testStaticPubClass> ClassWithStatic("TestBaseClass\\ClassWithStatic");
- // register the testStaticPubClass::staticMethod to be a static method callable from PHP
- ClassWithStatic.method("static1", &TestBaseClass::testStaticPubClass::staticMethod);
- // regular functions have the same signatures as static methods. So nothing forbids you to register a normal function as static method too
- ClassWithStatic.method("static2", TestBaseClass::testStaticRegFunc);
- // and even static methods from completely different classes have the same function signature and can thus be registered
- ClassWithStatic.method("static3", &TestBaseClass::testStaticPrivClass::staticMethod);
- // add the class to the extension
- extension.add(std::move(ClassWithStatic));
- // In fact, because a static method has the same signature
- // as a regular function, you can also register static
- // C++ methods as regular global PHP functions
- extension.add("TestBaseClass\\staticFun1", &TestBaseClass::testStaticPrivClass::staticMethod);
-
-
-
-
- /**
- * tests for Iterators
- *
- */
- // add function to extension
- //extension.add("TestValueIterator\\loopValue", TestValueIterator::loopValue/*, {
- extension.add("TestValueIterator\\loopValue", TestValueIterator::loopValue);
- extension.add("TestValueIterator\\loopArray", TestValueIterator::loopArray);
-
-
- /**
- * tests for variables
- *
- */
- // create a nested namespace
- extension.add("TestVariables\\process_globals", TestVariables::process_globals);
- extension.add("TestVariables\\get_complex_array", TestVariables::get_complex_array);
- extension.add("TestVariables\\value_types", TestVariables::value_types);
- extension.add("TestVariables\\scalar_store", TestVariables::scalar_store);
- extension.add("TestVariables\\value_casting", TestVariables::value_casting);
- extension.add("TestVariables\\value_cast2double", TestVariables::value_cast2double);
- extension.add("TestVariables\\value_cast2str", TestVariables::value_cast2str);
- extension.add("TestVariables\\overloaded_op", TestVariables::overloaded_op);
- extension.add("TestVariables\\value_arrays", TestVariables::value_arrays);
- extension.add("TestVariables\\value_object1", TestVariables::value_object1);
- extension.add("TestVariables\\value_object2", TestVariables::value_object2);
- extension.add("TestVariables\\fnFromUserSpace", TestVariables::fnFromUserSpace);
- extension.add("TestVariables\\fnFromUserSpace2", TestVariables::fnFromUserSpace2);
- extension.add("TestVariables\\fnCallback", TestVariables::fnCallback);
- extension.add("TestVariables\\test_HashMember_1", TestVariables::test_HashMember_1);
- extension.add("TestVariables\\test_HashMember_2", TestVariables::test_HashMember_2);
- extension.add("TestVariables\\test_HashMember_3", TestVariables::test_HashMember_3);
- extension.add("TestVariables\\test_HashMember_4", TestVariables::test_HashMember_4);
- extension.add("TestVariables\\getCookie", TestVariables::getCookie);
- extension.add("TestVariables\\get_post", TestVariables::get_post);
- extension.add("TestVariables\\post_raw1", TestVariables::post_raw1);
- extension.add("TestVariables\\post_raw2", TestVariables::post_raw2);
- extension.add("TestVariables\\test_env", TestVariables::test_env);
- extension.add("TestVariables\\test_compare1", TestVariables::test_compare1);
- extension.add("TestVariables\\test_compare2", TestVariables::test_compare2);
-
-
-
-
-
- // A sample class, with methods to cast objects to scalars
- Php::Class<TestVariables::Obj2Scalar> cObj2Scalar("TestVariables\\Obj2Scalar");
- extension.add(std::move(cObj2Scalar));
-
-
- /**
- * tests ini entries
- *
- */
- extension
- .add(Php::Ini("ini1", "valIni1"))
- .add(Php::Ini("ini2", "valIni2", "OrigValIni2"))
- .add(Php::Ini("ini3", "valIni3", "OrigValIni3", Php::Ini::System))
- .add(Php::Ini("ini4", true, false, Php::Ini::Place::User))
- .add(Php::Ini("ini5", false));
-
- Php::Ini ini6("ini6", 55, 11);
- extension
- .add(ini6)
- .add(Php::Ini("ini7", 74,5));
-
- Php::Ini ini8("ini8", 3.1415926, 6.2831852);
- Php::Ini ini9("ini9", 2.7182818, 5.4365636, Php::Ini::User);
- //extension.add(Php::Ini("ini9", 0.333333, 0.777777, Php::Ini::Perdir));
-
- extension.add(ini8);
- extension.add(std::move(ini9));
-
- extension.add("TestIniEntries\\iniTest1", TestIniEntries::iniTest1);
-
- extension.onStartup([](){
- // Retrieve a value at boot extension
- TestIniEntries::ini6val = Php::ini_get("ini6");
- });
-
-
-
-
-
-
-
- // return the extension module
- return extension;
- }
-}