home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 200-299 / ff219.lzh / Mv / mvtest.sh < prev    next >
Text File  |  1989-06-04  |  6KB  |  299 lines

  1. #
  2. # Regression test script for mv/cp/rm
  3. #
  4. # Copyright 1989 Edwin Hoogerbeets
  5. #
  6. # This code may be freely redistributed as long as no charges other than
  7. # reasonable copying fees are levied for it.
  8. #
  9. # This script is for the Dillon/Drew shell. To see what the utilities
  10. # are doing, compile with -DDEBUG and then source this script for a
  11. # verbose listing of what's happening.
  12. #
  13.  
  14. # create the test environment
  15. echo mkdir foo
  16. mkdir foo
  17. echo cp * foo
  18. cp * foo
  19.  
  20. #
  21. # test mv on same volume
  22. #
  23.  
  24. # mv directory to a new name
  25. # expected result: foo will be renamed to bar
  26. echo mv foo bar
  27. mv foo bar
  28.  
  29. # mv directory to existing directory
  30. # expected result: bar will be renamed foo/bar
  31. echo mkdir foo
  32. mkdir foo
  33. echo mv bar foo
  34. mv bar foo
  35.  
  36. # mv file to directory
  37. # expected result: rm will be renamed to foo
  38. echo mv rm foo
  39. mv rm foo
  40.  
  41. # mv multiple files to directory
  42. # expected result: foo/rm and cp will be renamed to foobar/rm and foobar/cp
  43. echo mv foo/rm cp foobar
  44. mv foo/rm cp foobar
  45.  
  46. # test "" as current directory
  47. # expected results: everything in the foobar directory will be renamed
  48. # under the current directory
  49. echo foobar/* \"\"
  50. mv foobar/* \"\"
  51.  
  52. # mv multiple directories to directory
  53. # expected result: foo and foobar will be renamed to barfoo/foo
  54. # and barfoo/foobar
  55. echo mkdir barfoo
  56. mkdir barfoo
  57. echo mv foo foobar barfoo
  58. mv foo foobar barfoo
  59.  
  60. # mv file to file
  61. # expected result: rm will be renamed to arm and back to rm
  62. echo mv rm arm
  63. mv rm arm
  64. echo mv arm rm
  65. mv arm rm
  66.  
  67. echo mv barfoo/foo \"\"
  68. mv barfoo/foo \"\"
  69.  
  70. #
  71. # test mv across volumes
  72. #
  73.  
  74. echo mkdir ram:foo
  75. mkdir ram:foo
  76.  
  77. # mv directory to existing directory
  78. # expected result: foo will get recursively moved to ram:foo
  79. echo mv foo ram:
  80. mv foo ram:
  81.  
  82. # mv directory to a non-existant directory
  83. # expected result: ram:foo will get recursively moved to rad:foo
  84. echo mv ram:foo rad:foo
  85. mv ram:foo rad:foo
  86.  
  87. # mv file to existing directory
  88. # expected result: rm will get moved to ram:rm
  89. echo mv rm ram:
  90. mv rm ram:
  91.  
  92. # mv file to non-existant name
  93. # expected result:  ram:rm will be moved to arm and then to rm
  94. echo mv ram:rm arm
  95. mv ram:rm arm
  96. echo mv arm rm
  97. mv arm rm
  98.  
  99. #
  100. # test cp
  101. #
  102.  
  103. # create the test environment
  104. echo mkdir foo
  105. mkdir foo
  106. echo cp * foo
  107. cp * foo
  108. echo cat "<nil: >bar"
  109. cat <nil: >bar
  110.  
  111. # copy a zero length file
  112. echo cp bar booboo
  113. cp bar booboo
  114. echo rm bar booboo
  115. rm bar booboo
  116.  
  117. # copy directory to new directory
  118. # expected result: foo/* will be copied to be asdf/*
  119. echo cp -r foo asdf
  120. cp -r foo asdf
  121.  
  122. # copy multiple directories to a directory
  123. # expected result: foo/* and asdf/* will be copied to fooasdf/foo/*
  124. # and to fooasdf/asdf/* respectively
  125. echo cp -r foo asdf fooasdf
  126. cp -r foo asdf fooasdf
  127.  
  128. # copy directory to existing directory
  129. # expected result: barfoo/* will be copied to asdf/barfoo/*
  130. echo cp -r barfoo asdf
  131. cp -r barfoo asdf
  132.  
  133. # copy files to directory
  134. # expected result: cp rm and mv will be copied to asdf/cp asdf/rm
  135. # and asdf/mv
  136. echo cp rm cp mv asdf
  137. cp rm cp mv asdf
  138.  
  139. # test [lack of] -r option
  140. # expected result: complain about directories not being copied
  141. echo cp * asdf
  142. cp * asdf
  143.  
  144. # cp across volumes (this test shouldn't matter)
  145. # expected result: * will be copied to ram:asdf/*
  146. echo cp * ram:asdf
  147. cp * ram:asdf
  148.  
  149. #
  150. # test rm
  151. #
  152.  
  153. echo cd asdf
  154. cd asdf
  155.  
  156. # test [lack of] -r option
  157. # expected result: only files will be erased
  158. echo rm *
  159. rm *
  160.  
  161. # test -r option
  162. # expected result: directories and all will be erased
  163. echo rm -r *
  164. rm -r *
  165.  
  166. echo cd /
  167. cd /
  168.  
  169. #
  170. # test -i option
  171. #
  172.  
  173. # expected result: directory creation and clobbering files will be okayed
  174. # before proceding
  175. echo mv -i rad:foo ram:foo
  176. mv -i rad:foo ram:foo
  177.  
  178. #
  179. # test delete protection and -f option
  180. #
  181.  
  182. # set up
  183. echo rm -r foo
  184. rm -r foo
  185.  
  186. echo cp rm foo
  187. cp rm foo
  188. echo protect foo rwe
  189. protect foo rwe
  190.  
  191. # test copying to a delete protected file
  192. # expected result: should ask for permission to overwrite foo
  193. echo cp rm foo
  194. cp rm foo
  195.  
  196. echo protect foo rwe
  197. protect foo rwe
  198.  
  199. # test -f option on mv
  200. # expected result: rm will be renamed to foo despite delete protect
  201. echo mv -f rm foo
  202. mv -f rm foo
  203.  
  204. echo protect foo rwe
  205. protect foo rwe
  206.  
  207. # test -f option on rm
  208. # expected result: foo will be deleted no problem
  209. echo rm -f foo
  210. rm -f foo
  211.  
  212. echo cp cp rm
  213. cp cp rm
  214.  
  215. #
  216. # test -  option
  217. #
  218.  
  219. # set up
  220. echo mkdir -d
  221. mkdir -d
  222.  
  223. # expected result: -d will be recursively removed
  224. echo rm -r - -d
  225. rm -r - -d
  226.  
  227. #
  228. # test bad input
  229. #
  230.  
  231. # move non-existant files
  232. # expected result: complain about no access to non-existant files
  233. echo mv FidgeMeJerk Kawanga BoongaBoonga Maximillian
  234. mv FidgeMeJerk Kawanga BoongaBoonga Maximillian
  235.  
  236. # remove non-existant file
  237. # expected result: complain about could not remove non-existant files
  238. echo rm foobarandgrill
  239. rm foobarandgrill
  240.  
  241. # copy or move to the same file
  242. # expected result: mv works but cp should complain about not being
  243. # able to copy a file to itself
  244. echo mv cp Cp
  245. mv cp Cp
  246. echo cp mv mv
  247. cp mv mv
  248.  
  249. # no args
  250. # expected result: usage info displayed
  251. echo cp
  252. cp
  253.  
  254. # no files
  255. # expected result: usage info displayed
  256. echo cp -r
  257. cp -r
  258.  
  259. # bad options
  260. # expected result: complain about bad option and usage
  261. echo cp -q
  262. cp -q
  263.  
  264. # not enough args
  265. # expected result: usage info displayed
  266. echo mv foo
  267. mv foo
  268.  
  269. # move directory onto a file
  270. # expected result: complain and give usage
  271. echo mv asdf rm
  272. mv asdf rm
  273.  
  274. #
  275. # Test wildcarding (needs to compiled with -DARP and linked with -la32)
  276. #
  277.  
  278. # expected result: everything will get copied to the new directory asdf
  279. echo cp "*" asdf
  280. cp "*" asdf
  281.  
  282. # expected result: everything will get copied to the new directory asdf
  283. echo cp "#?" asdf
  284. cp "#?" asdf
  285.  
  286. # expected result: two letter file names will get copied to directory asdf
  287. echo cp "??" asdf
  288. cp "??" asdf
  289.  
  290. #
  291. # cleanup
  292. #
  293.  
  294. echo rm -fr asdf barfoo ram:asdf ram:foo foo fooasdf Maximillian rad:bar
  295. rm -fr asdf barfoo ram:asdf ram:foo foo fooasdf Maximillian rad:bar
  296.  
  297.  
  298.  
  299.