blob: 7f9b35e25784d84ea7972b054ec24581717e1fb7 [file] [log] [blame]
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +09001#!/bin/sh
2#
3# Copyright 2015 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
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090019log=/tmp/log
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090020mk="$@"
21
Shinichiro Hamajidaf492c2015-07-31 15:31:19 +090022sleep_if_necessary() {
Shinichiro Hamajibb287302015-12-08 15:48:26 +090023 if [ x$(uname) != x"Linux" -o x"${TRAVIS}" != x"" ]; then
Shinichiro Hamajidaf492c2015-07-31 15:31:19 +090024 sleep "$@"
25 fi
26}
27
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090028export VAR=hoge
29
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090030cat <<EOF > Makefile
31all:
32 echo foo
33EOF
34
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090035${mk} 2> ${log}
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090036if [ -e ninja.sh ]; then
37 ./ninja.sh
38fi
39
Shinichiro Hamajidaf492c2015-07-31 15:31:19 +090040sleep_if_necessary 1
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090041cat <<EOF > Makefile
42all:
43 echo bar
Shinichiro Hamaji7e708012015-07-31 13:07:34 +090044 echo VAR=\$(VAR)
45 echo VAR2=\$(VAR2)
46 echo wildcard=\$(wildcard *.mk)
Dan Willemsen87417412015-08-24 17:57:12 -070047other:
48 echo foo
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090049EOF
50
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090051${mk} 2> ${log}
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +090052if [ -e ninja.sh ]; then
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090053 if ! grep regenerating ${log} > /dev/null; then
Shinichiro Hamajib25f8ab2015-12-07 17:47:56 +090054 echo 'Should be regenerated (Makefile)'
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090055 fi
56 ./ninja.sh
57fi
58
59export VAR=fuga
60${mk} 2> ${log}
61if [ -e ninja.sh ]; then
62 if ! grep regenerating ${log} > /dev/null; then
Shinichiro Hamajib25f8ab2015-12-07 17:47:56 +090063 echo 'Should be regenerated (env changed)'
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090064 fi
65 ./ninja.sh
66fi
67
Shinichiro Hamaji7e708012015-07-31 13:07:34 +090068export VAR2=OK
69${mk} 2> ${log}
70if [ -e ninja.sh ]; then
71 if ! grep regenerating ${log} > /dev/null; then
Shinichiro Hamajib25f8ab2015-12-07 17:47:56 +090072 echo 'Should be regenerated (env added)'
Shinichiro Hamaji7e708012015-07-31 13:07:34 +090073 fi
74 ./ninja.sh
75fi
76
Shinichiro Hamaji29e45702015-12-09 15:44:51 +090077export PATH=/random_path:$PATH
78${mk} 2> ${log}
79if [ -e ninja.sh ]; then
80 if ! grep regenerating ${log} > /dev/null; then
81 echo 'Should be regenerated (PATH changed)'
82 fi
83 ./ninja.sh
84fi
85
Shinichiro Hamajidaf492c2015-07-31 15:31:19 +090086sleep_if_necessary 1
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090087touch PASS.mk
88${mk} 2> ${log}
89if [ -e ninja.sh ]; then
90 if ! grep regenerating ${log} > /dev/null; then
Shinichiro Hamajib25f8ab2015-12-07 17:47:56 +090091 echo 'Should be regenerated (wildcard)'
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090092 fi
93 ./ninja.sh
94fi
95
Shinichiro Hamajidaf492c2015-07-31 15:31:19 +090096sleep_if_necessary 1
Shinichiro Hamajib2f96ed2015-07-31 12:45:45 +090097touch XXX
98${mk} 2> ${log}
99if [ -e ninja.sh ]; then
100 if grep regenerating ${log}; then
101 echo 'Should not be regenerated'
102 fi
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +0900103 ./ninja.sh
Shinichiro Hamaji09796ef2015-07-30 17:08:29 +0900104fi
Dan Willemsen87417412015-08-24 17:57:12 -0700105
106${mk} other 2> ${log}
107if [ -e ninja.sh ]; then
108 if ! grep regenerating ${log} >/dev/null; then
Shinichiro Hamajib25f8ab2015-12-07 17:47:56 +0900109 echo 'Should be regenerated (argument)'
Dan Willemsen87417412015-08-24 17:57:12 -0700110 fi
111 ./ninja.sh other
112fi