diff options
Diffstat (limited to 'tests/ts/rename')
-rwxr-xr-x | tests/ts/rename/basic | 75 | ||||
-rwxr-xr-x | tests/ts/rename/exit_codes | 42 | ||||
-rwxr-xr-x | tests/ts/rename/overwrite | 31 | ||||
-rwxr-xr-x | tests/ts/rename/subdir | 95 | ||||
-rwxr-xr-x | tests/ts/rename/symlink | 57 |
5 files changed, 300 insertions, 0 deletions
diff --git a/tests/ts/rename/basic b/tests/ts/rename/basic new file mode 100755 index 0000000..786b092 --- /dev/null +++ b/tests/ts/rename/basic @@ -0,0 +1,75 @@ +#!/bin/bash + +# +# Copyright (C) 2014 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="basic check" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_RENAME" +ts_cd "$TS_OUTDIR" + +touch rename_basic.{1..3} +$TS_CMD_RENAME -v basic test rename_basic.? >> $TS_OUTPUT 2>> $TS_ERRLOG + +for i in rename_basic.?; do + echo "what is $i doing here?" >> $TS_OUTPUT +done +for i in rename_test.{1..3}; do + if [ ! -f $i ]; then + echo "file $i is missing" >> $TS_OUTPUT + else + rm -f $i + fi +done + + +touch rename_all\ file\ with\ spaces.{1..3} +$TS_CMD_RENAME -v -a ' ' '_' rename_all*.? >> $TS_OUTPUT 2>> $TS_ERRLOG + +for i in rename_all*\ *.?; do + echo "what is $i doing here?" >> $TS_OUTPUT +done +for i in rename_all_file_with_spaces.{1..3}; do + if [ ! -f $i ]; then + echo "file $i is missing" >> $TS_OUTPUT + else + rm -f $i + fi +done + +touch rename_zz_last_{z,z{,z{,z}}}.{x..z} +$TS_CMD_RENAME -v -l zz AAzzBB rename_zz_last_* >> $TS_OUTPUT 2>> $TS_ERRLOG +for i in rename_AAzzBB_last_z.x rename_AAzzBB_last_z.y rename_AAzzBB_last_z.z \ + rename_zz_last_AAzzBB.x rename_zz_last_AAzzBB.y rename_zz_last_AAzzBB.z \ + rename_zz_last_zAAzzBB.x rename_zz_last_zAAzzBB.y rename_zz_last_zAAzzBB.z ; do + if [ ! -f $i ]; then + echo "file $i is missing" >> $TS_OUTPUT + else + rm -f $i + fi +done +for i in rename*last* ; do + echo "what is $i doing here?" >> $TS_OUTPUT +done + +touch rename_all_empty +$TS_CMD_RENAME -v -a '' _ rename_all_empty >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f _r_e_n_a_m_e___a_l_l___e_m_p_t_y_ + +ts_finalize diff --git a/tests/ts/rename/exit_codes b/tests/ts/rename/exit_codes new file mode 100755 index 0000000..2f79d55 --- /dev/null +++ b/tests/ts/rename/exit_codes @@ -0,0 +1,42 @@ +#!/bin/bash + +# +# Copyright (C) 2014 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="exit codes" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_RENAME" + +ts_cd "$TS_OUTDIR" + +touch rename_exit_codes.{1..2} +$TS_CMD_RENAME -v not_a_match impossible rename_exit_codes.? >> $TS_OUTPUT 2>> $TS_ERRLOG +echo "RENAME_EXIT_NOTHING: $?" >> $TS_OUTPUT + +$TS_CMD_RENAME -v codes values rename_exit_codes.? >> $TS_OUTPUT 2>> $TS_ERRLOG +echo "EXIT_SUCCESS: $?" >> $TS_OUTPUT + +mkdir rename_exit_codes.2 +$TS_CMD_RENAME -v values codes rename_exit_values.? >> $TS_OUTPUT 2>> $TS_ERRLOG +echo "RENAME_EXIT_SOMEOK: $?" >> $TS_OUTPUT + +rmdir rename_exit_codes.2 +rm rename_exit_codes.? rename_exit_values.? + +ts_finalize diff --git a/tests/ts/rename/overwrite b/tests/ts/rename/overwrite new file mode 100755 index 0000000..96a524a --- /dev/null +++ b/tests/ts/rename/overwrite @@ -0,0 +1,31 @@ +#!/bin/bash + +# +# Copyright (C) 2017 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="overwrite" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_RENAME" +ts_cd "$TS_OUTDIR" + +touch rename_from rename_to +$TS_CMD_RENAME -v --no-overwrite from to rename_from >> $TS_OUTPUT 2>> $TS_ERRLOG +rm rename_from rename_to >> $TS_OUTPUT 2>> $TS_ERRLOG + +ts_finalize diff --git a/tests/ts/rename/subdir b/tests/ts/rename/subdir new file mode 100755 index 0000000..c3de0ac --- /dev/null +++ b/tests/ts/rename/subdir @@ -0,0 +1,95 @@ +#!/bin/bash + +# +# Copyright (C) 2014 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="subdir check" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_RENAME" +ts_cd "$TS_OUTDIR" + +echo "== files ==" >> $TS_OUTPUT +mkdir rename_a{a,b} +touch rename_a{a,b}/aa +$TS_CMD_RENAME -v a x rename_a?/aa >> $TS_OUTPUT 2>> $TS_ERRLOG +find rename_a{a,b} >> $TS_OUTPUT 2>> $TS_ERRLOG + +echo "== symlinks ==" >> $TS_OUTPUT +for i in rename_a{a,b}/sublink.{1..3}; do + ln -s rename/aa $i +done +$TS_CMD_RENAME -s -v a x rename_a{a,b}/sublink.? >> $TS_OUTPUT 2>> $TS_ERRLOG +for i in rename_a{a,b}/sublink.?; do + readlink $i >> $TS_OUTPUT 2>> $TS_ERRLOG +done + +rm -rf rename_a{a,b} + +echo "== fullpath ==" >> $TS_OUTPUT +touch rename_path1 +$TS_CMD_RENAME -v ./rename_path1 ./rename_path2 ./rename_path1 >> $TS_OUTPUT 2>> $TS_ERRLOG + +find . -name 'rename_path*' >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f ./rename_path* + +mkdir rename_path_a +touch rename_path_test1 + +$TS_CMD_RENAME -v rename_path_test1 rename_path_a/test1 rename_path_test1 >> $TS_OUTPUT 2>> $TS_ERRLOG + +find . -name '*test1*' >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f rename_path_test1 rename_path_a/test1 + +mkdir rename_path_b +touch rename_path_a/test2 +$TS_CMD_RENAME -v rename_path_a/test2 rename_path_b/test2 rename_path_a/test2 >> $TS_OUTPUT 2>> $TS_ERRLOG + +find rename_path_a rename_path_b >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f rename_path_a/test2 rename_path_b/test2 + +rmdir rename_path_a rename_path_b + +ln -s some/nonexistent/path rename_link +$TS_CMD_RENAME -s -v t/p _ rename_link >> $TS_OUTPUT 2>> $TS_ERRLOG +$TS_CMD_RENAME -s -v exist / rename_link >> $TS_OUTPUT 2>> $TS_ERRLOG +$TS_CMD_RENAME -s -v e x rename_link >> $TS_OUTPUT 2>> $TS_ERRLOG +readlink rename_link >> $TS_OUTPUT 2>> $TS_ERRLOG +rm rename_link + +echo "== empty 'from' ==" >> $TS_OUTPUT + +touch rename_test +$TS_CMD_RENAME -v '' _ rename_test >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f *rename_test + +touch rename_test +$TS_CMD_RENAME -v '' _ ./rename_test >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f *rename_test + +touch rename_test +mkdir rename_subdir +$TS_CMD_RENAME -v '' rename_subdir/ rename_test >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -rf rename_subdir + +touch rename_test +mkdir rename_subdir +$TS_CMD_RENAME -v '' rename_subdir/ ./rename_test >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -rf rename_subdir + +ts_finalize diff --git a/tests/ts/rename/symlink b/tests/ts/rename/symlink new file mode 100755 index 0000000..f775ada --- /dev/null +++ b/tests/ts/rename/symlink @@ -0,0 +1,57 @@ +#!/bin/bash + +# +# Copyright (C) 2014 Sami Kerola <kerolasa@iki.fi> +# +# This file is part of util-linux. +# +# This file 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 file 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. +# +TS_TOPDIR="${0%/*}/../.." +TS_DESC="symlink check" + +. "$TS_TOPDIR"/functions.sh +ts_init "$*" + +ts_check_test_command "$TS_CMD_RENAME" +ts_cd "$TS_OUTDIR" + +for i in rename_slink.{1..3}; do + ln -s old $i +done + +$TS_CMD_RENAME -s -v old new rename_slink.? >> $TS_OUTPUT 2>> $TS_ERRLOG + +for i in rename_slink.{1..3}; do + where="$(readlink $i)" + if [ "$where" != "new" ]; then + echo "error: $i points to $where" >> $TS_OUTPUT + fi + rm -f $i +done + +touch target +ln -s target rename_slink.1 +$TS_CMD_RENAME -v slink symlink rename_slink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG +readlink rename_symlink.1 >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f rename_slink.1 rename_symlink.1 + +rm target +ln -s target rename_slink.2 +$TS_CMD_RENAME -v slink symlink rename_slink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG +readlink rename_symlink.2 >> $TS_OUTPUT 2>> $TS_ERRLOG +rm -f rename_slink.2 rename_symlink.2 + +$TS_CMD_RENAME -v slink symlink rename_slink.3 >> $TS_OUTPUT 2>> $TS_ERRLOG +# The error may differ on Mac OS X due to faccessat()/lstat(); normalize it. +sed -i -e 's/\(rename_slink.3\): not accessible/\1/' -e 's/stat of \(rename_slink.3\) failed/\1/' $TS_ERRLOG + +ts_finalize |