xref: /aosp_15_r20/external/toybox/tests/touch.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 "touch" "touch walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
8*cf5a6c84SAndroid Build Coastguard Workertesting "1 2 3" "touch one two three && rm one two three && echo yes" "yes\n" \
9*cf5a6c84SAndroid Build Coastguard Worker  "" ""
10*cf5a6c84SAndroid Build Coastguard Workertesting "-c" "touch -c walrus && [ -e walrus ] && echo yes" "yes\n" "" ""
11*cf5a6c84SAndroid Build Coastguard Workertesting "-c missing" "touch -c warrus && [ ! -e warrus ] && echo yes" \
12*cf5a6c84SAndroid Build Coastguard Worker  "yes\n" "" ""
13*cf5a6c84SAndroid Build Coastguard Worker
14*cf5a6c84SAndroid Build Coastguard Workertesting "-t" \
15*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 201201231234 walrus && date -r walrus +%Y%m%d-%H%M%S.%N" \
16*cf5a6c84SAndroid Build Coastguard Worker  "20120123-123400.000000000\n" "" ""
17*cf5a6c84SAndroid Build Coastguard Worker
18*cf5a6c84SAndroid Build Coastguard Worker# Yes, the year could roll over while you're running this test. I do not care.
19*cf5a6c84SAndroid Build Coastguard Workertesting "-t MMDDhhmm" \
20*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 01231234 input && date +%Y-%m-%d:%H-%M-%S -r input" \
21*cf5a6c84SAndroid Build Coastguard Worker  "$(date +%Y)-01-23:12-34-00\n" "" ""
22*cf5a6c84SAndroid Build Coastguard Worker
23*cf5a6c84SAndroid Build Coastguard Workertesting "-t YYMMDDhhmm" \
24*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 2101231234 input && date +%Y-%m-%d:%H-%M-%S -r input" \
25*cf5a6c84SAndroid Build Coastguard Worker  "$(date +%C)21-01-23:12-34-00\n" "" ""
26*cf5a6c84SAndroid Build Coastguard Worker
27*cf5a6c84SAndroid Build Coastguard Workertesting "-t CCYYMMDDhhmm" \
28*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 201201231234 walrus && date -r walrus +%Y%m%d-%H%M%S.%N" \
29*cf5a6c84SAndroid Build Coastguard Worker  "20120123-123400.000000000\n" "" ""
30*cf5a6c84SAndroid Build Coastguard Worker
31*cf5a6c84SAndroid Build Coastguard Workertesting "-t seconds" \
32*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 201201231234.56 walrus && date -r walrus +%Y%m%d-%H%M%S.%N" \
33*cf5a6c84SAndroid Build Coastguard Worker  "20120123-123456.000000000\n" "" ""
34*cf5a6c84SAndroid Build Coastguard Worker
35*cf5a6c84SAndroid Build Coastguard Workertesting "-t -" "TZ=utc touch -t 200109090146.40 - > walrus && TZ=utc date -r walrus +%s" \
36*cf5a6c84SAndroid Build Coastguard Worker  "1000000000\n" "" ""
37*cf5a6c84SAndroid Build Coastguard Worker
38*cf5a6c84SAndroid Build Coastguard Workertoyonly testing "-t nanoseconds" \
39*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 201201231234.56123456789 walrus && date -r walrus +%Y%m%d-%H%M%S.%N" \
40*cf5a6c84SAndroid Build Coastguard Worker  "20120123-123456.123456789\n" "" ""
41*cf5a6c84SAndroid Build Coastguard Worker
42*cf5a6c84SAndroid Build Coastguard Workertesting "-d" \
43*cf5a6c84SAndroid Build Coastguard Worker  "touch -d 2009-02-13T23:31:30Z walrus && date -r walrus +%s" \
44*cf5a6c84SAndroid Build Coastguard Worker  "1234567890\n" "" ""
45*cf5a6c84SAndroid Build Coastguard Worker
46*cf5a6c84SAndroid Build Coastguard Workertesting "-d with space" \
47*cf5a6c84SAndroid Build Coastguard Worker  "touch -d '2009-02-13 23:31:30Z' walrus && date -r walrus +%s" \
48*cf5a6c84SAndroid Build Coastguard Worker  "1234567890\n" "" ""
49*cf5a6c84SAndroid Build Coastguard Worker
50*cf5a6c84SAndroid Build Coastguard Workertesting "-d nanoseconds" \
51*cf5a6c84SAndroid Build Coastguard Worker  "touch -d 2009-02-13T23:31:30.123456789Z walrus && date -r walrus +%s.%N" \
52*cf5a6c84SAndroid Build Coastguard Worker  "1234567890.123456789\n" "" ""
53*cf5a6c84SAndroid Build Coastguard Worker
54*cf5a6c84SAndroid Build Coastguard Workertesting "-r" \
55*cf5a6c84SAndroid Build Coastguard Worker  "touch -r walrus walrus2 && date -r walrus2 +%s.%N" \
56*cf5a6c84SAndroid Build Coastguard Worker   "1234567890.123456789\n" "" ""
57*cf5a6c84SAndroid Build Coastguard Worker
58*cf5a6c84SAndroid Build Coastguard Worker# Yes, the year could roll over while you're running this test. I do not care.
59*cf5a6c84SAndroid Build Coastguard Workertesting "-t MMDDhhmm" \
60*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 01231234 input && date +%Y-%m-%d:%H-%M-%S -r input" \
61*cf5a6c84SAndroid Build Coastguard Worker  "$(date +%Y)-01-23:12-34-00\n" "" ""
62*cf5a6c84SAndroid Build Coastguard Worker
63*cf5a6c84SAndroid Build Coastguard Workertesting "-t CCMMDDhhmm" \
64*cf5a6c84SAndroid Build Coastguard Worker  "touch -t 2101231234 input && date +%Y-%m-%d:%H-%M-%S -r input" \
65*cf5a6c84SAndroid Build Coastguard Worker  "$(date +%C)21-01-23:12-34-00\n" "" ""
66*cf5a6c84SAndroid Build Coastguard Worker
67*cf5a6c84SAndroid Build Coastguard Workertesting "-a" "TZ=utc touch -t 197101020304 walrus &&
68*cf5a6c84SAndroid Build Coastguard Worker    TZ=utc touch -t 197203040506 -a walrus && TZ=utc stat -c '%X %Y' walrus" \
69*cf5a6c84SAndroid Build Coastguard Worker    "68533560 31633440\n" "" ""
70*cf5a6c84SAndroid Build Coastguard Workertesting "-m" "TZ=utc touch -t 197101020304 walrus &&
71*cf5a6c84SAndroid Build Coastguard Worker    TZ=utc touch -t 197203040506 -m walrus && TZ=utc stat -c '%X %Y' walrus" \
72*cf5a6c84SAndroid Build Coastguard Worker    "31633440 68533560\n" "" ""
73*cf5a6c84SAndroid Build Coastguard Workertesting "-am" "TZ=utc touch -t 197101020304 walrus &&
74*cf5a6c84SAndroid Build Coastguard Worker    TZ=utc touch -t 197203040506 -am walrus && TZ=utc stat -c '%X %Y' walrus" \
75*cf5a6c84SAndroid Build Coastguard Worker    "68533560 68533560\n" "" ""
76*cf5a6c84SAndroid Build Coastguard Worker
77*cf5a6c84SAndroid Build Coastguard Workerrm walrus walrus2
78