summaryrefslogtreecommitdiffstats
path: root/systemtest/scripts/test_error-seq
diff options
context:
space:
mode:
Diffstat (limited to 'systemtest/scripts/test_error-seq')
-rw-r--r--systemtest/scripts/test_error-seq/Makefile70
-rw-r--r--systemtest/scripts/test_error-seq/test_error-seq.cc515
2 files changed, 0 insertions, 585 deletions
diff --git a/systemtest/scripts/test_error-seq/Makefile b/systemtest/scripts/test_error-seq/Makefile
deleted file mode 100644
index 09826d6..0000000
--- a/systemtest/scripts/test_error-seq/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-# -*-Makefile-*-
-#
-# This file is part of rasdaman community.
-#
-# Rasdaman community is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Rasdaman community is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-#
-# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-# rasdaman GmbH.
-#
-# For more information please see <http://www.rasdaman.org>
-# or contact Peter Baumann via <baumann@rasdaman.com>. # Top Level makefile. This points to the various modules that have to be build
-# and/or deployed
-#
-# MAKEFILE FOR:
-# test_error-seq
-#
-# COMMENTS:
-#
-##################################################################
-
-######################### Definitions ############################
-
-# use client specific flags
-CXXFLAGS := $(CLIENTCXXFLAGS)
-LDFLAGS := $(CLIENTLDFLAGS)
-
-# add communication flags
-CXXFLAGS += $(COMMCXXFLAGS)
-LDFLAGS += $(COMMLDFLAGS)
-
-LIBS = $(RASODMG) $(CLIENTCOMM) $(RASLIB) \
- $(CONVERSION) $(LIBAKINSIDE) $(LIBAKNET)
-
-IMGLIBS = $(l_SYM)tiff $(l_SYM)jpeg $(l_SYM)png $(l_SYM)crypto $(l_SYM)z \
- $(l_SYM)mfhdf $(l_SYM)df $(l_SYM)ppm $(l_SYM)pgm $(l_SYM)pbm
-
-LDFLAGS += $(L_SYM)$(SUPPORT_BASE)/lib
-
-SRCCXX= test_error-seq.cc
-OBJS = ${SRCCXX:%.cc=%.o}
-
-ifeq ($(OSTYPE),$(OSTYPE_SOLARIS))
- LDFLAGS+= -lsocket
-endif
-
-MISCCLEAN = test_error-seq
-
-########################### Targets ##############################
-# main target
-.PHONY: all
-all: test_error-seq
-
-test_error-seq: test_error-seq.o $(LIBS)
- $(PURIFY) $(CXX) $(LDFLAGS) -o test_error-seq $^ $(LIBS) $(IMGLIBS) -lm
-
-.PHONY: clean
-clean:
- -rm $(OBJS) $(MISCCLEAN)
-
diff --git a/systemtest/scripts/test_error-seq/test_error-seq.cc b/systemtest/scripts/test_error-seq/test_error-seq.cc
deleted file mode 100644
index 79d889f..0000000
--- a/systemtest/scripts/test_error-seq/test_error-seq.cc
+++ /dev/null
@@ -1,515 +0,0 @@
-/*
-* This file is part of rasdaman community.
-*
-* Rasdaman community is free software: you can redistribute it and/or modify
-* it under the terms of the GNU General Public License as published by
-* the Free Software Foundation, either version 3 of the License, or
-* (at your option) any later version.
-*
-* Rasdaman community is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU General Public License for more details.
-*
-* You should have received a copy of the GNU General Public License
-* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
-*
-* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
-rasdaman GmbH.
-*
-* For more information please see <http://www.rasdaman.org>
-* or contact Peter Baumann via <baumann@rasdaman.com>.
-*/
-
-/*************************************************************
- *
- *
- * PURPOSE:
- * test behavior on erroneous API calls on a single server
- * (ie, sequential behavior - parallel behavior is tested in
- * the twin program test_rasgeo-par.cc).
- *
- *
- * PRECONDITIONS:
- * - have a rasdaman server running, with std types inserted
- * - use exactly 1 rasserver
- *
- * COMMENTS:
- *
- * BUGS:
- *
- ************************************************************/
-
-static const char test_error_seq_rcsid[] = "@(#)test_test_error-seq,test_error-seq.cc: $Id: test_error-seq.cc,v 1.1 2003/12/27 19:30:23 rasdev Exp $";
-
-// error indicator - should eventually go into a central systemtest include
-static const char MSG_OK[] = "ok";
-static const char MSG_FAILED[] = "error";
-
-/*
-COMPDATE=`date +"%d.%m.%Y %H:%M:%S"`
-and -DCOMPDATE="\"$(COMPDATE)\"" when compiling
-*/
-#ifndef RMANVERSION
-#error "Please specify RMANVERSION variable!"
-#endif
-
-#ifndef COMPDATE
-#error "Please specify the COMPDATE variable!"
-#endif
-
-
-#ifdef EARLY_TEMPLATE
-#define __EXECUTABLE__
-#include "raslib/template_inst.hh"
-#endif
-
-#ifdef __VISUALC__
-#include <strstrea.h>
-#else
-#include <strstream>
-#endif
-
-#include <stdio.h>
-#include <string.h>
-#include <sstream>
-#include <fstream>
-
-using namespace std;
-
-#ifdef __VISUALC__
- #define __EXECUTABLE__
-#endif
-
-#include "rasodmg/transaction.hh"
-#include "rasodmg/database.hh"
-
-#include "rasodmg/ref.hh"
-#include "raslib/marraytype.hh"
-#include "rasodmg/set.hh"
-#include "rasodmg/marray.hh"
-#include "rasodmg/iterator.hh"
-#include "rasodmg/oqlquery.hh"
-
-#include "raslib/type.hh"
-
-#include "raslib/minterval.hh"
-
-#include "raslib/primitive.hh"
-#include "raslib/complex.hh"
-#include "raslib/structure.hh"
-
-#include "raslib/structuretype.hh"
-#include "raslib/primitivetype.hh"
-
-#include "cmlparser.hh"
-
-#ifdef __VISUALC__
- #undef __EXECUTABLE__
-#endif
-
-// debug facility; relies on -DDEBUG at compile time
-// tell debug that here is the place for the variables (to be done in the main() src file)
-#define DEBUG_MAIN
-#include "debug-clt.hh"
-
-const int MAX_STR_LEN = 255;
-const int MAX_QUERY_LEN = 10240;
-
-
-/// program exit codes
-#define EXIT_SUCCESS 0
-#define EXIT_USAGE 2
-#define EXIT_FAILURE -1
-
-// parameter names, defaults, and help texts
-
-#define PARAM_HELP_FLAG 'h'
-#define PARAM_HELP "help"
-#define HELP_HELP "show command line switches"
-
-#define PARAM_SERV_FLAG 's'
-#define PARAM_SERV "server"
-#define HELP_SERV "<host-name> rasdaman server"
-#define DEFAULT_SERV "localhost"
-
-#define PARAM_PORT_FLAG 'p'
-#define PARAM_PORT "port"
-#define HELP_PORT "<p> rasmgr port number"
-#define DEFAULT_PORT 7001
-#define DEFAULT_PORT_STR "7001"
-
-#define PARAM_DB_FLAG 'd'
-#define PARAM_DB "database"
-#define HELP_DB "<db-name> name of database"
-#define DEFAULT_DB "RASBASE"
-
-#define PARAM_USER "user"
-#define HELP_USER "<user-name> name of user"
-#define DEFAULT_USER "rasguest"
-
-#define PARAM_PASSWD "passwd"
-#define HELP_PASSWD "<user-passwd> password of user"
-#define DEFAULT_PASSWD "rasguest"
-
-#define PARAM_DEBUG "debug"
-#define HELP_DEBUG "generate diagnostic output"
-
-// name to be tested in touch()
-const char* MDD_TYPE_NAME = "RGBImage";
-
-// global variables and default settings
-// -------------------------------------
-
-r_Database db;
-r_Transaction ta;
-
-bool dbIsOpen = false;
-bool taIsOpen = false;
-
-const char *serverName = DEFAULT_SERV;
-r_ULong serverPort = DEFAULT_PORT;
-const char *baseName = DEFAULT_DB;
-
-const char *user = DEFAULT_USER;
-const char *passwd = DEFAULT_PASSWD;
-
-const char *fileName = NULL;
-const char *queryString=NULL;
-
-// query result set.
-// we define it here because on empty results the set seems to be corrupt which kills the default destructor
-r_Set< r_Ref_Any > result_set;
-
-// end of globals
-
-void
-parseParams(int argc, char** argv) throw (r_Error)
-{
- CommandLineParser &cmlInter = CommandLineParser::getInstance();
-
- CommandLineParameter &clp_help = cmlInter.addFlagParameter( PARAM_HELP_FLAG, PARAM_HELP, HELP_HELP );
-
- CommandLineParameter &clp_server = cmlInter.addStringParameter( PARAM_SERV_FLAG, PARAM_SERV, HELP_SERV, DEFAULT_SERV );
- CommandLineParameter &clp_port = cmlInter.addStringParameter( PARAM_PORT_FLAG, PARAM_PORT, HELP_PORT, DEFAULT_PORT_STR);
- CommandLineParameter &clp_database = cmlInter.addStringParameter( PARAM_DB_FLAG, PARAM_DB, HELP_DB, DEFAULT_DB );
- CommandLineParameter &clp_user = cmlInter.addStringParameter(CommandLineParser::noShortName, PARAM_USER, HELP_USER, DEFAULT_USER );
- CommandLineParameter &clp_passwd = cmlInter.addStringParameter(CommandLineParser::noShortName, PARAM_PASSWD, HELP_PASSWD, DEFAULT_PASSWD );
-
-#ifdef DEBUG
- CommandLineParameter &clp_debug = cmlInter.addFlagParameter( CommandLineParser::noShortName, PARAM_DEBUG, HELP_DEBUG );
-#endif
-
- try
- {
- cmlInter.processCommandLine(argc, argv);
-
- if (cmlInter.isPresent( PARAM_HELP_FLAG ))
- {
- cout << "usage: " << argv[0] << " [options]" << endl;
- cout << "options:" << endl;
- cmlInter.printHelp();
- exit( EXIT_USAGE );
- }
-
- // check optional parameters ====================================================
-
- // evaluate optional parameter server --------------------------------------
- if (cmlInter.isPresent( PARAM_SERV ))
- serverName = cmlInter.getValueAsString( PARAM_SERV );
-
- // evaluate optional parameter port --------------------------------------
- if (cmlInter.isPresent( PARAM_PORT ))
- serverPort = cmlInter.getValueAsLong( PARAM_PORT );
-
- // evaluate optional parameter database --------------------------------------
- if (cmlInter.isPresent( PARAM_DB ))
- baseName = cmlInter.getValueAsString( PARAM_DB );
-
- // evaluate optional parameter user --------------------------------------
- if (cmlInter.isPresent( PARAM_USER ))
- user = cmlInter.getValueAsString( PARAM_USER );
-
- // evaluate optional parameter passwd --------------------------------------
- if (cmlInter.isPresent( PARAM_PASSWD ))
- passwd = cmlInter.getValueAsString( PARAM_PASSWD );
-
-#ifdef DEBUG
- // evaluate optional parameter MDD type name --------------------------------------
- SET_OUTPUT( cmlInter.isPresent( PARAM_DEBUG ) );
-#endif
-
- }
- catch(CmlException& err)
- {
- cout << argv[0] << ": " << err.what() << endl;
- throw;
- }
-} // parseParams()
-
-
-void
-openDatabase() throw (r_Error)
-{
- ENTER( "openDatabase -- db is " << (dbIsOpen?"":"not ") << "open." );
-
- db.set_servername(serverName, serverPort);
- db.set_useridentification(user, passwd);
- TALK( "database was closed, opening database=" << baseName << ", server=" << serverName << ", port=" << serverPort << ", user=" << user << ", passwd=" << passwd << "." );
- db.open(baseName);
- dbIsOpen = true;
-
- LEAVE( "openDatabase" );
-} // openDatabase()
-
-void
-closeDatabase() throw (r_Error)
-{
- ENTER( "closeDatabase -- db is " << (dbIsOpen?"":"not ") << "open." );
-
- db.close();
- dbIsOpen = false;
-
- LEAVE( "closeDatabase" );
- return;
-} // closeDatabase()
-
-void
-openTransaction(bool readwrite) throw (r_Error)
-{
- ENTER( "openTransaction, readwrite=" << (readwrite?"rw":"ro") << ", ta is " << (taIsOpen?"":"not ") << "open." );
-
- if (readwrite)
- ta.begin(r_Transaction::read_write);
- else
- ta.begin(r_Transaction::read_only);
- taIsOpen = true;
-
- LEAVE( "openTransaction" );
-} // openTransaction()
-
-void
-closeTransaction() throw (r_Error)
-{
- ENTER( "closeTransaction: aborting ta; ta is " << (taIsOpen?"":"not ") << "open." );
-
- ta.abort();
- taIsOpen = false;
-
- LEAVE( "closeTransaction" );
- return;
-} // closeTransaction()
-
-void
-touch() throw (r_Error)
-{
- ENTER( "touch -- fetching type information for " << MDD_TYPE_NAME << "." );
-
- char* typeStructure = NULL;
-
- // get type structure from database just to touch it
- ClientComm *cc = db.getComm();
- if (cc == NULL)
- cout << "got NULL communication object from db...";
- else
- {
- typeStructure = cc->getTypeStructure( MDD_TYPE_NAME, ClientComm::r_MDDType_Type );
- TALK( "type structure is " << typeStructure );
- }
-
- LEAVE( "touch" );
-}
-
-void
-doStuff() throw (r_Error)
-{
- ENTER( "doStuff" );
-
- cout << "- good cycle..." << flush;
- openDatabase();
- openTransaction( false );
- touch();
- closeTransaction();
- closeDatabase();
- cout << MSG_OK << endl;
-
- cout << "- bad cycle: do not close db, reopen..." << flush;
- openDatabase();
- openTransaction( false );
- touch();
- closeTransaction();
- try
- {
- openDatabase();
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- closeDatabase();
-
- cout << "- bad cycle: do not close ta, reopen..." << flush;
- openDatabase();
- openTransaction( false );
- touch();
- try
- {
- openTransaction( false );
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- closeDatabase();
-
- cout << "- bad cycle: do not open ta, touch..." << flush;
- openDatabase();
- try
- {
- touch();
- closeTransaction();
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- closeDatabase();
-
- cout << "- bad cycle: double open ta, touch..." << flush;
- openDatabase();
- openTransaction( false );
- try
- {
- openTransaction( false );
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- touch();
- closeDatabase();
-
- cout << "- bad cycle: double open db, touch..." << flush;
- openDatabase();
- try
- {
- openDatabase();
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- openTransaction( false );
- touch();
- closeDatabase();
-
- cout << "- bad cycle: double open ta, touch..." << flush;
- openDatabase();
- openTransaction( false );
- try
- {
- openTransaction( false );
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- touch();
- closeTransaction();
- closeDatabase();
-
- cout << "- bad cycle: double abort ta (handled gracefully)..." << flush;
- openDatabase();
- openTransaction( false );
- touch();
- closeTransaction();
- try
- {
- closeTransaction();
- cout << MSG_FAILED << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_OK << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
- closeDatabase();
-
- cout << "- bad cycle: double close db (handled gracefully)..." << flush;
- openDatabase();
- openTransaction( false );
- touch();
- closeTransaction();
- closeDatabase();
- try
- {
- closeDatabase();
- cout << MSG_OK << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_FAILED << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
-
- cout << "- bad cycle: touch without any db/ta open..." << flush;
- try
- {
- touch();
- cout << MSG_OK << endl;
- }
- catch (r_Error& e)
- {
- cout << MSG_FAILED << ": " << e.get_errorno() << ": " << e.what() << endl;
- }
-
- LEAVE( "doStuff" );
-}
-
-/*
- * returns 0 on success, -1 on error
- */
-int main(int argc, char** argv)
-{
- SET_OUTPUT( true );
-
- int retval = EXIT_SUCCESS; // overall result status
-
- try
- {
- parseParams( argc, argv );
-
- cout << argv[0] << " v1.0, rasdaman v" << RMANVERSION/1000 << " -- generated on " << COMPDATE << "." << endl;
-
- doStuff();
- retval = EXIT_SUCCESS;
- cout << argv[0] << " done." << endl;
- }
- catch (const r_Error& e)
- {
- cout << argv[0] << ": error " << e.get_errorno() << ": " << e.what() << endl;
- retval = EXIT_FAILURE;
- }
- catch (...)
- {
- cerr << argv[0] << ": panic: unexpected internal exception." << endl;
- retval = EXIT_FAILURE;
- }
-
- if (retval != EXIT_SUCCESS && (dbIsOpen || taIsOpen) )
- {
- cout << "aborting transaction..." << flush;
- closeTransaction(); // abort transaction and close database, ignore any further exceptions
- cout << "ok" << endl;
- closeDatabase();
- }
-
- return retval;
-} // main()
-
-// end of test_error-seq.cc
-