xref: /netbsd-src/tests/share/mk/t_own.sh (revision 80b30d8cdf91d7507e45c7a7bc331ab06d17c3ae)
1*80b30d8cSjmmv# Copyright 2012 Google Inc.
2*80b30d8cSjmmv# All rights reserved.
3*80b30d8cSjmmv#
4*80b30d8cSjmmv# Redistribution and use in source and binary forms, with or without
5*80b30d8cSjmmv# modification, are permitted provided that the following conditions are
6*80b30d8cSjmmv# met:
7*80b30d8cSjmmv#
8*80b30d8cSjmmv# * Redistributions of source code must retain the above copyright
9*80b30d8cSjmmv#   notice, this list of conditions and the following disclaimer.
10*80b30d8cSjmmv# * Redistributions in binary form must reproduce the above copyright
11*80b30d8cSjmmv#   notice, this list of conditions and the following disclaimer in the
12*80b30d8cSjmmv#   documentation and/or other materials provided with the distribution.
13*80b30d8cSjmmv# * Neither the name of Google Inc. nor the names of its contributors
14*80b30d8cSjmmv#   may be used to endorse or promote products derived from this software
15*80b30d8cSjmmv#   without specific prior written permission.
16*80b30d8cSjmmv#
17*80b30d8cSjmmv# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18*80b30d8cSjmmv# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19*80b30d8cSjmmv# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20*80b30d8cSjmmv# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21*80b30d8cSjmmv# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22*80b30d8cSjmmv# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23*80b30d8cSjmmv# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24*80b30d8cSjmmv# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25*80b30d8cSjmmv# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26*80b30d8cSjmmv# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27*80b30d8cSjmmv# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28*80b30d8cSjmmv
29*80b30d8cSjmmvatf_test_case makeconf__ok
30*80b30d8cSjmmvmakeconf__ok_body() {
31*80b30d8cSjmmv	cat >Makefile <<EOF
32*80b30d8cSjmmvA_TEST_CONFIG_VARIABLE = not overriden
33*80b30d8cSjmmv
34*80b30d8cSjmmv.PHONY: show-config-var
35*80b30d8cSjmmvshow-config-var:
36*80b30d8cSjmmv	@echo \${A_TEST_CONFIG_VARIABLE}
37*80b30d8cSjmmv
38*80b30d8cSjmmv.include <bsd.own.mk>
39*80b30d8cSjmmvEOF
40*80b30d8cSjmmv
41*80b30d8cSjmmv	echo >empty.conf
42*80b30d8cSjmmv	cat >custom.conf <<EOF
43*80b30d8cSjmmvA_TEST_CONFIG_VARIABLE = 'a value'
44*80b30d8cSjmmvEOF
45*80b30d8cSjmmv	atf_check -o inline:'not overriden\n' \
46*80b30d8cSjmmv	    make MAKECONF="$(pwd)/empty.conf" show-config-var
47*80b30d8cSjmmv	atf_check -o inline:'a value\n' \
48*80b30d8cSjmmv	    make MAKECONF="$(pwd)/custom.conf" show-config-var
49*80b30d8cSjmmv}
50*80b30d8cSjmmv
51*80b30d8cSjmmvatf_test_case makeconf__missing
52*80b30d8cSjmmvmakeconf__missing_body() {
53*80b30d8cSjmmv	cat >Makefile <<EOF
54*80b30d8cSjmmv.PHONY: hello
55*80b30d8cSjmmvhello:
56*80b30d8cSjmmv	@echo 'Did not error out on a missing file!'
57*80b30d8cSjmmv
58*80b30d8cSjmmv.include <bsd.own.mk>
59*80b30d8cSjmmvEOF
60*80b30d8cSjmmv
61*80b30d8cSjmmv	echo >empty.conf
62*80b30d8cSjmmv	cat >custom.conf <<EOF
63*80b30d8cSjmmvA_TEST_CONFIG_VARIABLE = 'a value'
64*80b30d8cSjmmvEOF
65*80b30d8cSjmmv	atf_check -o inline:'Did not error out on a missing file!\n' \
66*80b30d8cSjmmv	    make MAKECONF="$(pwd)/non-existent.conf" hello
67*80b30d8cSjmmv}
68*80b30d8cSjmmv
69*80b30d8cSjmmvatf_init_test_cases() {
70*80b30d8cSjmmv	atf_add_test_case makeconf__ok
71*80b30d8cSjmmv	atf_add_test_case makeconf__missing
72*80b30d8cSjmmv}
73