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