52 lines
1.4 KiB
Bash
Executable File
52 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Test that the version number is provided correctly in a frozen (bundled)
|
|
# executable (see #1044).
|
|
|
|
set -e
|
|
|
|
# Get the directory of the current repository
|
|
MPMATH_DIR="$(realpath "$(dirname "$0")/../../")"
|
|
echo "Repo mpmath directory: $MPMATH_DIR"
|
|
|
|
echo "Install requirements..."
|
|
python3 -m pip install build pyinstaller
|
|
|
|
echo "Building the source distribution from the local repo..."
|
|
python3 -m build --sdist
|
|
|
|
# Find and install the generated tarball
|
|
TARBALL=$(ls -t dist/*.tar.gz | head -1)
|
|
echo "Generated tarball: $TARBALL"
|
|
|
|
echo "Installing mpmath from tarball..."
|
|
pip install dist/"$(basename $TARBALL)"
|
|
|
|
TEMP_DIR=$(mktemp -d)
|
|
echo "Created temporary directory: $TEMP_DIR"
|
|
cd "$TEMP_DIR"
|
|
|
|
# Create version_script.py that prints the package version
|
|
cat << EOF > version_script.py
|
|
import mpmath
|
|
print(mpmath.__version__)
|
|
EOF
|
|
|
|
# Save local version for later comparison
|
|
DIRECT_VERSION="$(python3 -m mpmath --version)"
|
|
|
|
echo "Building version_script with PyInstaller..."
|
|
pyinstaller --onefile --clean version_script.py
|
|
|
|
echo "Run frozen executable and extract the version from the output..."
|
|
FROZEN_VERSION="$(./dist/version_script 2>&1)"
|
|
|
|
if [ "$DIRECT_VERSION" == "$FROZEN_VERSION" ]; then
|
|
echo "Test passed: Version matches in frozen (bundled) executable."
|
|
else
|
|
echo "Test failed: Version mismatch."
|
|
echo "Direct version: $DIRECT_VERSION"
|
|
echo "Frozen version: $FROZEN_VERSION"
|
|
exit 1
|
|
fi
|