unit tests
This commit is contained in:
parent
bde3ce4836
commit
2deb0a628c
104
main.cpp
104
main.cpp
@ -30,13 +30,41 @@ using namespace metacall;
|
|||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Local functions
|
// Defines
|
||||||
//
|
//
|
||||||
|
|
||||||
static void serverTest1(const std::string & str, int num) {
|
#define TEST_UNICODE
|
||||||
printf("Server function params are \"%s\" and \"%d\"\n", str.c_str(), num);
|
#define TEST_ANSI
|
||||||
|
//#define TEST_C_STRING
|
||||||
|
#define TEST_BASIC_STRING
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// C string
|
||||||
|
//
|
||||||
|
|
||||||
|
static void testCStrAnsi(const char str[]) {
|
||||||
|
printf("[testCStrAnsi]: '%s'\n", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void testCStrUnicode(const wchar_t str[]) {
|
||||||
|
printf("[testCStrUnicode]: '%S'\n", str);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// std::basic_string
|
||||||
|
//
|
||||||
|
|
||||||
|
static void testBasicStringAnsi(const std::string& str) {
|
||||||
|
printf("[testBasicStringAnsi]: '%s'\n", str.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
static void testBasicStringUnicode(const std::wstring& str) {
|
||||||
|
wprintf(L"[testBasicStringUnicode]: '%S'\n", str.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Program entry
|
// Program entry
|
||||||
@ -57,10 +85,76 @@ int main(int, char *[]) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
server.binding()->bind(FPARAM(serverTest1));
|
server.binding()->bind(FPARAM(testCStrAnsi));
|
||||||
|
server.binding()->bind(FPARAM(testCStrUnicode));
|
||||||
|
|
||||||
|
server.binding()->bind(FPARAM(testBasicStringAnsi));
|
||||||
|
server.binding()->bind(FPARAM(testBasicStringUnicode));
|
||||||
|
|
||||||
do {
|
do {
|
||||||
client.protocol()->invoke("serverTest1", "OneTwoThreeFour", 1234);
|
Protocol* const protocol = client.protocol();
|
||||||
|
|
||||||
|
//
|
||||||
|
// C string
|
||||||
|
//
|
||||||
|
#ifdef TEST_C_STRING
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// ANSI
|
||||||
|
//
|
||||||
|
#ifdef TEST_ANSI
|
||||||
|
{
|
||||||
|
const char* strings[] = { "Hello world", "", NULL };
|
||||||
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
protocol->invoke("testCStrAnsi", strings[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Unicode
|
||||||
|
//
|
||||||
|
#ifdef TEST_UNICODE
|
||||||
|
{
|
||||||
|
const wchar_t* strings[] = { L"Hello world", L"", NULL };
|
||||||
|
for (int i = 0; i < 3; ++i) {
|
||||||
|
protocol->invoke("testCStrUnicode", strings[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// std::basic_string
|
||||||
|
//
|
||||||
|
#ifdef TEST_BASIC_STRING
|
||||||
|
{
|
||||||
|
//
|
||||||
|
// ANSI
|
||||||
|
//
|
||||||
|
#ifdef TEST_ANSI
|
||||||
|
{
|
||||||
|
std::string strings[] = { std::string("Hello world"), std::string() };
|
||||||
|
for (int i = 0; i < 2; ++i) {
|
||||||
|
protocol->invoke("testBasicStringAnsi", strings[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
//
|
||||||
|
// Unicode
|
||||||
|
//
|
||||||
|
#ifdef TEST_UNICODE
|
||||||
|
{
|
||||||
|
std::wstring strings[] = { std::wstring(L"Hello world"), std::wstring() };
|
||||||
|
for (int i = 0; i < 2; ++i) {
|
||||||
|
protocol->invoke("testBasicStringUnicode", strings[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
server.advance();
|
server.advance();
|
||||||
client.advance();
|
client.advance();
|
||||||
}
|
}
|
||||||
|
@ -32,8 +32,7 @@ namespace metacall {
|
|||||||
|
|
||||||
template <typename T, typename C, typename A>
|
template <typename T, typename C, typename A>
|
||||||
bool serialize(Serializer* serializer, const std::basic_string<T, C, A>& value) {
|
bool serialize(Serializer* serializer, const std::basic_string<T, C, A>& value) {
|
||||||
const T * const str = value.empty() ? NULL : value.c_str();
|
return serialize(serializer, value.c_str());
|
||||||
return serialize(serializer, str);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename T, typename C, typename A>
|
template <typename T, typename C, typename A>
|
||||||
|
@ -29,7 +29,7 @@ namespace metacall {
|
|||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// C strings
|
// C string
|
||||||
//
|
//
|
||||||
|
|
||||||
bool serialize(Serializer* serializer, const char value[]);
|
bool serialize(Serializer* serializer, const char value[]);
|
||||||
|
Loading…
Reference in New Issue
Block a user