summaryrefslogtreecommitdiff
path: root/cpp/test/Freeze/complex/Client.cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2015-11-13 16:53:57 -0330
committerDwayne Boone <dwayne@zeroc.com>2015-11-13 16:53:57 -0330
commit99c3941638f735825b1bfa9f2df764255351242b (patch)
treefdde43c6580b785e5edc9ae90c26487d9e16be13 /cpp/test/Freeze/complex/Client.cpp
parentadding registerIceBT (diff)
downloadice-99c3941638f735825b1bfa9f2df764255351242b.tar.bz2
ice-99c3941638f735825b1bfa9f2df764255351242b.tar.xz
ice-99c3941638f735825b1bfa9f2df764255351242b.zip
Moved Freeze to its own repository
Diffstat (limited to 'cpp/test/Freeze/complex/Client.cpp')
-rw-r--r--cpp/test/Freeze/complex/Client.cpp185
1 files changed, 0 insertions, 185 deletions
diff --git a/cpp/test/Freeze/complex/Client.cpp b/cpp/test/Freeze/complex/Client.cpp
deleted file mode 100644
index f607bc97a56..00000000000
--- a/cpp/test/Freeze/complex/Client.cpp
+++ /dev/null
@@ -1,185 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-#include <Freeze/Freeze.h>
-#include <ComplexDict.h>
-#include <TestCommon.h>
-#include <NodeI.h>
-#include <Parser.h>
-
-using namespace std;
-using namespace Ice;
-using namespace Freeze;
-
-//
-// Don't use namespace Complex to ensure that the Complex namespace
-// exists correctly.
-//
-// using namespace Complex;
-//
-
-static int
-validate(const Complex::ComplexDict& m)
-{
- cout << "testing database expressions... " << flush;
- Complex::ComplexDict::const_iterator p;
- Parser myParser;
- for(p = m.begin(); p != m.end(); ++p)
- {
- //
- // Verify the stored record is correct.
- //
- // COMPILERFIX: VC.NET reports an unhandled
- // exception if the test is written this way:
- //
- //test(p->first.result == p->second->calc());
- //
- Complex::NodePtr n = p->second;
- test(p->first.result == n->calc());
-
- //
- // Verify that the expression & result again.
- //
- Complex::NodePtr root = myParser.parse(p->first.expression);
- test(root->calc() == p->first.result);
- }
- cout << "ok" << endl;
-
- return EXIT_SUCCESS;
-}
-
-static const char* expressions[] =
-{
- "2",
- "10",
- "2+(5*3)",
- "5*(2+3)",
- "10+(10+(20+(8*(2*(3*2+4+5+6)))))"
-};
-static const size_t nexpressions = sizeof(expressions)/sizeof(expressions[0]);
-
-static int
-populate(Complex::ComplexDict& m)
-{
- cout << "populating the database... " << flush;
- Parser myParser;
- for(size_t i = 0 ; i < nexpressions; ++i)
- {
- Complex::NodePtr root = myParser.parse(expressions[i]);
- assert(root);
- Complex::Key k;
- k.expression = expressions[i];
- k.result = root->calc();
- m.put(pair<const Complex::Key, const Complex::NodePtr>(k, root));
- }
- cout << "ok" << endl;
-
- return EXIT_SUCCESS;
-}
-
-static void
-usage(const char* name)
-{
- cerr << "Usage: " << name << " [options] validate|populate\n";
- cerr <<
- "Options:\n"
- "--dbdir Location of the database directory.\n";
-}
-
-static int
-run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator, Complex::ComplexDict& m)
-{
- //
- // Register a factory for the node types.
- //
- Ice::ObjectFactoryPtr factory = new Complex::ObjectFactoryI;
- communicator->addObjectFactory(factory, "::Complex::NumberNode");
- communicator->addObjectFactory(factory, "::Complex::AddNode");
- communicator->addObjectFactory(factory, "::Complex::MultiplyNode");
-
- if(argc > 1 && strcmp(argv[1], "populate") == 0)
- {
- return populate(m);
- }
- if(argc > 1 && strcmp(argv[1], "validate") == 0)
- {
- return validate(m);
- }
- usage(argv[0]);
-
- return EXIT_FAILURE;
-}
-
-int
-main(int argc, char* argv[])
-{
- int status;
- Ice::CommunicatorPtr communicator;
-
- string envName = "db";
-
- try
- {
- //
- // Scan for --dbdir command line argument.
- //
- int i = 1;
- while(i < argc)
- {
- if(strcmp(argv[i], "--dbdir") == 0)
- {
- if(i +1 >= argc)
- {
- usage(argv[0]);
- return EXIT_FAILURE;
- }
-
- envName = argv[i+1];
- envName += "/";
- envName += "db";
-
- //
- // Consume arguments
- //
- while(i < argc - 2)
- {
- argv[i] = argv[i+2];
- ++i;
- }
- argc -= 2;
- }
- else
- {
- ++i;
- }
- }
-
- communicator = Ice::initialize(argc, argv);
- Freeze::ConnectionPtr connection = createConnection(communicator, envName);
- Complex::ComplexDict m(connection, "test");
- status = run(argc, argv, communicator, m);
- }
- catch(const Ice::Exception& ex)
- {
- cerr << ex << endl;
- status = EXIT_FAILURE;
- }
-
- try
- {
- communicator->destroy();
- }
- catch(const Ice::Exception& ex)
- {
- cerr << ex << endl;
- status = EXIT_FAILURE;
- }
-
- return status;
-}