my $config_path = abs_path(srctop_file("test", $no_fips ? "default.cnf"
: "default-and-fips.cnf"));
-plan tests => 1;
+plan tests => 2;
if ($no_fips) {
ok(run(test(["threadstest", "-config", $config_path, data_dir()])),
ok(run(test(["threadstest", "-fips", "-config", $config_path, data_dir()])),
"running test_threads with FIPS");
}
+
+# Merge the configuration files into one filtering the contents so the failure
+# condition is reproducable. A working FIPS configuration without the install
+# status is required.
+
+open CFGBASE, '<', $config_path;
+open CFGINC, '<', bldtop_file('/test/fipsmodule.cnf');
+open CFGOUT, '>', 'thread.cnf';
+
+while (<CFGBASE>) {
+ print CFGOUT unless m/^[.]include/;
+}
+close CFGBASE;
+print CFGOUT "\n\n";
+while (<CFGINC>) {
+ print CFGOUT unless m/^install-status/;
+}
+close CFGINC;
+close CFGOUT;
+
+$ENV{OPENSSL_CONF} = 'thread.cnf';
+ok(run(test(["threadstest_fips"])), "running test_threads_fips");