#!/bin/sh # Test some of ls's sorting options. test=time-1 if test "$VERBOSE" = yes; then set -x ls --version fi tmp=t-ls.$$ test_failure=0 mkdir $tmp || test_failure=1 cd $tmp || test_failure=1 t1='1998-01-15 21:00' t2='1998-01-15 22:00' t3='1998-01-15 23:00' u1='1998-01-14 11:00' u2='1998-01-14 12:00' u3='1998-01-14 13:00' touch -m -d "$t3" a || test_failure=1 touch -m -d "$t2" b || test_failure=1 touch -m -d "$t1" c || test_failure=1 touch -a -d "$u3" c || test_failure=1 touch -a -d "$u2" b || test_failure=1 # Make sure A has ctime at least 1 second more recent than C's. sleep 2 touch -a -d "$u1" a || test_failure=1 fail=0 # A has ctime more recent than C. set `ls -c a c` test "$*" = 'a c' || fail=1 # Sleep so long in an attempt to avoid spurious failures # due to NFS caching and/or clock skew. sleep 2 # Create a link, updating c's ctime. ln c d || test_failure=1 if test $test_failure = 1; then echo 'failure in testing framework' exit 1 fi set `ls -u a b c` test "$*" = 'c b a' && : || fail=1 set `ls -t a b c` test "$*" = 'a b c' && : || fail=1 # Now, C should have ctime more recent than A. set `ls -c a c` if test "$*" = 'c a'; then : ok else # In spite of documentation, (e.g., stat(2)), neither link nor chmod # update a file's st_ctime on SunOS4.1.4. cat >&2 << \EOF failed ls ctime test -- this is expected at least for SunOS4.1.4 and for tmpfs file systems on Solaris 5.5.1. EOF fail=1 fi cd .. rm -rf $tmp exit $fail