Skip to content

Commit c5567af

Browse files
author
Test User
committed
Refactor cmd tests
1 parent 935e104 commit c5567af

File tree

7 files changed

+370
-96
lines changed

7 files changed

+370
-96
lines changed

scripts/cmd_test/aes-cmd-test.sh

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
# aes-cmd-test.sh
33
# AES encryption test for wolfProvider
44
#
5+
# NOTE: This script is designed to be called from do-cmd-tests.sh
6+
# Do not run this script directly - use do-cmd-tests.sh instead
7+
#
58
# Copyright (C) 2006-2025 wolfSSL Inc.
69
#
710
# This file is part of wolfProvider.
@@ -22,12 +25,9 @@
2225
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
2326
source "${SCRIPT_DIR}/cmd-test-common.sh"
2427
source "${SCRIPT_DIR}/clean-cmd-test.sh"
25-
cmd_test_env_setup "aes-test.log"
28+
cmd_test_init "aes-test.log"
2629
clean_cmd_test "aes"
2730

28-
# Redirect all output to log file
29-
exec > >(tee -a "$LOG_FILE") 2>&1
30-
3131
# Create test data and output directories
3232
mkdir -p aes_outputs
3333
echo "This is test data for AES encryption testing." > aes_outputs/test_data.txt
@@ -42,8 +42,6 @@ else
4242
MODES=("ecb" "cbc" "ctr" "cfb")
4343
fi
4444

45-
echo "=== Running AES Algorithm Comparisons ==="
46-
4745
# Run tests for each key size and mode
4846
for key_size in "${KEY_SIZES[@]}"; do
4947
for mode in "${MODES[@]}"; do

scripts/cmd_test/cmd-test-common.sh

Lines changed: 148 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -17,63 +17,179 @@
1717
# You should have received a copy of the GNU General Public License
1818
# along with wolfProvider. If not, see <http://www.gnu.org/licenses/>.
1919

