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