diff options
author | Dan Willemsen <dwillemsen@google.com> | 2018-06-09 12:09:27 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@google.com> | 2018-06-11 14:52:17 -0700 |
commit | a42898a90d8c96a1988377d5b424273aac5ee5be (patch) | |
tree | ab3b44f6e72f38f11ba2ad03b8a6b84ba6fbd534 /testcase | |
parent | 8b551c5c20165711d8982a22b010c15ed1e819b0 (diff) | |
download | kati-a42898a90d8c96a1988377d5b424273aac5ee5be.tar.gz |
Add options to limit non-PHONY target prefixes
To help catch writing into the source directory, allow the build to
specify a list of valid prefixes that non-PHONY targets may have.
Change-Id: I90c9eb384557030a7635d8a2715aaba37bef87bf
Diffstat (limited to 'testcase')
-rw-r--r-- | testcase/writable.sh | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/testcase/writable.sh b/testcase/writable.sh new file mode 100644 index 0000000..457f4e3 --- /dev/null +++ b/testcase/writable.sh @@ -0,0 +1,49 @@ +#!/bin/bash +# +# Copyright 2018 Google Inc. All rights reserved +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http:#www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -u + +mk="$@" + +cat <<EOF > Makefile +test: out/foo.o +test2: +out/foo.o: foo.c foo.h test2 + @echo "END" +foo.c: + @exit 0 +foo.h: foo.c + +.PHONY: test test2 +EOF + +# TODO: test implicit outputs + +if echo "${mk}" | grep -qv "kati"; then + # Make doesn't support these warnings, so write the expected output. + echo 'Makefile:6: warning: writing to readonly directory: "foo.c"' + echo 'Makefile:7: warning: writing to readonly directory: "foo.h"' + echo 'END' +else + ${mk} --writable=out/ 2>&1 +fi + +if echo "${mk}" | grep -qv "kati"; then + # Make doesn't support these warnings, so write the expected output. + echo 'Makefile:6: *** writing to readonly directory: "foo.c"' +else + ${mk} --writable=out/ --werror_writable 2>&1 +fi |