20+
# Global variables to store wolfProvider installation mode
21+
# Only initialize if not already set (allows parent script to export values)
22+
WOLFPROV_REPLACE_DEFAULT=${WOLFPROV_REPLACE_DEFAULT:-0}
23+
WOLFPROV_FIPS=${WOLFPROV_FIPS:-0}
24+
WOLFPROV_INSTALLED=${WOLFPROV_INSTALLED:-0}
25+
26+
# Function to detect wolfProvider installation mode
27+
detect_wolfprovider_mode() {
28+
if [ -z "${REPO_ROOT:-}" ]; then
29+
REPO_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )"/../.. &> /dev/null && pwd )"
30+
fi
31+
32+
# Get OpenSSL version and initial provider info
33+
local openssl_version=$(${OPENSSL_BIN} version 2>/dev/null)
34+
local openssl_providers=$(${OPENSSL_BIN} list -providers 2>/dev/null)
35+
36+
# Detect if wolfProvider is currently active
37+
if echo "$openssl_providers" | grep -qi "wolfSSL Provider"; then
38+
WOLFPROV_INSTALLED=1
39+
echo "Detected: wolfProvider is currently active"
40+
else
41+
WOLFPROV_INSTALLED=0
42+
echo "Detected: wolfProvider is not currently active"
43+
fi
44+
45+
# Detect if FIPS mode is active
46+
if echo "$openssl_providers" | grep -qi "wolfSSL Provider FIPS"; then
47+
WOLFPROV_FIPS=1
48+
echo "Detected: wolfProvider FIPS mode"
49+
else
50+
WOLFPROV_FIPS=0
51+
echo "Detected: wolfProvider non-FIPS mode"
52+
fi
53+
54+
# Detect replace-default mode
55+
if echo "$openssl_providers" | grep -q "default" && echo "$openssl_providers" | grep -qi "wolfSSL Provider"; then
56+
WOLFPROV_REPLACE_DEFAULT=1
57+
echo "Detected: wolfProvider installed in replace-default mode (provider: default)"
58+
elif echo "$openssl_providers" | grep -qi "libwolfprov"; then
59+
WOLFPROV_REPLACE_DEFAULT=0
60+
echo "Detected: wolfProvider installed in non-replace-default mode (provider: libwolfprov)"
61+
else
62+
WOLFPROV_REPLACE_DEFAULT=0
63+
echo "Detected: wolfProvider not in replace-default mode"
64+
fi
65+
66+
# Print detection summary
67+
echo "wolfProvider mode detection:"
68+
echo " REPLACE_DEFAULT: $WOLFPROV_REPLACE_DEFAULT"
69+
echo " FIPS: $WOLFPROV_FIPS"
70+
echo " INSTALLED: $WOLFPROV_INSTALLED"
71+
}
72+
73+
74+
# Function to setup the environment for the command-line tests
2075
cmd_test_env_setup() {
76+
# OPENSSL_BIN must be set by the caller
77+
if [ -z "${OPENSSL_BIN:-}" ]; then
78+
echo "Error: OPENSSL_BIN environment variable is not set"
79+
exit 1
80+
fi
81+
82+
# Detect wolfProvider installation mode (only if not already detected)
83+
if [ -z "${WOLFPROV_MODE_DETECTED:-}" ]; then
84+
detect_wolfprovider_mode
85+
export WOLFPROV_MODE_DETECTED=1
86+
fi
87+
}
88+
89+
90+
# Individual test setup (called by each test script)
91+
cmd_test_init() {
2192
local log_file_name=$1
2293
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
23-
# Set up environment
94+
95+
# Set up log file
2496
export LOG_FILE="${SCRIPT_DIR}/${log_file_name}"
2597
touch "$LOG_FILE"
2698

27-
# OPENSSL_BIN must be set by the caller
28-
if [ -z "${OPENSSL_BIN:-}" ]; then
29-
echo "Error: OPENSSL_BIN environment variable is not set" | tee -a "$LOG_FILE"
30-
exit 1
31-
fi
99+
# Redirect all output to log file
100+
exec > >(tee -a "$LOG_FILE") 2>&1
32101

33102
# Fail flags
34103
FAIL=0
35104
FORCE_FAIL_PASSED=0
36-
37-
# Get the force fail parameter
38-
if [ "${WOLFPROV_FORCE_FAIL}" = "1" ]; then
39-
echo "Force fail mode enabled"
40-
fi
41-
if [ "${WOLFSSL_ISFIPS}" = "1" ]; then
42-
echo "FIPS mode enabled"
43-
fi
44-
45-
# Print environment for verification
46-
echo "Environment variables:"
47-
echo "OPENSSL_MODULES: ${OPENSSL_MODULES}"
48-
echo "OPENSSL_BIN: ${OPENSSL_BIN}"
49105
}
50106

