xref: /openbsd-src/gnu/usr.bin/perl/t/porting/checkcfgvar.t (revision 3d61058aa5c692477b6d18acfbbdb653a9930ff9)
1#!./perl -w
2
3# What does this test?
4# This uses Porting/checkcfgvar.pl to check that none of the config.sh-like
5# files are missing any entries.
6#
7# Why do we test this?
8# We need them to be complete when we ship a release, and this way we catch
9# problems as early as possible. (Instead of creating the potential for yet
10# another last-minute job for the release manager). If a config file for a
11# platform is incomplete, it can't be used to correctly regenerate config.h,
12# because missing values result in invalid C code. We keep the files sorted
13# as it makes it easy to automate adding defaults.
14#
15# It's broken - how do I fix it?
16# The most likely reason that the test failed is because you've just added
17# a new entry to Configure, config.sh and config_h.SH but nowhere else.
18# Run something like:
19#   perl Porting/checkcfgvar.pl --regen --default=undef
20# (the correct default might not always be undef) to do most of the work, and
21# then hand-edit configure.com (as that's not automated).
22
23use Config;
24BEGIN {
25    require "./test.pl";
26    skip_all("Won't ship a release from EBCDIC") if $::IS_EBCDIC;
27    @INC = '..' if -f '../TestInit.pm';
28}
29use TestInit qw(T A); # T is chdir to the top level, A makes paths absolute
30
31if ( $Config{usecrosscompile} ) {
32  skip_all( "Not all files are available during cross-compilation" );
33}
34
35system "$^X -Ilib Porting/checkcfgvar.pl --tap";
36