unzip01.sh 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0-or-later
  3. # Copyright (c) International Business Machines Corp., 2001
  4. # Copyright (c) Cyril Hrubis <chrubis@suse.cz>
  5. # Author: Manoj Iyer <manjo@mail.utexas.edu>
  6. #
  7. # Tests basic functionality of unzip command.
  8. TST_SETUP=setup
  9. TST_TESTFUNC=do_test
  10. TST_NEEDS_TMPDIR=1
  11. TST_NEEDS_CMDS="unzip"
  12. . tst_test.sh
  13. setup()
  14. {
  15. cat > unzip_exp.out <<EOF
  16. Archive: $TST_DATAROOT/test.zip
  17. creating: dir/
  18. creating: dir/d1/
  19. creating: dir/d2/
  20. creating: dir/d3/
  21. creating: dir/d4/
  22. extracting: dir/d1/f1
  23. extracting: dir/d1/f2
  24. extracting: dir/d1/f3
  25. creating: dir/d2/d1/
  26. creating: dir/d2/d2/
  27. creating: dir/d2/d3/
  28. extracting: dir/d2/f1
  29. extracting: dir/d2/f2
  30. extracting: dir/d2/f3
  31. creating: dir/d3/d1/
  32. creating: dir/d3/d2/
  33. creating: dir/d3/d3/
  34. EOF
  35. }
  36. stable_ls()
  37. {
  38. local i
  39. for i in $(echo "$1/*" | sort); do
  40. if ! [ -e "$i" ]; then
  41. return
  42. fi
  43. echo "$i"
  44. if [ -d "$i" ]; then
  45. stable_ls "$i"
  46. fi
  47. done
  48. }
  49. do_test()
  50. {
  51. EXPECT_PASS unzip "$TST_DATAROOT/test.zip" \> unzip.out
  52. if diff -w unzip_exp.out unzip.out; then
  53. tst_res TPASS "Unzip output is correct"
  54. else
  55. tst_res TFAIL "Unzip output is incorrect"
  56. cat unzip.out
  57. fi
  58. stable_ls "dir" > dir.out
  59. if diff "$TST_DATAROOT/dir.out" dir.out; then
  60. tst_res TPASS "Files unzipped correctly"
  61. else
  62. tst_res TFAIL "Files unzipped incorrectly"
  63. cat dir.out
  64. fi
  65. ROD rm -rf "dir/"
  66. }
  67. tst_run