'rc4-x86_64' => 'crypto/rc4',
'rc4-md5-x86_64' => 'crypto/rc4',
'ghash-x86_64' => 'crypto/modes',
+ 'aesni-gcm-x86_64' => 'crypto/modes',
);
# If I were feeling more clever, these could probably be extracted
{
my ($str) = @_;
+ # Compatible with -j...
+ $str =~ s/^(\s+@?)/$1cd \$(TEST_D) && /;
return $str;
+ # Compatible with not -j.
my @t = split("\n", $str);
$str = '';
+ my $prev;
foreach my $t (@t)
{
$t =~ s/^\s+//;
- if ($t =~ /^@/)
+ if (!$prev)
{
- $t =~ s/^@/\@cd \$(TEST_D) && /;
- }
- else
- {
- $t = 'cd $(TEST_D) && ' . $t;
+ if ($t =~ /^@/)
+ {
+ $t =~ s/^@/\@cd \$(TEST_D) && /;
+ }
+ elsif ($t !~ /^\s*#/)
+ {
+ $t = 'cd $(TEST_D) && ' . $t;
+ }
}
$str .= "\t$t\n";
+ $prev = $t =~/\\$/;
}
return $str;
}
+sub copy_scripts
+ {
+ my ($sed, $src, @targets) = @_;
+
+ my $s = '';
+ foreach my $t (@targets)
+ {
+ # Copy first so we get file modes...
+ $s .= "\$(TEST_D)/$t: \$(SRC_D)/$src/$t\n\tcp \$(SRC_D)/$src/$t \$(TEST_D)/$t\n";
+ $s .= "\tsed -e 's/\\.\\.\\/apps/..\\/\$(OUT_D)/' -e 's/\\.\\.\\/util/..\\/\$(TEST_D)/' < \$(SRC_D)/$src/$t > \$(TEST_D)/$t\n" if $sed;
+ $s .= "\n";
+ }
+ return $s;
+ }
+
sub get_tests
{
my ($makefile) = @_;
my $d = $deps{$t};
$d =~ s/\.\.\/apps/\$(BIN_D)/g;
+ $d =~ s/\.\.\/util/\$(TEST_D)/g;
$d = fixtests($d, \%tests);
$d = fixdeps($d);
my $r = $targets{$t};
- $r =~ s/\.\.\/apps/\$(BIN_D)/g;
+ $r =~ s/\.\.\/apps/..\/\$(BIN_D)/g;
+ $r =~ s/\.\.\/util/..\/\$(TEST_D)/g;
$r =~ s/\.\.\/(\S+)/\$(SRC_D)\/$1/g;
$r = fixrules($r);
- $each .= "$t: \$(TEST_D) $d\n\tcd \$(TEST_D)\n$r\n";
+ $each .= "$t: test_scripts $d\n\t\@echo '$t test started'\n$r\t\@echo '$t test done'\n\n";
}
# FIXME: Might be a clever way to figure out what needs copying
- my $copies = do_copy_rule('$(TEST_D)', 'test/bctest test/evptests.txt test/testgen test/cms-test.pl', '');
-
- return "$copies\n$tests\n$all\n\n$each";
+ my @copies = ( 'bctest',
+ 'evptests.txt',
+ 'testgen',
+ 'cms-test.pl',
+ 'tx509',
+ 'test.cnf',
+ 'testenc',
+ 'tocsp',
+ 'testca',
+ 'CAss.cnf',
+ 'testtsa',
+ 'CAtsa.cnf',
+ 'Uss.cnf',
+ 'P1ss.cnf',
+ 'P2ss.cnf',
+ 'tcrl',
+ 'tsid',
+ 'treq',
+ 'tpkcs7',
+ 'tpkcs7d',
+ 'testcrl.pem',
+ 'testx509.pem',
+ 'v3-cert1.pem',
+ 'v3-cert2.pem',
+ 'testreq2.pem',
+ 'testp7.pem',
+ 'pkcs7-1.pem',
+ 'trsa',
+ 'testrsa.pem',
+ 'testsid.pem',
+ );
+ my $copies = copy_scripts(1, 'test', @copies);
+ $copies .= copy_scripts(0, 'test', ('smcont.txt'));
+
+ my @utils = ( 'shlib_wrap.sh',
+ 'opensslwrap.sh',
+ );
+ $copies .= copy_scripts(1, 'util', @utils);
+
+ my @apps = ( 'CA.sh',
+ 'openssl.cnf',
+ );
+ $copies .= copy_scripts(1, 'apps', @apps);
+
+ $scripts = "test_scripts: \$(TEST_D)/CA.sh \$(TEST_D)/opensslwrap.sh \$(TEST_D)/openssl.cnf ocsp smime\n";
+ $scripts .= "\nocsp:\n\tcp -R test/ocsp-tests \$(TEST_D)\n";
+ $scripts .= "\smime:\n\tcp -R test/smime-certs \$(TEST_D)\n";
+
+ return "$scripts\n$copies\n$tests\n$all\n\n$each";
}
1;