Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitaabb700

Browse files
committed
Add perl replacements for build.bat and vcregress.bat. In due course
the .bat files will be altered to become tiny wrappers for these scripts,and one or two other .bat files will disappear.
1 parentf71c7b9 commitaabb700

File tree

2 files changed

+333
-0
lines changed

2 files changed

+333
-0
lines changed

‎src/tools/msvc/build.pl

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
2+
# -*-perl-*- hey - emacs - this is a perl file
3+
4+
# $PostgreSQL: pgsql/src/tools/msvc/build.pl,v 1.1 2007/09/23 21:52:56 adunstan Exp $
5+
6+
BEGIN
7+
{
8+
9+
chdir("../../..")if (-d"../msvc" &&-d"../../../src");
10+
11+
}
12+
13+
use lib"src/tools/msvc";
14+
15+
use Cwd;
16+
17+
use Mkvcbuild;
18+
19+
# buildenv.pl is for specifying the build environment settings
20+
# it should contain lines like:
21+
# $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}";
22+
23+
if (-e"src/tools/msvc/buildenv.pl")
24+
{
25+
require"src/tools/msvc/buildenv.pl";
26+
}
27+
elsif (-e"./buildenv.pl" )
28+
{
29+
require"./buildenv.pl";
30+
}
31+
32+
33+
# set up the project
34+
our$config;
35+
require"config.pl";
36+
37+
Mkvcbuild::mkvcbuild($config);
38+
39+
# check what sort of build we are doing
40+
41+
my$bconf =$ENV{CONFIG} ||"Release";
42+
my$buildwhat =$ARGV[1] ||"";
43+
if ($ARGV[0]eq'DEBUG')
44+
{
45+
$bconf ="Debug";
46+
}
47+
elsif ($ARGV[0]ne"RELEASE")
48+
{
49+
$buildwhat =$ARGV[0] ||"";
50+
}
51+
52+
# ... and do it
53+
54+
if ($buildwhat)
55+
{
56+
system("vcbuild$buildwhat.vcproj$bconf");
57+
}
58+
else
59+
{
60+
system("msbuild pgsql.sln /verbosity:detailed /p:Configuration=$bconf");
61+
}
62+
63+
# report status
64+
65+
$status =$? >> 8;
66+
67+
exit$status;

‎src/tools/msvc/vcregress.pl

