Commit | Line | Data |
41aba5b7 |
1 | BEGIN { |
2 | chdir 't' if -d 't'; |
3 | @INC = '../lib'; |
4 | require "./test.pl"; |
5 | } |
6 | |
7956ade2 |
7 | plan tests => 23; |
41aba5b7 |
8 | |
9 | use_ok('Config'); |
10 | |
11 | # Some (safe?) bets. |
12 | |
484fdf61 |
13 | ok(keys %Config > 500, "Config has more than 500 entries"); |
41aba5b7 |
14 | |
15 | ok(each %Config); |
16 | |
17 | is($Config{PERL_REVISION}, 5, "PERL_REVISION is 5"); |
18 | |
41aba5b7 |
19 | ok( exists $Config{cc}, "has cc"); |
20 | |
21 | ok( exists $Config{ccflags}, "has ccflags"); |
22 | |
23 | ok(!exists $Config{python}, "has no python"); |
24 | |
25 | ok( exists $Config{d_fork}, "has d_fork"); |
26 | |
27 | ok(!exists $Config{d_bork}, "has no d_bork"); |
28 | |
7956ade2 |
29 | like($Config{ivsize}, qr/^(4|8)$/, "ivsize is 4 or 8 (it is $Config{ivsize})"); |
30 | |
41aba5b7 |
31 | # byteorder is virtual, but it has rules. |
32 | |
7956ade2 |
33 | like($Config{byteorder}, qr/^(1234|4321|12345678|87654321)$/, "byteorder is 1234 or 4321 or 12345678 or 87654321 (it is $Config{byteorder})"); |
41aba5b7 |
34 | |
7956ade2 |
35 | is(length $Config{byteorder}, $Config{ivsize}, "byteorder is as long as ivsize (which is $Config{ivsize})"); |
41aba5b7 |
36 | |
37 | # ccflags_nolargefiles is virtual, too. |
38 | |
39 | ok(exists $Config{ccflags_nolargefiles}, "has ccflags_nolargefiles"); |
40 | |
41 | # Utility functions. |
42 | |
43 | like(Config::myconfig(), qr/cc='$Config{cc}'/, "myconfig"); |
44 | |
45 | like(Config::config_sh(), qr/cc='$Config{cc}'/, "config_sh"); |
46 | |
47 | my $out = tie *STDOUT, 'FakeOut'; |
48 | |
49 | Config::config_vars('cc'); |
50 | my $out1 = $$out; |
51 | $out->clear; |
52 | |
53 | Config::config_vars('d_bork'); |
54 | my $out2 = $$out; |
55 | $out->clear; |
56 | |
57 | untie *STDOUT; |
58 | |
59 | like($out1, qr/^cc='$Config{cc}';/, "config_vars cc"); |
60 | like($out2, qr/^d_bork='UNKNOWN';/, "config_vars d_bork is UNKNOWN"); |
61 | |
62 | # Read-only. |
63 | |
7956ade2 |
64 | undef $@; |
41aba5b7 |
65 | eval { $Config{d_bork} = 'borkbork' }; |
66 | like($@, qr/Config is read-only/, "no STORE"); |
67 | |
7956ade2 |
68 | ok(!exists $Config{d_bork}, "still no d_bork"); |
69 | |
70 | undef $@; |
41aba5b7 |
71 | eval { delete $Config{d_fork} }; |
72 | like($@, qr/Config is read-only/, "no DELETE"); |
73 | |
7956ade2 |
74 | ok( exists $Config{d_fork}, "still d_fork"); |
75 | |
76 | undef $@; |
41aba5b7 |
77 | eval { %Config = () }; |
78 | like($@, qr/Config is read-only/, "no CLEAR"); |
79 | |
7956ade2 |
80 | ok( exists $Config{d_fork}, "still d_fork"); |
81 | |
41aba5b7 |
82 | package FakeOut; |
83 | |
84 | sub TIEHANDLE { |
85 | bless(\(my $text), $_[0]); |
86 | } |
87 | |
88 | sub clear { |
89 | ${ $_[0] } = ''; |
90 | } |
91 | |
41aba5b7 |
92 | sub PRINT { |
93 | my $self = shift; |
7956ade2 |
94 | $$self .= join('', @_); |
41aba5b7 |
95 | } |
96 | |