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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
db863d82
Commit
db863d82
authored
Nov 29, 2006
by
msvensson@neptunus.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add command "chmod" to mysqltest
parent
7aec4348
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
0 deletions
+90
-0
client/mysqltest.c
client/mysqltest.c
+45
-0
mysql-test/r/mysqltest.result
mysql-test/r/mysqltest.result
+6
-0
mysql-test/t/mysqltest.test
mysql-test/t/mysqltest.test
+39
-0
No files found.
client/mysqltest.c
View file @
db863d82
...
...
@@ -265,6 +265,7 @@ enum enum_commands {
Q_DISABLE_PARSING
,
Q_ENABLE_PARSING
,
Q_REPLACE_REGEX
,
Q_REMOVE_FILE
,
Q_FILE_EXIST
,
Q_WRITE_FILE
,
Q_COPY_FILE
,
Q_PERL
,
Q_DIE
,
Q_CHMOD_FILE
,
Q_UNKNOWN
,
/* Unknown command. */
Q_COMMENT
,
/* Comments, ignored. */
...
...
@@ -345,6 +346,7 @@ const char *command_names[]=
"copy_file"
,
"perl"
,
"die"
,
"chmod"
,
0
};
...
...
@@ -1751,6 +1753,48 @@ void do_copy_file(struct st_command *command)
}
/*
SYNOPSIS
do_chmod_file
command command handle
DESCRIPTION
chmod <octal> <file>
Change file permission of <file>
NOTE! Simplified version, only supports +r, -r, +w, -w
*/
void
do_chmod_file
(
struct
st_command
*
command
)
{
mode_t
mode
=
0
;
DYNAMIC_STRING
ds_mode
;
DYNAMIC_STRING
ds_file
;
const
struct
command_arg
chmod_file_args
[]
=
{
"mode"
,
ARG_STRING
,
TRUE
,
&
ds_mode
,
"Mode of file"
,
"file"
,
ARG_STRING
,
TRUE
,
&
ds_file
,
"Filename of file to modify"
};
DBUG_ENTER
(
"do_chmod_file"
);
check_command_args
(
command
,
command
->
first_argument
,
chmod_file_args
,
sizeof
(
chmod_file_args
)
/
sizeof
(
struct
command_arg
),
' '
);
/* Parse what mode to set */
if
(
ds_mode
.
length
!=
4
)
die
(
"You must write a 4 digit octal number for mode"
);
str2int
(
ds_mode
.
str
,
8
,
0
,
INT_MAX
,
(
long
*
)
&
mode
);
DBUG_PRINT
(
"info"
,
(
"chmod %o %s"
,
mode
,
ds_file
.
str
));
handle_command_error
(
command
,
chmod
(
ds_file
.
str
,
mode
));
dynstr_free
(
&
ds_mode
);
dynstr_free
(
&
ds_file
);
DBUG_VOID_RETURN
;
}
/*
SYNOPSIS
do_file_exists
...
...
@@ -5604,6 +5648,7 @@ int main(int argc, char **argv)
case
Q_FILE_EXIST
:
do_file_exist
(
command
);
break
;
case
Q_WRITE_FILE
:
do_write_file
(
command
);
break
;
case
Q_COPY_FILE
:
do_copy_file
(
command
);
break
;
case
Q_CHMOD_FILE
:
do_chmod_file
(
command
);
break
;
case
Q_PERL
:
do_perl
(
command
);
break
;
case
Q_DELIMITER
:
do_delimiter
(
command
);
...
...
mysql-test/r/mysqltest.result
View file @
db863d82
...
...
@@ -512,6 +512,12 @@ mysqltest: At line 1: End of line junk detected: "write_file filename ";
mysqltest: At line 1: Missing required argument 'filename' to command 'file_exists'
mysqltest: At line 1: Missing required argument 'from_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'to_file' to command 'copy_file'
mysqltest: At line 1: Missing required argument 'mode' to command 'chmod'
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: You must write a 4 digit octal number for mode
mysqltest: At line 1: Missing required argument 'file' to command 'chmod'
mysqltest: At line 1: command "chmod" failed with error -1
mysqltest: At line 1: You must write a 4 digit octal number for mode
hello
hello
hello
...
...
mysql-test/t/mysqltest.test
View file @
db863d82
...
...
@@ -1521,6 +1521,45 @@ remove_file $MYSQLTEST_VARDIR/tmp/file2.tmp;
--
error
1
--
exec
echo
"copy_file from_file;"
|
$MYSQL_TEST
2
>&
1
# ----------------------------------------------------------------------------
# test for chmod
# ----------------------------------------------------------------------------
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
file1
.
tmp
file1
EOF
chmod
0000
$MYSQLTEST_VARDIR
/
tmp
/
file1
.
tmp
;
# The below write fails, but --error is not implemented
# for write_file
#--write_file $MYSQLTEST_VARDIR/tmp/file1.tmp
#test should fail
#EOF
chmod
0777
$MYSQLTEST_VARDIR
/
tmp
/
file1
.
tmp
;
--
write_file
$MYSQLTEST_VARDIR
/
tmp
/
file1
.
tmp
test2
EOF
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
file1
.
tmp
;
--
error
1
--
exec
echo
"chmod ;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"chmod 0 from_file;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"chmod 08 from_file;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"chmod from_file;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"chmod ABZD from_file;"
|
$MYSQL_TEST
2
>&
1
--
error
1
--
exec
echo
"chmod 06789 from_file;"
|
$MYSQL_TEST
2
>&
1
# ----------------------------------------------------------------------------
# test for perl
# ----------------------------------------------------------------------------
...
...
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