51107
# Function to use default provider only
52108
use_default_provider() {
53109
unset OPENSSL_MODULES
54110
unset OPENSSL_CONF
55111

56-
# Verify that we are using the default provider
57-
if ${OPENSSL_BIN} list -providers | grep -q "wolfprov"; then
58-
echo "FAIL: unable to switch to default provider, wolfProvider is still active"
59-
exit 1
112+
# Check if wolfProvider is in replace-default mode
113+
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
114+
echo "INFO: wolfProvider is installed in replace-default mode"
115+
echo "INFO: wolfProvider IS the default provider and cannot be switched off"
116+
117+
# Verify that wolfProvider (as default) is active
118+
local providers=$(${OPENSSL_BIN} list -providers 2>/dev/null)
119+
if echo "$providers" | grep -q "default" && echo "$providers" | grep -qi "wolfSSL Provider"; then
120+
echo "Using default provider (wolfProvider in replace-default mode)"
121+
else
122+
echo "FAIL: Expected wolfProvider as default, but provider list doesn't match"
123+
echo "Provider list:"
124+
echo "$providers"
125+
exit 1
126+
fi
127+
else
128+
# In non-replace-default mode, unsetting OPENSSL_MODULES should disable wolfProvider
129+
echo "INFO: wolfProvider is installed in non-replace-default mode"
130+
131+
# Verify that we are using the OpenSSL default provider (not wolfProvider)
132+
local providers=$(${OPENSSL_BIN} list -providers 2>/dev/null)
133+
if echo "$providers" | grep -qi "libwolfprov"; then
134+
echo "FAIL: unable to switch to default provider, wolfProvider is still active"
135+
echo "Provider list:"
136+
echo "$providers"
137+
exit 1
138+
fi
139+
140+
# Check if OpenSSL default provider is active
141+
if echo "$providers" | grep -q "default" && echo "$providers" | grep -qi "OpenSSL Default Provider"; then
142+
echo "Switched to default provider (OpenSSL)"
143+
else
144+
echo "FAIL: Expected OpenSSL Default Provider, but provider list doesn't match"
145+
echo "Provider list:"
146+
echo "$providers"
147+
exit 1
148+
fi
60149
fi
61-
echo "Switched to default provider"
62150
}
63151

152+
64153
# Function to use wolf provider only
65154
use_wolf_provider() {
66-
export OPENSSL_MODULES=$WOLFPROV_PATH
67-
export OPENSSL_CONF=${WOLFPROV_CONFIG}
155+
# Check if wolfProvider is in replace-default mode
156+
if [ "$WOLFPROV_REPLACE_DEFAULT" = "1" ]; then
157+
# In replace-default mode, wolfProvider is already the default
158+
# No need to set OPENSSL_MODULES or OPENSSL_CONF
159+
echo "INFO: wolfProvider is installed in replace-default mode"
160+
echo "INFO: wolfProvider is already active as the default provider"
68161

69-
# Verify that we are using wolfProvider
70-
if ! ${OPENSSL_BIN} list -providers | grep -q "wolfprov"; then
71-
echo "FAIL: unable to switch to wolfProvider, default provider is still active"
72-
exit 1
162+
# Verify that wolfProvider is active
163+
local providers=$(${OPENSSL_BIN} list -providers 2>/dev/null)
164+
if echo "$providers" | grep -qi "wolfSSL Provider"; then
165+
echo "Using wolfProvider (replace-default mode)"
166+
else
167+
echo "FAIL: wolfProvider is not active"
168+
echo "Provider list:"
169+
echo "$providers"
170+
exit 1
171+
fi
172+
else
173+
# In non-replace-default mode, we need to set OPENSSL_MODULES and OPENSSL_CONF
174+
echo "INFO: wolfProvider is installed in non-replace-default mode"
175+
export OPENSSL_MODULES=$WOLFPROV_PATH
176+
export OPENSSL_CONF=${WOLFPROV_CONFIG}
177+
178+
# Verify that we are using wolfProvider
179+
local providers=$(${OPENSSL_BIN} list -providers 2>/dev/null)
180+
if ! echo "$providers" | grep -qi "wolfprov"; then
181+
echo "FAIL: unable to switch to wolfProvider, default provider is still active"
182+
echo "Provider list:"
183+
echo "$providers"
184+
echo "OPENSSL_MODULES: $OPENSSL_MODULES"
185+
echo "OPENSSL_CONF: $OPENSSL_CONF"
186+
exit 1
187+
fi
188+
echo "Switched to wolfProvider"
73189
fi
74-
echo "Switched to wolfProvider"
75190
}
76191

192+
77193
# Helper function to handle force fail checks
78194
check_force_fail() {
79195
if [ "${WOLFPROV_FORCE_FAIL}" = "1" ]; then
@@ -82,6 +198,7 @@ check_force_fail() {
82198
fi
83199
}
84200

201+
85202
# Helper function to get provider name from provider arguments
86203
get_provider_name() {
87204
local provider_args=$1

0 commit comments

Comments
 (0)