Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
5af22b0d
Commit
5af22b0d
authored
Nov 14, 2007
by
jonas@perch.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb -
add new testtool that does connect/disconnect in loop
parent
16698700
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
154 additions
and
1 deletion
+154
-1
storage/ndb/test/tools/Makefile.am
storage/ndb/test/tools/Makefile.am
+2
-1
storage/ndb/test/tools/connect.cpp
storage/ndb/test/tools/connect.cpp
+152
-0
No files found.
storage/ndb/test/tools/Makefile.am
View file @
5af22b0d
...
...
@@ -13,7 +13,7 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
ndbtest_PROGRAMS
=
hugoLoad hugoFill hugoLockRecords hugoPkDelete hugoPkRead hugoPkReadRecord hugoPkUpdate hugoScanRead hugoScanUpdate restart verify_index copy_tab create_index ndb_cpcc listen_event eventlog rep_latency
ndbtest_PROGRAMS
=
hugoLoad hugoFill hugoLockRecords hugoPkDelete hugoPkRead hugoPkReadRecord hugoPkUpdate hugoScanRead hugoScanUpdate restart verify_index copy_tab create_index ndb_cpcc listen_event eventlog rep_latency
ndb_connect
# transproxy
...
...
@@ -35,6 +35,7 @@ ndb_cpcc_SOURCES = cpcc.cpp
listen_event_SOURCES
=
listen.cpp
eventlog_SOURCES
=
log_listner.cpp
rep_latency_SOURCES
=
rep_latency.cpp
ndb_connect_SOURCES
=
connect.cpp
include
$(top_srcdir)/storage/ndb/config/common.mk.am
include
$(top_srcdir)/storage/ndb/config/type_ndbapitest.mk.am
...
...
storage/ndb/test/tools/connect.cpp
0 → 100644
View file @
5af22b0d
/* Copyright (C) 2003 MySQL AB
This program 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 2 of the License, or
(at your option) any later version.
This program 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 this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
#include <ndb_global.h>
#include <ndb_opts.h>
#include <NDBT.hpp>
#include <NdbApi.hpp>
#include <NdbSleep.h>
NDB_STD_OPTS_VARS
;
static
int
_loop
=
25
;
static
int
_sleep
=
25
;
static
int
_drop
=
1
;
typedef
uchar
*
gptr
;
static
struct
my_option
my_long_options
[]
=
{
NDB_STD_OPTS
(
"ndb_desc"
),
{
"loop"
,
'l'
,
"loops"
,
(
gptr
*
)
&
_loop
,
(
gptr
*
)
&
_loop
,
0
,
GET_INT
,
REQUIRED_ARG
,
_loop
,
0
,
0
,
0
,
0
,
0
},
{
"sleep"
,
's'
,
"Sleep (ms) between connection attempt"
,
(
gptr
*
)
&
_sleep
,
(
gptr
*
)
&
_sleep
,
0
,
GET_INT
,
REQUIRED_ARG
,
_sleep
,
0
,
0
,
0
,
0
,
0
},
{
"drop"
,
'd'
,
"Drop event operations before disconnect (0 = no, 1 = yes, else rand"
,
(
gptr
*
)
&
_drop
,
(
gptr
*
)
&
_drop
,
0
,
GET_INT
,
REQUIRED_ARG
,
_drop
,
0
,
0
,
0
,
0
,
0
},
{
0
,
0
,
0
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
}
};
static
void
usage
()
{
char
desc
[]
=
"This program connects to ndbd, and then disconnects
\n
"
;
ndb_std_print_version
();
my_print_help
(
my_long_options
);
my_print_variables
(
my_long_options
);
}
int
main
(
int
argc
,
char
**
argv
){
NDB_INIT
(
argv
[
0
]);
const
char
*
load_default_groups
[]
=
{
"mysql_cluster"
,
0
};
load_defaults
(
"my"
,
load_default_groups
,
&
argc
,
&
argv
);
int
ho_error
;
#ifndef DBUG_OFF
opt_debug
=
"d:t:O,/tmp/ndb_desc.trace"
;
#endif
if
((
ho_error
=
handle_options
(
&
argc
,
&
argv
,
my_long_options
,
ndb_std_get_one_option
)))
return
NDBT_ProgramExit
(
NDBT_WRONGARGS
);
for
(
int
i
=
0
;
i
<
_loop
;
i
++
)
{
Ndb_cluster_connection
con
(
opt_connect_str
);
if
(
con
.
connect
(
12
,
5
,
1
)
!=
0
)
{
ndbout
<<
"Unable to connect to management server."
<<
endl
;
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
if
(
con
.
wait_until_ready
(
30
,
30
)
!=
0
)
{
ndbout
<<
"Cluster nodes not ready in 30 seconds."
<<
endl
;
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
Ndb
MyNdb
(
&
con
,
"TEST_DB"
);
if
(
MyNdb
.
init
()
!=
0
){
ERR
(
MyNdb
.
getNdbError
());
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
Vector
<
NdbEventOperation
*>
ops
;
const
NdbDictionary
::
Dictionary
*
dict
=
MyNdb
.
getDictionary
();
for
(
int
j
=
0
;
j
<
argc
;
j
++
)
{
const
NdbDictionary
::
Table
*
pTab
=
dict
->
getTable
(
argv
[
j
]);
if
(
pTab
==
0
)
{
ndbout_c
(
"Failed to retreive table:
\"
%s
\"
"
,
argv
[
j
]);
}
BaseString
tmp
;
tmp
.
appfmt
(
"EV-%s"
,
argv
[
j
]);
NdbEventOperation
*
pOp
=
MyNdb
.
createEventOperation
(
tmp
.
c_str
());
if
(
pOp
==
NULL
)
{
ndbout
<<
"Event operation creation failed: "
<<
MyNdb
.
getNdbError
()
<<
endl
;
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
for
(
int
a
=
0
;
a
<
pTab
->
getNoOfColumns
();
a
++
)
{
pOp
->
getValue
(
pTab
->
getColumn
(
a
)
->
getName
());
pOp
->
getPreValue
(
pTab
->
getColumn
(
a
)
->
getName
());
}
if
(
pOp
->
execute
())
{
ndbout
<<
"operation execution failed: "
<<
pOp
->
getNdbError
()
<<
endl
;
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
ops
.
push_back
(
pOp
);
}
if
(
_sleep
)
{
NdbSleep_MilliSleep
(
10
+
rand
()
%
_sleep
);
}
for
(
Uint32
i
=
0
;
i
<
ops
.
size
();
i
++
)
{
switch
(
_drop
){
case
0
:
break
;
do_drop:
case
1
:
if
(
MyNdb
.
dropEventOperation
(
ops
[
i
]))
{
ndbout
<<
"drop event operation failed "
<<
MyNdb
.
getNdbError
()
<<
endl
;
return
NDBT_ProgramExit
(
NDBT_FAILED
);
}
break
;
default:
if
((
rand
()
%
100
)
>
50
)
goto
do_drop
;
}
}
}
return
NDBT_ProgramExit
(
NDBT_OK
);
}
template
class
Vector
<
NdbEventOperation
*
>;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment