• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#!/bin/sh
2#
3# Copyright 2016 Google Inc. All rights reserved
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#      http:#www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16
17set -e
18
19log=/tmp/log
20mk="$@"
21
22sleep_if_necessary() {
23  if [ x$(uname) != x"Linux" -o x"${TRAVIS}" != x"" ]; then
24    sleep "$@"
25  fi
26}
27
28cat <<EOF > Makefile
29A := \$(file <file_a)
30all:
31	echo foo
32EOF
33
34${mk} 2> ${log}
35if [ -e ninja.sh ]; then
36  ./ninja.sh
37fi
38
39${mk} 2> ${log}
40if [ -e ninja.sh ]; then
41  if grep regenerating ${log}; then
42    echo 'Should not be regenerated'
43  fi
44  ./ninja.sh
45fi
46
47echo regen >file_a
48
49${mk} 2> ${log}
50if [ -e ninja.sh ]; then
51  if ! grep regenerating ${log} >/dev/null; then
52    echo 'Should be regenerated'
53  fi
54  ./ninja.sh
55fi
56
57${mk} 2> ${log}
58if [ -e ninja.sh ]; then
59  if grep regenerating ${log}; then
60    echo 'Should not be regenerated'
61  fi
62  ./ninja.sh
63fi
64
65sleep_if_necessary 1
66echo regen >>file_a
67
68${mk} 2> ${log}
69if [ -e ninja.sh ]; then
70  if ! grep regenerating ${log} >/dev/null; then
71    echo 'Should be regenerated'
72  fi
73  ./ninja.sh
74fi
75