Lines changed: 266 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,266 @@
1+
2+
# -*-perl-*- hey - emacs - this is a perl file
3+
4+
# $PostgreSQL: pgsql/src/tools/msvc/vcregress.pl,v 1.1 2007/09/23 21:52:56 adunstan Exp $
5+
6+
use strict;
7+
8+
our$config;
9+
10+
use Cwd;
11+
use File::Copy;
12+
13+
my$startdir = getcwd();
14+
15+
chdir"../../.."if (-d"../../../src/tools/msvc");
16+
17+
# buildenv.pl is for specifying the build environment settings
18+
# it should contian lines like:
19+
# $ENV{PATH} = "c:/path/to/bison/bin;$ENV{PATH}";
20+
21+
if (-e"src/tools/msvc/buildenv.pl")
22+
{
23+
require"src/tools/msvc/buildenv.pl";
24+
}
25+
26+
my$what =shift ||"";
27+
if ($what =~/^(check|installcheck|plcheck|contribcheck|ecpgcheck)$/i)
28+
{
29+
$what =uc$what;
30+
}
31+
else
32+
{
33+
usage();
34+
}
35+
36+
# use a capital C here because config.pl has $config
37+
my$Config =-e"release/postgres/postgres.exe" ?"Release" :"Debug";
38+
39+
copy("$Config/refint/defint.dll","contrib/spi");
40+
copy("$Config/autoinc/autoinc.dll","contrib/spi");
41+
copy("$Config/regress/regress.dll","src/test/regress");
42+
43+
$ENV{PATH} ="../../../$Config/libpq;../../$Config/libpq;$ENV{PATH}";
44+
45+
my$schedule =shift;
46+
unless ($schedule)
47+
{
48+
$schedule ="serial";
49+
$schedule ="parallel"if ($whateq'CHECK' ||$what =~/PARALLEL/);
50+
}
51+
52+
my$temp_port;
53+
if (-e"src/tools/msvc/config.pl")
54+
{
55+
eval{
56+
require"src/tools/msvc/config.pl";
57+
$temp_port =$config->{'--with-pgport'};
58+
}
59+
}
60+
$temp_port ||= 55432;
61+
62+
my$topdir = getcwd();
63+
64+
$ENV{PERL5LIB} ="$topdir/src/tools/msvc";
65+
66+
my$maxconn ="";
67+
$maxconn ="--max_connections=$ENV{MAX_CONNECTIONS}"
68+
if$ENV{MAX_CONNECTIONS};
69+
70+
my$temp_config ="";
71+
$temp_config ="--temp-config=\"$ENV{TEMP_CONFIG}\""
72+
if$ENV{TEMP_CONFIG};
73+
74+
chdir"src/test/regress";
75+
76+
my%command = (
77+
CHECK=> \&check,
78+
PLCHECK=> \&plcheck,
79+
INSTALLCHECK=> \&installcheck,
80+
ECPGCHECK=> \&ecpgcheck,
81+
CONTRIBCHECK=> \&contribcheck
82+
);
83+
84+
my$proc =$command{$what};
85+
86+
exit 3unless$proc;
87+
88+
&$proc();
89+
90+
exit 0;
91+
92+
########################################################################
93+
94+
subinstallcheck
95+
{
96+
my@args = (
97+
"../../../$Config/pg_regress/pg_regress",
98+
"--psqldir=../../../$Config/psql",
99+
"--schedule=${schedule}_schedule",
100+
"--multibyte=SQL_ASCII",
101+
"--load-language=plpgsql",
102+
"--no-locale"
103+
);
104+
push(@args,$maxconn)if$maxconn;
105+
system(@args);
106+
my$status =$? >>8;
107+
exit$statusif$status;
108+
}
109+
110+
subcheck
111+
{
112+
my@args = (
113+
"../../../$Config/pg_regress/pg_regress",
114+
"--psqldir=../../../$Config/psql",
115+
"--schedule=${schedule}_schedule",
116+
"--multibyte=SQL_ASCII",
117+
"--load-language=plpgsql",
118+
"--no-locale",
119+
"--temp-install=./tmp_check",
120+
"--top-builddir=\"$topdir\"",
121+
"--temp-port=$temp_port"
122+
);
123+
push(@args,$maxconn)if$maxconn;
124+
push(@args,$temp_config)if$temp_config;
125+
system(@args);
126+
my$status =$? >>8;
127+
exit$statusif$status;
128+
}
129+
130+
subecpgcheck
131+
{
132+
chdir$startdir;
133+
system("msbuild ecpg_regression.proj /p:config=$Config");
134+
my$status =$? >>8;
135+
exit$statusif$status;
136+
chdir"$topdir/src/interfaces/ecpg/test";
137+
$schedule="ecpg";
138+
my@args = (
139+
"../../../../$Config/pg_regress_ecpg/pg_regress_ecpg",
140+
"--psqldir=../../../$Config/psql",
141+
"--dbname=regress1,connectdb",
142+
"--createrole=connectuser,connectdb",
143+
"--schedule=${schedule}_schedule",
144+
"--multibyte=SQL_ASCII",
145+
"--load-language=plpgsql",
146+
"--no-locale",
147+
"--temp-install=./tmp_chk",
148+
"--top-builddir=\"$topdir\"",
149+
"--temp-port=$temp_port"
150+
);
151+
push(@args,$maxconn)if$maxconn;
152+
system(@args);
153+
$status =$? >>8;
154+
exit$statusif$status;
155+
}
156+
157+
subplcheck
158+
{
159+
chdir"../../pl";
160+
161+
foreachmy$pl (glob("*"))
162+
{
163+
nextunless-d"$pl/sql" &&-d"$pl/expected";
164+
my$lang =$pleq'tcl' ?'pltcl' :$pl;
165+
nextunless-d"../../$Config/$lang";
166+
$lang ='plpythonu'if$langeq'plpython';
167+
chdir$pl;
168+
print"============================================================\n";
169+
print"Checking$lang\n";
170+
my@tests = fetchTests();
171+
my@args = (
172+
"../../../$Config/pg_regress/pg_regress",
173+
"--psqldir=../../../$Config/psql",
174+
"--dbname=pl_regression","--load-language=$lang",@tests
175+
);
176+
system(@args);
177+
my$status =$? >> 8;
178+
exit$statusif$status;
179+
chdir"..";
180+
}
181+
182+
chdir"../../..";
183+
}
184+
185+
subcontribcheck
186+
{
187+
chdir"../../../contrib";
188+
my$mstat = 0;
189+
foreachmy$module (glob("*"))
190+
{
191+
nextunless-d"$module/sql" &&-d"$module/expected" &&-f"Makefile";
192+
chdir$module;
193+
print"============================================================\n";
194+
print"Checking$module\n";
195+
my@tests = fetchTests();
196+
my@args = (
197+
"../../$Config/pg_regress/pg_regress",
198+
"--psqldir=../../$Config/psql",
199+
"--dbname=contrib_regression",@tests
200+
);
201+
system(@args);
202+
my$status =$? >> 8;
203+
$mstat ||=$status;
204+
chdir"..";
205+
}
206+
exit$mstatif$mstat;
207+
}
208+
209+
subfetchTests
210+
{
211+
212+
my$handle;
213+
open($handle,"<Makefile")
214+
||open($handle,"<GNUMakefile")
215+
||die"Could not open Makefile";
216+
local($/) =undef;
217+
my$m = <$handle>;
218+
close($handle);
219+
my$t ="";
220+
221+
$m =~s/\\[\r\n]*//gs;
222+
if ($m =~/^REGRESS\s*=\s*(.*)$/gm)
223+
{
224+
$t =$1;
225+
$t =~s/\s+//g;
226+
227+
if ($m =~/contrib\/pgcrypto/)
228+
{
229+
230+
# pgcrypto is special since the tests depend on the
231+
# configuration of the build
232+
233+
my$cftests =
234+
$config->{openssl}
235+
?GetTests("OSSL_TESTS",$m)
236+
: GetTests("INT_TESTS",$m);
237+
my$pgptests =
238+
$config->{zlib}
239+
?GetTests("ZLIB_TST",$m)
240+
: GetTests("ZLIB_OFF_TST",$m);
241+
$t =~s/\$\(CF_TESTS\)/$cftests/;
242+
$t =~s/\$\(CF_PGP_TESTS\)/$pgptests/;
243+
}
244+
}
245+
246+
returnsplit(/\s+/,$t);
247+
}
248+
249+
subGetTests
250+
{
251+
my$testname =shift;
252+
my$m =shift;
253+
if ($m =~/^$testname\s*=\s*(.*)$/gm)
254+
{
255+
return$1;
256+
}
257+
return"";
258+
}
259+
260+
subusage
261+
{
262+
printSTDERR
263+
"Usage: vcregress.pl",
264+
"<check|installcheck|plcheck|contribcheck|ecpgcheck> [schedule]\n" ;
265+
exit(1);
266+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp