#! /bin/sh # Copyright (C) 2011-2012 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # Sanity check for the automake testsuite: the 'is_newest' subroutine. . ./defs || Exit 1 plan_ 21 # I'm a lazy typist. Y () { command_ok_ "is_newest $*" is_newest "$@"; } N () { command_ok_ "not is_newest $*" not is_newest "$@"; } : > a $sleep : > b : > c stat a b c || : # For debugging. Y c a Y b a N a b Y c b Y c c Y c a b c touch -r c d stat c d || : # For debugging. Y c d # Should work on directories too, both empty and not-empty. An older # implementation of 'is_newest' failed if the first argument was a # directory containing files newer than itself (see automake bug#9147). mkdir u x touch x/foo $sleep touch x/foo $sleep mkdir v y touch y/foo $sleep touch y/foo stat u v x y x/foo y/foo || : # For debugging. for older in u x; do for newer in v y; do Y $newer $older N $older $newer done done Y x/foo x N x x/foo touch -r x u Y x u Y u x # A couple of mild "stress" tests. Y y x u v Y y u x/foo a b c :