VirtualBox

source: kBuild/vendor/gnumake/current/tests/scripts/variables/private@ 3208

最後變更 在這個檔案從3208是 3138,由 bird 提交於 7 年 前

Imported make 4.2.1 (2e55f5e4abdc0e38c1d64be703b446695e70b3b6) from https://git.savannah.gnu.org/git/make.git.

檔案大小: 2.3 KB
 
1# -*-perl-*-
2
3$description = "Test 'private' variables.";
4
5$details = "";
6
7# 1: Simple verification that private variables are not inherited
8&run_make_test('
9a:
10F = g
11a: F = a
12b: private F = b
13
14a b c: ; @echo $@: F=$(F)
15a: b
16b: c
17',
18 '', "c: F=a\nb: F=b\na: F=a\n");
19
20# 2: Again, but this time we start with "b" so "a"'s variable is not in scope
21&run_make_test(undef, 'b', "c: F=g\nb: F=b\n");
22
23# 3: Verification with pattern-specific variables
24&run_make_test('
25t.a:
26
27F1 = g
28F2 = g
29%.a: private F1 = a
30%.a: F2 = a
31
32t.a t.b: ; @echo $@: F1=$(F1) / F2=$(F2)
33t.a: t.b
34',
35 '', "t.b: F1=g / F2=a\nt.a: F1=a / F2=a\n");
36
37# 4: Test private global variables
38&run_make_test('
39a:
40private F = g
41G := $(F)
42a:
43b: F = b
44
45a b: ; @echo $@: F=$(F) / G=$(G)
46a: b
47',
48 '', "b: F=b / G=g\na: F= / G=g\n");
49
50# 5: Multiple conditions on the same variable. Test export.
51delete $ENV{'_X'};
52&run_make_test('
53_X = x
54a: export override private _X = a
55a: ; @echo _X=$(_X) / _X=$$_X
56',
57 '', "_X=a / _X=a");
58
59# 6: Test override.
60&run_make_test(undef, '_X=c', "_X=a / _X=a\n");
61
62# 7: Ensure keywords still work as targets
63&run_make_test('
64a: export override private foo bar
65foo bar export override private: ; @echo $@
66',
67 '', "export\noverride\nprivate\nfoo\nbar\n");
68
69# 8: Ensure keywords still work as variables
70&run_make_test('
71private = g
72a: private = a
73a: b
74a b: ; @echo $@=$(private)
75',
76 '', "b=a\na=a\n");
77
78# 9: make sure private suppresses inheritance
79run_make_test(q!
80DEFS = FOO
81all: bar1
82bar1: private DEFS += 1
83bar3: private DEFS += 3
84bar1: bar2
85bar2: bar3
86bar1 bar2 bar3: ; @echo '$@: $(DEFS)'
87!,
88 '', "bar3: FOO 3\nbar2: FOO\nbar1: FOO 1\n");
89
90# 10: Test append with pattern-specific variables and private
91
92run_make_test(q!
93IA = global
94PA = global
95PS = global
96S = global
97PS = global
98SV = global
99b%: IA += b%
100b%: private PA += b%
101b%: private PS = b%
102bar: all
103bar: IA += bar
104bar: private PA += bar
105bar: private PS = bar
106a%: IA += a%
107a%: private PA += a%
108a%: private PS = a%
109all: IA += all
110all: private PA += all
111all: private PS = all
112
113bar all: ; @echo '$@: IA=$(IA)'; echo '$@: PA=$(PA)'; echo '$@: PS=$(PS)'
114!,
115 '', "all: IA=global b% bar a% all
116all: PA=global a% all
117all: PS=all
118bar: IA=global b% bar
119bar: PA=global b% bar
120bar: PS=bar\n");
121
1221;
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette