This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
new perldelta
[perl5.git] / dist / Devel-PPPort / mktests.PL
CommitLineData
adfe19db
MHM
1################################################################################
2#
3# mktests.PL -- generate test files for Devel::PPPort
4#
5################################################################################
6#
b2049988 7# Version 3.x, Copyright (C) 2004-2013, Marcus Holland-Moritz.
adfe19db
MHM
8# Version 2.x, Copyright (C) 2001, Paul Marquess.
9# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
10#
11# This program is free software; you can redistribute it and/or
12# modify it under the same terms as Perl itself.
13#
14################################################################################
15
16use strict;
91900b62 17BEGIN { $^W = 1; }
874389ae 18require "./parts/ppptools.pl";
adfe19db
MHM
19
20my $template = do { local $/; <DATA> };
21
236afa0a 22generate_tests();
adfe19db 23
236afa0a
MHM
24sub generate_tests
25{
26 my @tests;
27 my $file;
adfe19db 28
1d088ed8 29 for $file (all_files_in_dir('parts/inc')) {
236afa0a
MHM
30 my($testfile) = $file =~ /(\w+)\.?$/; # VMS has a trailing dot
31 $testfile = "t/$testfile.t";
b2049988 32
236afa0a
MHM
33 my $spec = parse_partspec($file);
34 my $plan = 0;
b2049988 35
236afa0a
MHM
36 if (exists $spec->{tests}) {
37 exists $spec->{OPTIONS}{tests} &&
38 exists $spec->{OPTIONS}{tests}{plan}
39 or die "No plan for tests in $file\n";
b2049988 40
236afa0a 41 print "generating $testfile\n";
b2049988 42
236afa0a 43 my $tmpl = $template;
8706ada4
N
44 my $canonfile = $file;
45 $canonfile =~ tr!\\!/!; # MSWin32 use backslashes
46 $tmpl =~ s/__SOURCE__/$canonfile/mg;
236afa0a
MHM
47 $tmpl =~ s/__PLAN__/$spec->{OPTIONS}{tests}{plan}/mg;
48 $tmpl =~ s/^__TESTS__$/$spec->{tests}/mg;
b2049988 49
236afa0a 50 open FH, ">$testfile" or die "$testfile: $!\n";
e3f4f321 51 binmode FH;
236afa0a
MHM
52 print FH $tmpl;
53 close FH;
b2049988 54
236afa0a
MHM
55 push @tests, $testfile;
56 }
adfe19db 57 }
b2049988 58
236afa0a 59 return @tests;
adfe19db
MHM
60}
61
adfe19db
MHM
62__DATA__
63################################################################################
64#
65# !!!!! Do NOT edit this file directly! !!!!!
66#
67# Edit mktests.PL and/or __SOURCE__ instead.
68#
cac25305
MHM
69# This file was automatically generated from the definition files in the
70# parts/inc/ subdirectory by mktests.PL. To learn more about how all this
71# works, please read the F<HACKERS> file that came with this distribution.
72#
adfe19db
MHM
73################################################################################
74
6004d0b5
KW
75use FindBin ();
76
adfe19db
MHM
77BEGIN {
78 if ($ENV{'PERL_CORE'}) {
49ef49fe 79 chdir 't' if -d 't';
6004d0b5 80 unshift @INC, '../lib' if -d '../lib' && -d '../ext';
190ae7ea 81 require Config; Config->import;
adfe19db 82 use vars '%Config';
a745474a 83 if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
adfe19db
MHM
84 print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
85 exit 0;
86 }
87 }
6004d0b5
KW
88
89 use lib "$FindBin::Bin";
90 use lib "$FindBin::Bin/../parts/inc";
91
92 die qq[Cannot find "$FindBin::Bin/../parts/inc"] unless -d "$FindBin::Bin/../parts/inc";
adfe19db 93
c07deaaf 94 sub load {
8d83133d 95 require 'testutil.pl';
6004d0b5 96 require 'inctools';
adfe19db 97 }
c07deaaf
MHM
98
99 if (__PLAN__) {
100 load();
adfe19db
MHM
101 plan(tests => __PLAN__);
102 }
103}
104
105use Devel::PPPort;
106use strict;
91900b62 107BEGIN { $^W = 1; }
adfe19db 108
236afa0a
MHM
109package Devel::PPPort;
110use vars '@ISA';
111require DynaLoader;
112@ISA = qw(DynaLoader);
190ae7ea 113Devel::PPPort->bootstrap;
236afa0a
MHM
114
115package main;
116
adfe19db 117__TESTS__