1c5b15dbd1aa21566417d606111b02e993069408cFelix Janda#!/bin/bash
2c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
3c5b15dbd1aa21566417d606111b02e993069408cFelix Janda[ -f testing.sh ] && . testing.sh
4c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
5c5b15dbd1aa21566417d606111b02e993069408cFelix Janda#testing "name" "command" "result" "infile" "stdin"
6c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
7c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir" "mkdir one && [ -d one ] && echo yes" "yes\n" "" ""
8c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarmdir one
9c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
10c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatouch existing
11c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir existing" \
12c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir existing 2> /dev/null || [ -f existing ] && echo yes" "yes\n" "" ""
13c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarm existing
14c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
15c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir one two" \
16c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir one two && [ -d one ] && [ -d two ] && echo yes" "yes\n" "" ""
17c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarmdir one two
18c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
19c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir missing/one" \
20c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir missing/one 2> /dev/null || [ ! -d missing ] && echo yes" "yes\n" "" ""
21c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
22c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir -p" \
23c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir -p one/two/three && [ -d one/two/three ] && echo yes" "yes\n" "" ""
24c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarm -rf one
25c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
26c5b15dbd1aa21566417d606111b02e993069408cFelix Jandamkdir existing
27c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir -p existing" "mkdir -p existing && echo yes" "yes\n" "" ""
28c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarmdir existing
29c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
30c5b15dbd1aa21566417d606111b02e993069408cFelix Jandaumask 123
31c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir (default permissions)" \
32c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir one && stat -c %a one" "654\n" "" ""
33c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarmdir one
34c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
35c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir -m 124" \
36c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir -m 124 one && stat -c %a one" "124\n" "" ""
37c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarmdir one
38c5b15dbd1aa21566417d606111b02e993069408cFelix Janda
39314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyumask 000
40c5b15dbd1aa21566417d606111b02e993069408cFelix Jandatesting "mkdir -p -m 653" \
41c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"mkdir -p -m 653 one/two && stat -c %a one && stat -c %a one/two" \
42c5b15dbd1aa21566417d606111b02e993069408cFelix Janda	"777\n653\n" "" ""
43c5b15dbd1aa21566417d606111b02e993069408cFelix Jandarm -rf one
44314dc6881f0439478f483d26726c52c1c3f536ffRob Landley
45314dc6881f0439478f483d26726c52c1c3f536ffRob Landleytesting "mkdir -p one/two/ (trailing slash)" \
46314dc6881f0439478f483d26726c52c1c3f536ffRob Landley	"mkdir -p one/two/ &&  [ -d one/two ] && echo yes" "yes\n" "" ""
47314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyrm -rf one
48314dc6881f0439478f483d26726c52c1c3f536ffRob Landley
49314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyumask 022
50314dc6881f0439478f483d26726c52c1c3f536ffRob Landleytesting "mkdir -p -m 777 (022 umask)" \
51314dc6881f0439478f483d26726c52c1c3f536ffRob Landley	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
52314dc6881f0439478f483d26726c52c1c3f536ffRob Landley	"755\n777\n" "" ""
53314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyrm -rf one
54314dc6881f0439478f483d26726c52c1c3f536ffRob Landley
55314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyumask 377
56314dc6881f0439478f483d26726c52c1c3f536ffRob Landleytesting "mkdir -p -m 777 (377 umask)" \
57314dc6881f0439478f483d26726c52c1c3f536ffRob Landley	"mkdir -p -m 777 one/two && stat -c %a one && stat -c %a one/two" \
58314dc6881f0439478f483d26726c52c1c3f536ffRob Landley	"700\n777\n" "" ""
59314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyumask 002
60314dc6881f0439478f483d26726c52c1c3f536ffRob Landleyrm -rf one
61ed9eac3967ed88262293aa395744194f8be294b0Rob Landley
62ed9eac3967ed88262293aa395744194f8be294b0Rob Landleytesting "mkdir -vp" "mkdir -vp walrus 2>&1" \
63ed9eac3967ed88262293aa395744194f8be294b0Rob Landley	"mkdir: created directory 'walrus'\n" "" ""
64ed9eac3967ed88262293aa395744194f8be294b0Rob Landley
65ed9eac3967ed88262293aa395744194f8be294b0Rob Landleytesting "mkdir -vp exists" "mkdir -vp walrus 2>&1" \
66ed9eac3967ed88262293aa395744194f8be294b0Rob Landley	"" "" ""
67fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landleyrm -rf walrus
68fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landley
69fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landleytouch two
70fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landleytesting "mkdir continue after fail" \
71fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landley	"mkdir -m 777 one two three 2>/dev/null || stat -c %a three" \
72fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landley	"777\n" "" ""
73fad38c7d1675a34a350fb1d99fb6b66728cad8a7Rob Landleyrm -rf one two three
74