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
a336f485
Commit
a336f485
authored
Mar 06, 2006
by
msvensson@neptunus.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Win fixes
- Use tmp sh file both in system and popen
parent
dfe158fc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
66 additions
and
35 deletions
+66
-35
client/mysqltest.c
client/mysqltest.c
+34
-9
mysql-test/r/mysqltest.result
mysql-test/r/mysqltest.result
+3
-3
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+29
-23
No files found.
client/mysqltest.c
View file @
a336f485
...
...
@@ -455,6 +455,7 @@ static void do_eval(DYNAMIC_STRING *query_eval, const char *query,
static
void
str_to_file
(
const
char
*
fname
,
char
*
str
,
int
size
);
#ifdef __WIN__
static
void
free_tmp_sh_file
();
static
void
free_win_path_patterns
();
#endif
...
...
@@ -604,6 +605,7 @@ static void free_used_memory()
mysql_server_end
();
free_re
();
#ifdef __WIN__
free_tmp_sh_file
();
free_win_path_patterns
();
#endif
DBUG_VOID_RETURN
;
...
...
@@ -1046,6 +1048,35 @@ int do_source(struct st_query *query)
return
open_file
(
name
);
}
//#ifdef __WIN__
/* Variables used for temuprary sh files used for emulating Unix on Windows */
char
tmp_sh_name
[
64
],
tmp_sh_cmd
[
70
];
static
void
init_tmp_sh_file
()
{
/* Format a name for the tmp sh file that is unique for this process */
my_snprintf
(
tmp_sh_name
,
sizeof
(
tmp_sh_name
),
"tmp_%d.sh"
,
getpid
());
/* Format the command to execute in order to run the script */
my_snprintf
(
tmp_sh_cmd
,
sizeof
(
tmp_sh_cmd
),
"sh %s"
,
tmp_sh_name
);
}
static
void
free_tmp_sh_file
()
{
my_delete
(
tmp_sh_name
,
MYF
(
0
));
}
FILE
*
my_popen
(
DYNAMIC_STRING
*
ds_cmd
,
const
char
*
mode
)
{
#ifdef __WIN__
/* Dump the command into a sh script file and execute with popen */
str_to_file
(
tmp_sh_name
,
ds_cmd
->
str
,
ds_cmd
->
length
);
return
popen
(
tmp_sh_cmd
,
mode
);
#else
return
popen
(
ds_cmd
->
str
,
mode
);
#endif
}
/*
Execute given command.
...
...
@@ -1092,7 +1123,7 @@ static void do_exec(struct st_query *query)
DBUG_PRINT
(
"info"
,
(
"Executing '%s' as '%s'"
,
query
->
first_argument
,
cmd
));
if
(
!
(
res_file
=
popen
(
cmd
,
"r"
))
&&
query
->
abort_on_error
)
if
(
!
(
res_file
=
my_popen
(
&
ds_
cmd
,
"r"
))
&&
query
->
abort_on_error
)
die
(
"popen(
\"
%s
\"
,
\"
r
\"
) failed"
,
query
->
first_argument
);
while
(
fgets
(
buf
,
sizeof
(
buf
),
res_file
))
...
...
@@ -1365,15 +1396,9 @@ int do_modify_var(struct st_query *query, const char *name,
int
my_system
(
DYNAMIC_STRING
*
ds_cmd
)
{
#ifdef __WIN__
/* Dump the command into a sh script file and execute with "sh" */
int
err
;
char
tmp_sh_name
[
64
],
tmp_sh_cmd
[
70
];
my_snprintf
(
tmp_sh_name
,
sizeof
(
tmp_sh_name
),
"tmp_%d.sh"
,
getpid
());
my_snprintf
(
tmp_sh_cmd
,
sizeof
(
tmp_sh_cmd
),
"sh %s"
,
tmp_sh_name
);
/* Dump the command into a sh script file and execute with system */
str_to_file
(
tmp_sh_name
,
ds_cmd
->
str
,
ds_cmd
->
length
);
err
=
system
(
tmp_sh_cmd
);
my_delete
(
tmp_sh_name
,
MYF
(
0
));
return
err
;
return
system
(
tmp_sh_cmd
);
#else
return
system
(
ds_cmd
->
str
);
#endif
...
...
mysql-test/r/mysqltest.result
View file @
a336f485
...
...
@@ -379,9 +379,9 @@ mysqltest: At line 1: Could not open connection 'con2': 1049 Unknown database 'i
mysqltest: At line 1: Illegal argument for port: 'illegal_port'
mysqltest: At line 1: Illegal option to connect: SMTP
OK
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
con
.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
con
.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
con
.sql": At line 2: Connection test_con1 already exists
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
mysqltest
.sql": At line 7: Connection limit exhausted - increase MAX_CONS in mysqltest.c
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
mysqltest
.sql": At line 3: connection 'test_con1' not found in connection pool
mysqltest: In included file "MYSQLTEST_VARDIR/tmp/
mysqltest
.sql": At line 2: Connection test_con1 already exists
connect(localhost,root,,test,MASTER_PORT,MASTER_SOCKET);
Output from mysqltest-x.inc
Output from mysqltest-x.inc
...
...
mysql-test/t/mysqltest.test
View file @
a336f485
...
...
@@ -599,6 +599,8 @@ echo $var3_var3;
--
error
1
--
exec
echo
"source ;"
|
$MYSQL_TEST
2
>&
1
# Fix win paths
--
replace_result
\\
/
--
error
1
--
exec
echo
"source non_existingFile;"
|
$MYSQL_TEST
2
>&
1
...
...
@@ -806,6 +808,8 @@ while (!$i)
}
# Exceed max nesting level
# Fix win path
--
replace_result
\\
/
--
error
1
--
exec
echo
"source include/mysqltest_while.inc;"
|
$MYSQL_TEST
2
>&
1
--
error
1
...
...
@@ -925,41 +929,41 @@ select "a" as col1, "c" as col2;
--
exec
echo
"connect (con1,localhost,root,,,,,SMTP POP);"
|
$MYSQL_TEST
2
>&
1
# Repeat connect/disconnect
--
exec
echo
"let
\$
i=100;"
>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"while (
\$
i)"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"{"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" connect (test_con1,localhost,root,,); "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" dec
\$
i; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"}"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
con
.sql; echo OK;"
|
$MYSQL_TEST
2
>&
1
--
system
echo
"let
\$
i=100;"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"while (
\$
i)"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"{"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" connect (test_con1,localhost,root,,); "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" dec
\$
i; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"}"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
mysqltest
.sql; echo OK;"
|
$MYSQL_TEST
2
>&
1
# Repeat connect/disconnect, exceed max number of connections
--
exec
echo
"let
\$
i=200;"
>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"while (
\$
i)"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"{"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" connect (test_con1,localhost,root,,); "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
" dec
\$
i; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"}"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
system
echo
"let
\$
i=200;"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"while (
\$
i)"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"{"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" connect (test_con1,localhost,root,,); "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
" dec
\$
i; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"}"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
replace_result
$MYSQLTEST_VARDIR
MYSQLTEST_VARDIR
--
error
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
con
.sql;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
mysqltest
.sql;"
|
$MYSQL_TEST
2
>&
1
# Select disconnected connection
--
exec
echo
"connect (test_con1,localhost,root,,);"
>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"connection test_con1;"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
system
echo
"connect (test_con1,localhost,root,,);"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"disconnect test_con1; "
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"connection test_con1;"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
replace_result
$MYSQLTEST_VARDIR
MYSQLTEST_VARDIR
--
error
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
con
.sql;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
mysqltest
.sql;"
|
$MYSQL_TEST
2
>&
1
# Connection name already used
--
exec
echo
"connect (test_con1,localhost,root,,);"
>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
exec
echo
"connect (test_con1,localhost,root,,);"
>>
$MYSQLTEST_VARDIR
/
tmp
/
con
.
sql
--
system
echo
"connect (test_con1,localhost,root,,);"
>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
system
echo
"connect (test_con1,localhost,root,,);"
>>
$MYSQLTEST_VARDIR
/
tmp
/
mysqltest
.
sql
--
replace_result
$MYSQLTEST_VARDIR
MYSQLTEST_VARDIR
--
error
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
con
.sql;"
|
$MYSQL_TEST
2
>&
1
--
exec
echo
"source
$MYSQLTEST_VARDIR
/tmp/
mysqltest
.sql;"
|
$MYSQL_TEST
2
>&
1
# connect when "disable_abort_on_error" caused "connection not found"
--
replace_result
$MASTER_MYSOCK
MASTER_SOCKET
$MASTER_MYPORT
MASTER_PORT
...
...
@@ -977,6 +981,8 @@ connection con1;
--
exec
$MYSQL_TEST
<
$MYSQL_TEST_DIR
/
include
/
mysqltest
-
x
.
inc
--
exec
$MYSQL_TEST
-
x
$MYSQL_TEST_DIR
/
include
/
mysqltest
-
x
.
inc
--
exec
$MYSQL_TEST
--
test_file
=
$MYSQL_TEST_DIR
/
include
/
mysqltest
-
x
.
inc
# Fix Win paths
--
replace_result
\\
/
--
error
1
--
exec
$MYSQL_TEST
-
x
non_existing_file
.
inc
2
>&
1
...
...
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