mirror of
https://github.com/openssl/openssl.git
synced 2024-12-03 05:41:46 +08:00
caaea8f343
we want patch level updates to use the same keys, so only create the key against the major.minor version Reviewed-by: Tomas Mraz <tomas@openssl.org> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/24450)
84 lines
2.6 KiB
Raku
84 lines
2.6 KiB
Raku
#! /usr/bin/env perl
|
|
# Copyright 2024 The OpenSSL Project Authors. All Rights Reserved.
|
|
#
|
|
# Licensed under the Apache License 2.0 (the "License"). You may not use
|
|
# this file except in compliance with the License. You can obtain a copy
|
|
# in the file LICENSE in the source distribution or at
|
|
# https://www.openssl.org/source/license.html
|
|
|
|
|
|
use OpenSSL::Test;
|
|
use OpenSSL::Test::Utils;
|
|
use OpenSSL::Test qw/:DEFAULT bldtop_file data_file srctop_file cmdstr/;
|
|
|
|
setup("test_windows_registry");
|
|
|
|
plan skip_all => "Windows registry tests are only available on windows"
|
|
if $^O !~ /(MSWin)/;
|
|
|
|
my $actual;
|
|
my $expect;
|
|
|
|
my @tempout = run(app(["openssl", "version", "-w"]), capture => 1);
|
|
my $context = "@tempout";
|
|
$context =~ s/^.*: //;
|
|
|
|
|
|
@tempout = run(app(["openssl", "version", "-v"]), capture => 1);
|
|
my $version = "@tempout";
|
|
$version =~ s/^OpenSSL //;
|
|
$version =~ s/(^[0-9]+\.[0-9]+)(.*$)/\1/;
|
|
|
|
my $regkey = "HKLM\\SOFTWARE\\OpenSSL-".$version."-".$context;
|
|
$regkey =~ s/\n//g;
|
|
print "REGKEY IS $regkey\n";
|
|
|
|
my $exit = run(cmd(["reg.exe", "query", $regkey, "/v", "OPENSSLDIR", "/reg:32"]));
|
|
|
|
plan skip_all => "Skipping test as registry keys aren't set"
|
|
if $exit == 0;
|
|
|
|
plan tests => 3;
|
|
|
|
my @expectossldir = run(cmd(["reg.exe", "query", $regkey, "/reg:32", "/t", "REG_EXPAND_SZ", "/v", "OPENSSLDIR"]), capture => 1);
|
|
|
|
my @expectengdir = run(cmd(["reg.exe", "query", $regkey, "/reg:32", "/t", "REG_EXPAND_SZ", "/v", "ENGINESDIR"]), capture => 1);
|
|
|
|
my @expectmoddir = run(cmd(["reg.exe", "query", $regkey, "/reg:32", "/t", "REG_EXPAND_SZ", "/v", "MODULESDIR"]), capture => 1);
|
|
|
|
my @ossldir = run(app(["openssl", "version", "-d"]), capture => 1);
|
|
|
|
print "@ossldir";
|
|
$expect = "@expectossldir";
|
|
$actual = "@ossldir";
|
|
$expect =~ s/HKEY_LOCAL_MACHINE.*\n*//;
|
|
$expect =~ s/\n//g;
|
|
$expect =~ s/.*REG_EXPAND_SZ *//;
|
|
$expect =~ s/ .*$//;
|
|
$actual =~ s/OPENSSLDIR: *//;
|
|
|
|
ok(grep(/$expect/,$actual), "Confirming version output for openssldir from registry");
|
|
|
|
my @osslengineout = run(app(["openssl", "version", "-e"]), capture => 1);
|
|
|
|
$expect = "@expectengdir";
|
|
$actual = "@osslengineout";
|
|
$expect =~ s/HKEY_LOCAL_MACHINE.*\n*//;
|
|
$expect =~ s/\n//g;
|
|
$expect =~ s/.*REG_EXPAND_SZ *//;
|
|
$expect =~ s/ .*$//;
|
|
$actual =~ s/ENGINESDIR: *//;
|
|
|
|
ok(grep(/$expect/, $actual) == 1, "Confirming version output for enginesdir from registry");
|
|
|
|
my @osslmoduleout = run(app(["openssl", "version", "-m"]), capture => 1);
|
|
|
|
$expect = "@expectmoddir";
|
|
$actual = "@osslmoduleout";
|
|
$expect =~ s/HKEY_LOCAL_MACHINE.*\n*//;
|
|
$expect =~ s/\n//g;
|
|
$expect =~ s/.*REG_EXPAND_SZ *//;
|
|
$expect =~ s/ .*$//;
|
|
$actual =~ s/MODULESSDIR: *//;
|
|
ok(grep(/$expect/, $actual) == 1, "Confirming version output for modulesdir from registry");
|