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