1 #!/bin/bash 2 3 [ -f testing.sh ] && . testing.sh 4 5 #testing "name" "command" "result" "infile" "stdin" 6 7 testing "mkdir" "mkdir one && [ -d one ] && echo yes" "yes\n" "" "" 8 rmdir one 9 10 touch existing 11 testing "mkdir existing" \ 12 "mkdir existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" "" 13 rm existing 14 15 testing "mkdir one two" \ 16 "mkdir one two && [ -d one ] && [ -d two ] && echo yes" "yes\n" "" "" 17 rmdir one two 18 19 testing "mkdir missing/one" \ 20 "mkdir missing/one 2> /dev/null || [ ! -d missing ] && echo yes" "yes\n" "" "" 21 22 testing "mkdir -p" \ 23 "mkdir -p one/two/three && [ -d one/two/three ] && echo yes" "yes\n" "" "" 24 rm -rf one 25 26 mkdir existing 27 testing "mkdir -p existing" "mkdir -p existing && echo yes" "yes\n" "" "" 28 rmdir existing 29 30 umask 123 31 testing "mkdir (default permissions)" \ 32 "mkdir one && stat -c %a one" "654\n" "" "" 33 rmdir one 34 35 testing "mkdir -m 124" \ 36 "mkdir -m 124 one && stat -c %a one" "124\n" "" "" 37 rmdir one 38 39 umask 000 40 testing "mkdir -p -m 653" \ 41 "mkdir -p -m 653 one/two && stat -c %a one && stat -c %a one/two" \ 42 "777\n653\n" "" "" 43 rm -rf one 44 45 testing "mkdir -p one/two/ (trailing slash)" \ 46 "mkdir -p one/two/ && [ -d one/two ] && echo yes" "yes\n" "" "" 47 rm -rf one 48 49 umask 022 50 testing "mkdir -p -m 777 (022 umask)" \ 51 "mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \ 52 "755\n777\n" "" "" 53 rm -rf one 54 55 umask 377 56 testing "mkdir -p -m 777 (377 umask)" \ 57 "mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \ 58 "700\n777\n" "" "" 59 umask 002 60 rm -rf one 61 62 testing "mkdir -vp" "mkdir -vp walrus 2>&1" \ 63 "mkdir: created directory 'walrus'\n" "" "" 64 65 testing "mkdir -vp exists" "mkdir -vp walrus 2>&1" \ 66 "" "" "" 67 rm -rf walrus 68 69 touch two 70 testing "mkdir continue after fail" \ 71 "mkdir -m 777 one two three 2>/dev/null || stat -c %a three" \ 72 "777\n" "" "" 73 rm -rf one two three 74