mirror of
https://github.com/pyenv/pyenv.git
synced 2025-11-08 11:33:49 -05:00
Merge pull request #3324 from rockandska/bats_in_docker
Bats test suite in docker
This commit is contained in:
9
.github/workflows/pyenv_tests.yml
vendored
9
.github/workflows/pyenv_tests.yml
vendored
@@ -40,10 +40,15 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
echo $PYENV_ROOT
|
echo $PYENV_ROOT
|
||||||
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH
|
||||||
- run: |
|
- name: Run test on the host
|
||||||
|
run: |
|
||||||
make test
|
make test
|
||||||
|
- name: Run test with docker
|
||||||
|
if: ${{ ! contains(matrix.os, 'macos') }}
|
||||||
|
run: |
|
||||||
|
make test-docker
|
||||||
- env:
|
- env:
|
||||||
PYENV_NATIVE_EXT: 1
|
PYENV_NATIVE_EXT: 1
|
||||||
run: |
|
run: |
|
||||||
(cd src; ./configure; make)
|
(cd src; ./configure; make)
|
||||||
bats/bin/bats test/{pyenv,hooks,versions}.bats
|
bats/bin/bats test/{pyenv,hooks,versions}.bats
|
||||||
|
|||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -6,7 +6,8 @@
|
|||||||
/libexec/*.dylib
|
/libexec/*.dylib
|
||||||
/src/Makefile
|
/src/Makefile
|
||||||
/src/*.o
|
/src/*.o
|
||||||
/bats/
|
/bats
|
||||||
|
/bats-*/
|
||||||
/default-packages
|
/default-packages
|
||||||
.idea
|
.idea
|
||||||
*.un~
|
*.un~
|
||||||
|
|||||||
96
Makefile
96
Makefile
@@ -1,3 +1,86 @@
|
|||||||
|
TEST_BATS_VERSION = v1.10.0
|
||||||
|
TEST_BASH_VERSIONS = 3.2.57 4.1.17
|
||||||
|
TEST_UNIT_DOCKER_PREFIX = test-unit-docker
|
||||||
|
TEST_UNIT_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_UNIT_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_UNIT_DOCKER_PREFIX)))
|
||||||
|
TEST_PLUGIN_DOCKER_PREFIX = test-plugin-docker
|
||||||
|
TEST_PLUGIN_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_PLUGIN_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_PLUGIN_DOCKER_PREFIX)))
|
||||||
|
TEST_BATS_IMAGE_PREFIX = test-pyenv-docker-image
|
||||||
|
TEST_BATS_IMAGE_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BATS_IMAGE_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BATS_IMAGE_PREFIX)))
|
||||||
|
|
||||||
|
.PHONY:
|
||||||
|
test-docker: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_PLUGIN_DOCKER_PREFIX)
|
||||||
|
|
||||||
|
# Run all unit test under bats docker
|
||||||
|
.PHONY: $(TEST_UNIT_DOCKER_PREFIX)
|
||||||
|
$(TEST_UNIT_DOCKER_PREFIX): $(TEST_UNIT_DOCKER_TARGETS)
|
||||||
|
|
||||||
|
# Run each unit test under bats docker
|
||||||
|
.PHONY: $(TEST_UNIT_DOCKER_TARGETS)
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
|
||||||
|
$(TEST_UNIT_DOCKER_TARGETS): $(TEST_UNIT_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
|
||||||
|
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
|
||||||
|
docker run \
|
||||||
|
--init \
|
||||||
|
-v $(PWD):/code:ro \
|
||||||
|
-v /etc/passwd:/etc/passwd:ro \
|
||||||
|
-v /etc/group:/etc/group:ro \
|
||||||
|
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
|
||||||
|
$${BATS_TEST_FILTER:+-e BATS_TEST_FILTER="$${BATS_TEST_FILTER}"} \
|
||||||
|
$${BATS_FILE_FILTER:+-e BATS_FILE_FILTER="$${BATS_FILE_FILTER}"} \
|
||||||
|
$${CI+-e CI="$${CI}"} \
|
||||||
|
$(INTERACTIVE) \
|
||||||
|
$(DOCKER_IMAGE):$(DOCKER_TAG) \
|
||||||
|
test/run
|
||||||
|
|
||||||
|
# Run all plugin test under bats docker
|
||||||
|
.PHONY: $(TEST_PLUGIN_DOCKER_PREFIX)
|
||||||
|
$(TEST_PLUGIN_DOCKER_PREFIX): $(TEST_PLUGIN_DOCKER_TARGETS)
|
||||||
|
|
||||||
|
# Run each plugin test under bats docker
|
||||||
|
.PHONY: $(TEST_PLUGIN_DOCKER_TARGETS)
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti)
|
||||||
|
$(TEST_PLUGIN_DOCKER_TARGETS): $(TEST_PLUGIN_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-%
|
||||||
|
$(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
|
||||||
|
docker run \
|
||||||
|
--init \
|
||||||
|
-v $(PWD):/code:ro \
|
||||||
|
-v /etc/passwd:/etc/passwd:ro \
|
||||||
|
-v /etc/group:/etc/group:ro \
|
||||||
|
-u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \
|
||||||
|
$${CI+-e CI="$${CI}"} \
|
||||||
|
$(INTERACTIVE) \
|
||||||
|
$(DOCKER_IMAGE):$(DOCKER_TAG) \
|
||||||
|
bats $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/python-build/test/$${BATS_FILE_FILTER}
|
||||||
|
|
||||||
|
# Build all images needed for bats under docker
|
||||||
|
.PHONY: $(TEST_BATS_IMAGE_PREFIX)
|
||||||
|
$(TEST_BATS_IMAGE_PREFIX): $(TEST_BATS_IMAGE_TARGETS)
|
||||||
|
|
||||||
|
# Build each image needed for bats under docker
|
||||||
|
.PHONY: $(TEST_BATS_IMAGE_TARGETS)
|
||||||
|
$(TEST_BATS_IMAGE_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX)
|
||||||
|
$(TEST_BATS_IMAGE_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False)
|
||||||
|
$(TEST_BATS_IMAGE_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@))
|
||||||
|
$(TEST_BATS_IMAGE_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU)
|
||||||
|
$(TEST_BATS_IMAGE_TARGETS):
|
||||||
|
$(info Building docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)')
|
||||||
|
docker build \
|
||||||
|
--quiet \
|
||||||
|
-f "$(PWD)/test/Dockerfile" \
|
||||||
|
--build-arg GNU="$(GNU)" \
|
||||||
|
--build-arg BASH="$(BASH)" \
|
||||||
|
--build-arg BATS_VERSION="$(TEST_BATS_VERSION)" \
|
||||||
|
-t $(DOCKER_IMAGE):$(DOCKER_TAG) \
|
||||||
|
./
|
||||||
|
|
||||||
.PHONY: test test-build test-unit test-plugin
|
.PHONY: test test-build test-unit test-plugin
|
||||||
|
|
||||||
# Do not pass in user flags to build tests.
|
# Do not pass in user flags to build tests.
|
||||||
@@ -10,7 +93,7 @@ test-unit: bats
|
|||||||
PATH="./bats/bin:$$PATH" test/run
|
PATH="./bats/bin:$$PATH" test/run
|
||||||
|
|
||||||
test-plugin: bats
|
test-plugin: bats
|
||||||
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test
|
cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER}
|
||||||
|
|
||||||
PYTHON_BUILD_ROOT := $(CURDIR)/plugins/python-build
|
PYTHON_BUILD_ROOT := $(CURDIR)/plugins/python-build
|
||||||
PYTHON_BUILD_OPTS ?= --verbose
|
PYTHON_BUILD_OPTS ?= --verbose
|
||||||
@@ -25,5 +108,12 @@ test-build:
|
|||||||
[ -e $(PYTHON_BUILD_TEST_PREFIX)/bin/pip ]
|
[ -e $(PYTHON_BUILD_TEST_PREFIX)/bin/pip ]
|
||||||
$(PYTHON_BUILD_TEST_PREFIX)/bin/pip -V
|
$(PYTHON_BUILD_TEST_PREFIX)/bin/pip -V
|
||||||
|
|
||||||
bats:
|
.SECONDARY: bats-$(TEST_BATS_VERSION)
|
||||||
git clone --depth 1 --branch v1.2.0 https://github.com/bats-core/bats-core.git bats
|
bats-$(TEST_BATS_VERSION):
|
||||||
|
rm -rf bats
|
||||||
|
ln -sf bats-$(TEST_BATS_VERSION) bats
|
||||||
|
git clone --depth 1 --branch $(TEST_BATS_VERSION) https://github.com/bats-core/bats-core.git bats-$(TEST_BATS_VERSION)
|
||||||
|
|
||||||
|
.PHONY: bats
|
||||||
|
bats: bats-$(TEST_BATS_VERSION)
|
||||||
|
ln -sf bats-$(TEST_BATS_VERSION) bats
|
||||||
|
|||||||
@@ -47,7 +47,11 @@ done
|
|||||||
|
|
||||||
# If shell is not provided, detect it.
|
# If shell is not provided, detect it.
|
||||||
if [ -z "$shell" ]; then
|
if [ -z "$shell" ]; then
|
||||||
shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)"
|
if shell=$(tr '\0' ' ' 2>/dev/null </proc/"$PPID"/cmdline);then
|
||||||
|
:
|
||||||
|
else
|
||||||
|
shell=$(ps p "$PPID" -o 'args=' 2>/dev/null || true)
|
||||||
|
fi
|
||||||
shell="${shell%% *}"
|
shell="${shell%% *}"
|
||||||
shell="${shell##-}"
|
shell="${shell##-}"
|
||||||
shell="${shell:-$SHELL}"
|
shell="${shell:-$SHELL}"
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ load test_helper
|
|||||||
|
|
||||||
@test "not enough arguments for python-build" {
|
@test "not enough arguments for python-build" {
|
||||||
# use empty inline definition so nothing gets built anyway
|
# use empty inline definition so nothing gets built anyway
|
||||||
local definition="${TMP}/build-definition"
|
local definition="${BATS_TEST_TMPDIR}/build-definition"
|
||||||
echo '' > "$definition"
|
echo '' > "$definition"
|
||||||
|
|
||||||
run python-build "$definition"
|
run python-build "$definition"
|
||||||
@@ -14,10 +14,10 @@ load test_helper
|
|||||||
|
|
||||||
@test "extra arguments for python-build" {
|
@test "extra arguments for python-build" {
|
||||||
# use empty inline definition so nothing gets built anyway
|
# use empty inline definition so nothing gets built anyway
|
||||||
local definition="${TMP}/build-definition"
|
local definition="${BATS_TEST_TMPDIR}/build-definition"
|
||||||
echo '' > "$definition"
|
echo '' > "$definition"
|
||||||
|
|
||||||
run python-build "$definition" "${TMP}/install" ""
|
run python-build "$definition" "${BATS_TEST_TMPDIR}/install" ""
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output_contains 'Usage: python-build'
|
assert_output_contains 'Usage: python-build'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
|
_setup() {
|
||||||
export MAKE=make
|
export PYTHON_BUILD_CACHE_PATH="$BATS_TEST_TMPDIR/cache"
|
||||||
export MAKE_OPTS="-j 2"
|
export MAKE=make
|
||||||
export CC=cc
|
export MAKE_OPTS="-j 2"
|
||||||
export -n PYTHON_CONFIGURE_OPTS
|
export CC=cc
|
||||||
|
export -n PYTHON_CONFIGURE_OPTS
|
||||||
|
|
||||||
setup() {
|
|
||||||
mkdir -p "$INSTALL_ROOT"
|
mkdir -p "$INSTALL_ROOT"
|
||||||
stub md5 false
|
stub md5 false
|
||||||
stub curl false
|
stub curl false
|
||||||
@@ -74,11 +74,11 @@ assert_build_log() {
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -117,11 +117,11 @@ OUT
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CFLAGS="yaml_cflag1 yaml_cflag2" CPPFLAGS="-I${TMP}/install/include yaml_cppflag1 yaml_cppflag2" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib yaml_ldflag1 yaml_ldflag2" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="yaml_cflag1 yaml_cflag2" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include yaml_cppflag1 yaml_cppflag2" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib yaml_ldflag1 yaml_ldflag2" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=yaml_prefix_path configure_opt1 configure_opt2 yaml_configure_opt1 yaml_configure_opt2
|
yaml-0.1.6: --prefix=yaml_prefix_path configure_opt1 configure_opt2 yaml_configure_opt1 yaml_configure_opt2
|
||||||
make make_opt1 make_opt2 yaml_make_opt1 yaml_make_opt2
|
make make_opt1 make_opt2 yaml_make_opt1 yaml_make_opt2
|
||||||
make install make_install_opt1 make_install_opt2
|
make install make_install_opt1 make_install_opt2
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib configure_opt1 configure_opt2
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib configure_opt1 configure_opt2
|
||||||
make make_opt1 make_opt2
|
make make_opt1 make_opt2
|
||||||
make python_make_install_target make_install_opt1 make_install_opt2 python_make_install_opt1 python_make_install_opt2
|
make python_make_install_target make_install_opt1 make_install_opt2 python_make_install_opt1 python_make_install_opt2
|
||||||
@@ -138,7 +138,7 @@ OUT
|
|||||||
stub_make_install
|
stub_make_install
|
||||||
stub patch ' : echo patch "$@" | sed -E "s/\.[[:alnum:]]+$/.XXX/" >> build.log'
|
stub patch ' : echo patch "$@" | sed -E "s/\.[[:alnum:]]+$/.XXX/" >> build.log'
|
||||||
|
|
||||||
TMPDIR="$TMP" install_fixture --patch definitions/needs-yaml <<<""
|
TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<""
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
unstub uname
|
unstub uname
|
||||||
@@ -146,12 +146,12 @@ OUT
|
|||||||
unstub patch
|
unstub patch
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
patch -p0 --force -i $TMP/python-patch.XXX
|
patch -p0 --force -i $BATS_TEST_TMPDIR/python-patch.XXX
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -168,7 +168,7 @@ OUT
|
|||||||
stub_make_install
|
stub_make_install
|
||||||
stub patch ' : echo patch "$@" | sed -E "s/\.[[:alnum:]]+$/.XXX/" >> build.log'
|
stub patch ' : echo patch "$@" | sed -E "s/\.[[:alnum:]]+$/.XXX/" >> build.log'
|
||||||
|
|
||||||
TMPDIR="$TMP" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py"
|
TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py"
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
unstub uname
|
unstub uname
|
||||||
@@ -176,12 +176,12 @@ OUT
|
|||||||
unstub patch
|
unstub patch
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
yaml-0.1.6: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
yaml-0.1.6: --prefix=$INSTALL_ROOT
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
patch -p1 --force -i $TMP/python-patch.XXX
|
patch -p1 --force -i $BATS_TEST_TMPDIR/python-patch.XXX
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -191,7 +191,7 @@ OUT
|
|||||||
@test "Homebrew and port are tried if both are present in PATH in MacOS" {
|
@test "Homebrew and port are tried if both are present in PATH in MacOS" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
BREW_PREFIX="$TMP/homebrew-prefix"
|
BREW_PREFIX="$BATS_TEST_TMPDIR/homebrew-prefix"
|
||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 1010'
|
stub sw_vers '-productVersion : echo 1010'
|
||||||
@@ -213,7 +213,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -223,7 +223,7 @@ OUT
|
|||||||
@test "homebrew with uncommon prefix is added to search path" {
|
@test "homebrew with uncommon prefix is added to search path" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
BREW_PREFIX="$TMP/homebrew-prefix"
|
BREW_PREFIX="$BATS_TEST_TMPDIR/homebrew-prefix"
|
||||||
mkdir -p "$BREW_PREFIX"
|
mkdir -p "$BREW_PREFIX"
|
||||||
export PYTHON_BUILD_SKIP_MACPORTS=1
|
export PYTHON_BUILD_SKIP_MACPORTS=1
|
||||||
|
|
||||||
@@ -244,7 +244,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -254,7 +254,7 @@ OUT
|
|||||||
@test "Macports are used in MacOS if Homebrew was not picked" {
|
@test "Macports are used in MacOS if Homebrew was not picked" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
BREW_PREFIX="$TMP/homebrew-prefix"
|
BREW_PREFIX="$BATS_TEST_TMPDIR/homebrew-prefix"
|
||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 1010'
|
stub sw_vers '-productVersion : echo 1010'
|
||||||
@@ -275,7 +275,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$PORT_PREFIX/include -I${TMP}/install/include" LDFLAGS="-L$PORT_PREFIX/lib -Wl,-rpath,$PORT_PREFIX/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$PORT_PREFIX/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L$PORT_PREFIX/lib -Wl,-rpath,$PORT_PREFIX/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -285,7 +285,7 @@ OUT
|
|||||||
@test "yaml is linked from Homebrew" {
|
@test "yaml is linked from Homebrew" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
brew_libdir="$TMP/homebrew-yaml"
|
brew_libdir="$BATS_TEST_TMPDIR/homebrew-yaml"
|
||||||
mkdir -p "$brew_libdir"
|
mkdir -p "$brew_libdir"
|
||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
@@ -303,7 +303,7 @@ OUT
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$brew_libdir/include -I${TMP}/install/include" LDFLAGS="-L$brew_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$brew_libdir/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L$brew_libdir/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -313,7 +313,7 @@ OUT
|
|||||||
@test "readline is linked from Homebrew" {
|
@test "readline is linked from Homebrew" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
readline_libdir="$TMP/homebrew-readline"
|
readline_libdir="$BATS_TEST_TMPDIR/homebrew-readline"
|
||||||
mkdir -p "$readline_libdir"
|
mkdir -p "$readline_libdir"
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 1010'
|
stub sw_vers '-productVersion : echo 1010'
|
||||||
@@ -333,7 +333,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$readline_libdir/include -I${TMP}/install/include" LDFLAGS="-L$readline_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$readline_libdir/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L$readline_libdir/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -343,7 +343,7 @@ OUT
|
|||||||
@test "ncurses is linked from Homebrew" {
|
@test "ncurses is linked from Homebrew" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
ncurses_libdir="$TMP/homebrew-ncurses"
|
ncurses_libdir="$BATS_TEST_TMPDIR/homebrew-ncurses"
|
||||||
mkdir -p "$ncurses_libdir"
|
mkdir -p "$ncurses_libdir"
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 1010'
|
stub sw_vers '-productVersion : echo 1010'
|
||||||
@@ -363,7 +363,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$ncurses_libdir/include -I${TMP}/install/include" LDFLAGS="-L$ncurses_libdir/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I$ncurses_libdir/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L$ncurses_libdir/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -378,6 +378,9 @@ OUT
|
|||||||
stub port "-q installed libyaml : echo ' libyaml @0.2.5_0 (active)'"
|
stub port "-q installed libyaml : echo ' libyaml @0.2.5_0 (active)'"
|
||||||
for i in {1..3}; do stub port false; done
|
for i in {1..3}; do stub port false; done
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
export PYTHON_BUILD_SKIP_HOMEBREW=1
|
||||||
|
PORT_PREFIX="$(which port)"
|
||||||
|
PORT_PREFIX="${PORT_PREFIX%/bin/port}"
|
||||||
|
|
||||||
install_fixture definitions/needs-yaml
|
install_fixture definitions/needs-yaml
|
||||||
assert_success
|
assert_success
|
||||||
@@ -388,7 +391,7 @@ OUT
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/include -I${TMP}/install/include" LDFLAGS="-L${TMP}/lib -Wl,-rpath,${TMP}/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -403,6 +406,9 @@ OUT
|
|||||||
stub port "-q installed readline : echo ' readline @8.2.013_0 (active)'"
|
stub port "-q installed readline : echo ' readline @8.2.013_0 (active)'"
|
||||||
for i in {1..2}; do stub port false; done
|
for i in {1..2}; do stub port false; done
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
export PYTHON_BUILD_SKIP_HOMEBREW=1
|
||||||
|
PORT_PREFIX="$(which port)"
|
||||||
|
PORT_PREFIX="${PORT_PREFIX%/bin/port}"
|
||||||
|
|
||||||
run_inline_definition <<DEF
|
run_inline_definition <<DEF
|
||||||
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
||||||
@@ -415,7 +421,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/include -I${TMP}/install/include" LDFLAGS="-L${TMP}/lib -Wl,-rpath,${TMP}/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -431,6 +437,9 @@ OUT
|
|||||||
stub port "-q installed ncurses : echo '$ncurses_libdir'"
|
stub port "-q installed ncurses : echo '$ncurses_libdir'"
|
||||||
stub port false
|
stub port false
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
export PYTHON_BUILD_SKIP_HOMEBREW=1
|
||||||
|
PORT_PREFIX="$(which port)"
|
||||||
|
PORT_PREFIX="${PORT_PREFIX%/bin/port}"
|
||||||
|
|
||||||
run_inline_definition <<DEF
|
run_inline_definition <<DEF
|
||||||
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
||||||
@@ -443,7 +452,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/include -I${TMP}/install/include" LDFLAGS="-L${TMP}/lib -Wl,-rpath,${TMP}/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -474,7 +483,7 @@ DEF
|
|||||||
unstub sysctl
|
unstub sysctl
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-openssl=/usr/local
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-openssl=/usr/local
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -508,7 +517,7 @@ DEF
|
|||||||
unstub sysctl
|
unstub sysctl
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I/usr/local/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include -I/usr/local/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib -L/usr/local/lib -Wl,-rpath,/usr/local/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -538,7 +547,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -565,7 +574,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -589,7 +598,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -617,7 +626,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/include -I${TMP}/install/include" LDFLAGS="-L${TMP}/lib -Wl,-rpath,${TMP}/lib -L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/include -I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/lib -L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -627,7 +636,7 @@ OUT
|
|||||||
@test "homebrew is used in Linux if PYTHON_BUILD_USE_HOMEBREW is set" {
|
@test "homebrew is used in Linux if PYTHON_BUILD_USE_HOMEBREW is set" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
BREW_PREFIX="$TMP/homebrew-prefix"
|
BREW_PREFIX="$BATS_TEST_TMPDIR/homebrew-prefix"
|
||||||
mkdir -p "$BREW_PREFIX"
|
mkdir -p "$BREW_PREFIX"
|
||||||
|
|
||||||
stub uname '-s : echo Linux'
|
stub uname '-s : echo Linux'
|
||||||
@@ -646,7 +655,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -676,7 +685,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include -I$BREW_PREFIX/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib -L$BREW_PREFIX/lib -Wl,-rpath,$BREW_PREFIX/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -686,7 +695,7 @@ OUT
|
|||||||
@test "homebrew is not used in Linux if Pyenv is not installed with Homebrew" {
|
@test "homebrew is not used in Linux if Pyenv is not installed with Homebrew" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
BREW_PREFIX="$TMP/homebrew-prefix"
|
BREW_PREFIX="$BATS_TEST_TMPDIR/homebrew-prefix"
|
||||||
mkdir -p "$BREW_PREFIX"
|
mkdir -p "$BREW_PREFIX"
|
||||||
|
|
||||||
stub uname '-s : echo Linux'
|
stub uname '-s : echo Linux'
|
||||||
@@ -703,7 +712,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -713,7 +722,7 @@ OUT
|
|||||||
@test "readline is not linked from Homebrew when explicitly defined" {
|
@test "readline is not linked from Homebrew when explicitly defined" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
readline_libdir="$TMP/custom"
|
readline_libdir="$BATS_TEST_TMPDIR/custom"
|
||||||
mkdir -p "$readline_libdir/include/readline"
|
mkdir -p "$readline_libdir/include/readline"
|
||||||
touch "$readline_libdir/include/readline/rlconf.h"
|
touch "$readline_libdir/include/readline/rlconf.h"
|
||||||
|
|
||||||
@@ -735,7 +744,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -745,7 +754,7 @@ OUT
|
|||||||
@test "tcl-tk is linked from Homebrew" {
|
@test "tcl-tk is linked from Homebrew" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
tcl_tk_version=8.6
|
tcl_tk_version=8.6
|
||||||
tcl_tk_libdir="$TMP/homebrew-tcl-tk"
|
tcl_tk_libdir="$BATS_TEST_TMPDIR/homebrew-tcl-tk"
|
||||||
mkdir -p "$tcl_tk_libdir/lib"
|
mkdir -p "$tcl_tk_libdir/lib"
|
||||||
echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh"
|
echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh"
|
||||||
|
|
||||||
@@ -768,8 +777,8 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/homebrew-tcl-tk/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib --with-tcltk-libs=-L${TMP}/homebrew-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version --with-tcltk-includes=-I${TMP}/homebrew-tcl-tk/include
|
Python-3.6.2: --prefix=${BATS_TEST_TMPDIR}/install --enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib --with-tcltk-libs=-L${BATS_TEST_TMPDIR}/homebrew-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version --with-tcltk-includes=-I${BATS_TEST_TMPDIR}/homebrew-tcl-tk/include
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
@@ -788,7 +797,7 @@ OUT
|
|||||||
for i in {1..4}; do stub brew false; done
|
for i in {1..4}; do stub brew false; done
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
|
||||||
export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'"
|
export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${BATS_TEST_TMPDIR}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'"
|
||||||
run_inline_definition <<DEF
|
run_inline_definition <<DEF
|
||||||
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
||||||
DEF
|
DEF
|
||||||
@@ -800,8 +809,8 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-tcltk-libs=-L${TMP}/custom-tcl-tk/lib -ltcl8.6 -ltk8.6
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --with-tcltk-libs=-L${BATS_TEST_TMPDIR}/custom-tcl-tk/lib -ltcl8.6 -ltk8.6
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
@@ -813,7 +822,7 @@ OUT
|
|||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 1010'
|
stub sw_vers '-productVersion : echo 1010'
|
||||||
|
|
||||||
tcl_tk_libdir="$TMP/homebrew-tcl-tk"
|
tcl_tk_libdir="$BATS_TEST_TMPDIR/homebrew-tcl-tk"
|
||||||
mkdir -p "$tcl_tk_libdir/lib"
|
mkdir -p "$tcl_tk_libdir/lib"
|
||||||
|
|
||||||
stub brew "--prefix tcl-tk@8 : echo '${tcl_tk_libdir}'"
|
stub brew "--prefix tcl-tk@8 : echo '${tcl_tk_libdir}'"
|
||||||
@@ -833,8 +842,8 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH="${TMP}/homebrew-tcl-tk/lib/pkgconfig"
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH="${BATS_TEST_TMPDIR}/homebrew-tcl-tk/lib/pkgconfig"
|
||||||
Python-3.6.2: --prefix=${TMP}/install --enable-shared --libdir=${TMP}/install/lib
|
Python-3.6.2: --prefix=${BATS_TEST_TMPDIR}/install --enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
@@ -845,6 +854,7 @@ OUT
|
|||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
|
for i in {1..6}; do stub brew false; done
|
||||||
|
|
||||||
stub sysctl false
|
stub sysctl false
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -857,10 +867,11 @@ DEF
|
|||||||
|
|
||||||
unstub uname
|
unstub uname
|
||||||
unstub sw_vers
|
unstub sw_vers
|
||||||
|
unstub brew
|
||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -872,6 +883,7 @@ OUT
|
|||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
|
for i in {1..6}; do stub brew false; done
|
||||||
|
|
||||||
stub sysctl '-n hw.ncpu : echo 4'
|
stub sysctl '-n hw.ncpu : echo 4'
|
||||||
stub_make_install
|
stub_make_install
|
||||||
@@ -884,11 +896,12 @@ DEF
|
|||||||
|
|
||||||
unstub uname
|
unstub uname
|
||||||
unstub sw_vers
|
unstub sw_vers
|
||||||
|
unstub brew
|
||||||
unstub sysctl
|
unstub sysctl
|
||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 4
|
make -j 4
|
||||||
make install
|
make install
|
||||||
@@ -916,7 +929,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 1
|
make -j 1
|
||||||
make install
|
make install
|
||||||
@@ -940,7 +953,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install DOGE="such wow"
|
make install DOGE="such wow"
|
||||||
@@ -964,7 +977,7 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib --disable-shared
|
Python-3.6.2: --prefix=$INSTALL_ROOT --libdir=$INSTALL_ROOT/lib --disable-shared
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -991,8 +1004,8 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib --with-dsymutil
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib --with-dsymutil
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
@@ -1014,8 +1027,8 @@ DEF
|
|||||||
unstub make
|
unstub make
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
OUT
|
OUT
|
||||||
@@ -1024,7 +1037,7 @@ OUT
|
|||||||
@test "custom relative install destination" {
|
@test "custom relative install destination" {
|
||||||
export PYTHON_BUILD_CACHE_PATH="$FIXTURE_ROOT"
|
export PYTHON_BUILD_CACHE_PATH="$FIXTURE_ROOT"
|
||||||
|
|
||||||
cd "$TMP"
|
cd "$BATS_TEST_TMPDIR"
|
||||||
install_fixture definitions/without-checksum ./here
|
install_fixture definitions/without-checksum ./here
|
||||||
assert_success
|
assert_success
|
||||||
assert [ -x ./here/bin/package ]
|
assert [ -x ./here/bin/package ]
|
||||||
@@ -1076,7 +1089,7 @@ OUT
|
|||||||
@test "can use PYTHON_CONFIGURE to apply a patch" {
|
@test "can use PYTHON_CONFIGURE to apply a patch" {
|
||||||
cached_tarball "Python-3.6.2"
|
cached_tarball "Python-3.6.2"
|
||||||
|
|
||||||
executable "${TMP}/custom-configure" <<CONF
|
executable "${BATS_TEST_TMPDIR}/custom-configure" <<CONF
|
||||||
#!$BASH
|
#!$BASH
|
||||||
apply -p1 -i /my/patch.diff
|
apply -p1 -i /my/patch.diff
|
||||||
exec ./configure "\$@"
|
exec ./configure "\$@"
|
||||||
@@ -1086,7 +1099,7 @@ CONF
|
|||||||
stub apply 'echo apply "$@" >> build.log'
|
stub apply 'echo apply "$@" >> build.log'
|
||||||
stub_make_install
|
stub_make_install
|
||||||
|
|
||||||
export PYTHON_CONFIGURE="${TMP}/custom-configure"
|
export PYTHON_CONFIGURE="${BATS_TEST_TMPDIR}/custom-configure"
|
||||||
run_inline_definition <<DEF
|
run_inline_definition <<DEF
|
||||||
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2.tar.gz"
|
||||||
DEF
|
DEF
|
||||||
@@ -1098,7 +1111,7 @@ DEF
|
|||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
apply -p1 -i /my/patch.diff
|
apply -p1 -i /my/patch.diff
|
||||||
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib" PKG_CONFIG_PATH=""
|
Python-3.6.2: CFLAGS="" CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib" PKG_CONFIG_PATH=""
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -1119,22 +1132,22 @@ OUT
|
|||||||
assert_success "hello world"
|
assert_success "hello world"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "non-writable TMPDIR aborts build" {
|
@test "non-writable BATS_TEST_TMPDIRDIR aborts build" {
|
||||||
export TMPDIR="${TMP}/build"
|
export TMPDIR="${BATS_TEST_TMPDIR}/build"
|
||||||
mkdir -p "$TMPDIR"
|
mkdir -p "$TMPDIR"
|
||||||
chmod -w "$TMPDIR"
|
chmod -w "$TMPDIR"
|
||||||
|
|
||||||
touch "${TMP}/build-definition"
|
touch "${BATS_TEST_TMPDIR}/build-definition"
|
||||||
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT"
|
||||||
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "non-executable TMPDIR aborts build" {
|
@test "non-executable TMPDIR aborts build" {
|
||||||
export TMPDIR="${TMP}/build"
|
export TMPDIR="${BATS_TEST_TMPDIR}/build"
|
||||||
mkdir -p "$TMPDIR"
|
mkdir -p "$TMPDIR"
|
||||||
chmod -x "$TMPDIR"
|
chmod -x "$TMPDIR"
|
||||||
|
|
||||||
touch "${TMP}/build-definition"
|
touch "${BATS_TEST_TMPDIR}/build-definition"
|
||||||
run python-build "${TMP}/build-definition" "$INSTALL_ROOT"
|
run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT"
|
||||||
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYTHON_BUILD_SKIP_MIRROR=1
|
_setup() {
|
||||||
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
|
export PYTHON_BUILD_SKIP_MIRROR=1
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$BATS_TEST_TMPDIR/cache"
|
||||||
setup() {
|
|
||||||
mkdir "$PYTHON_BUILD_CACHE_PATH"
|
mkdir "$PYTHON_BUILD_CACHE_PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,7 +76,7 @@ setup() {
|
|||||||
@test "nonexistent cache directory is ignored" {
|
@test "nonexistent cache directory is ignored" {
|
||||||
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
|
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
|
||||||
|
|
||||||
export PYTHON_BUILD_CACHE_PATH="${TMP}/nonexistent"
|
export PYTHON_BUILD_CACHE_PATH="${BATS_TEST_TMPDIR}/nonexistent"
|
||||||
|
|
||||||
install_fixture definitions/without-checksum
|
install_fixture definitions/without-checksum
|
||||||
|
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ export PYTHON_BUILD_CACHE_PATH=
|
|||||||
stub wget false
|
stub wget false
|
||||||
|
|
||||||
export -n PYTHON_BUILD_CACHE_PATH
|
export -n PYTHON_BUILD_CACHE_PATH
|
||||||
export PYTHON_BUILD_BUILD_PATH="${TMP}/build"
|
export PYTHON_BUILD_BUILD_PATH="${BATS_TEST_TMPDIR}/build"
|
||||||
|
|
||||||
mkdir -p "$PYTHON_BUILD_BUILD_PATH"
|
mkdir -p "$PYTHON_BUILD_BUILD_PATH"
|
||||||
ln -s "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_BUILD_PATH"
|
ln -s "${FIXTURE_ROOT}/package-1.0.0.tar.gz" "$PYTHON_BUILD_BUILD_PATH"
|
||||||
@@ -128,7 +128,7 @@ DEF
|
|||||||
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
|
stub curl "-q -o * -*S* http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$3"
|
||||||
|
|
||||||
export -n PYTHON_BUILD_CACHE_PATH
|
export -n PYTHON_BUILD_CACHE_PATH
|
||||||
export PYTHON_BUILD_BUILD_PATH="${TMP}/build"
|
export PYTHON_BUILD_BUILD_PATH="${BATS_TEST_TMPDIR}/build"
|
||||||
|
|
||||||
mkdir -p "$PYTHON_BUILD_BUILD_PATH"
|
mkdir -p "$PYTHON_BUILD_BUILD_PATH"
|
||||||
touch "${PYTHON_BUILD_BUILD_PATH}/package-1.0.0.tar.gz"
|
touch "${PYTHON_BUILD_BUILD_PATH}/package-1.0.0.tar.gz"
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export MAKE=make
|
_setup() {
|
||||||
export MAKE_OPTS='-j 2'
|
export MAKE=make
|
||||||
export -n CFLAGS
|
export MAKE_OPTS='-j 2'
|
||||||
export -n CC
|
export -n CFLAGS
|
||||||
export -n PYTHON_CONFIGURE_OPTS
|
export -n CC
|
||||||
|
export -n PYTHON_CONFIGURE_OPTS
|
||||||
|
}
|
||||||
|
|
||||||
@test "require_gcc on OS X 10.9" {
|
@test "require_gcc on OS X 10.9" {
|
||||||
|
|
||||||
@@ -21,7 +23,7 @@ echo MACOSX_DEPLOYMENT_TARGET=\${MACOSX_DEPLOYMENT_TARGET-no}
|
|||||||
DEF
|
DEF
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
CC=${TMP}/bin/gcc
|
CC=${BATS_TEST_TMPDIR}/bin/gcc
|
||||||
MACOSX_DEPLOYMENT_TARGET=10.9
|
MACOSX_DEPLOYMENT_TARGET=10.9
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
@@ -48,7 +50,7 @@ DEF
|
|||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
CC=${TMP}/bin/gcc
|
CC=${BATS_TEST_TMPDIR}/bin/gcc
|
||||||
MACOSX_DEPLOYMENT_TARGET=10.10
|
MACOSX_DEPLOYMENT_TARGET=10.10
|
||||||
OUT
|
OUT
|
||||||
}
|
}
|
||||||
@@ -60,7 +62,7 @@ OUT
|
|||||||
require_gcc
|
require_gcc
|
||||||
echo \$CC
|
echo \$CC
|
||||||
DEF
|
DEF
|
||||||
assert_success "${TMP}/bin/gcc"
|
assert_success "${BATS_TEST_TMPDIR}/bin/gcc"
|
||||||
|
|
||||||
unstub gcc
|
unstub gcc
|
||||||
}
|
}
|
||||||
@@ -92,7 +94,7 @@ build_package_standard python
|
|||||||
DEF
|
DEF
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
./configure --prefix=$INSTALL_ROOT --enable-shared --libdir=${TMP}/install/lib
|
./configure --prefix=$INSTALL_ROOT --enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib
|
||||||
CC=clang
|
CC=clang
|
||||||
CFLAGS=no
|
CFLAGS=no
|
||||||
make -j 2
|
make -j 2
|
||||||
@@ -120,6 +122,6 @@ DEF
|
|||||||
|
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
CFLAGS_EXTRA=-DMICROPY_PY_SYS_PATH_DEFAULT='".frozen:${TMP}/install/lib/micropython"' -Wno-floating-conversion
|
CFLAGS_EXTRA=-DMICROPY_PY_SYS_PATH_DEFAULT='".frozen:${BATS_TEST_TMPDIR}/install/lib/micropython"' -Wno-floating-conversion
|
||||||
OUT
|
OUT
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,14 +12,14 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 -
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "custom PYTHON_BUILD_ROOT: nonexistent" {
|
@test "custom PYTHON_BUILD_ROOT: nonexistent" {
|
||||||
export PYTHON_BUILD_ROOT="$TMP"
|
export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR"
|
||||||
refute [ -e "${PYTHON_BUILD_ROOT}/share/python-build" ]
|
refute [ -e "${PYTHON_BUILD_ROOT}/share/python-build" ]
|
||||||
run python-build --definitions
|
run python-build --definitions
|
||||||
assert_success ""
|
assert_success ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "custom PYTHON_BUILD_ROOT: single definition" {
|
@test "custom PYTHON_BUILD_ROOT: single definition" {
|
||||||
export PYTHON_BUILD_ROOT="$TMP"
|
export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR"
|
||||||
mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build"
|
mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build"
|
||||||
touch "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8-test"
|
touch "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8-test"
|
||||||
run python-build --definitions
|
run python-build --definitions
|
||||||
@@ -27,7 +27,7 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 -
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "one path via PYTHON_BUILD_DEFINITIONS" {
|
@test "one path via PYTHON_BUILD_DEFINITIONS" {
|
||||||
export PYTHON_BUILD_DEFINITIONS="${TMP}/definitions"
|
export PYTHON_BUILD_DEFINITIONS="${BATS_TEST_TMPDIR}/definitions"
|
||||||
mkdir -p "$PYTHON_BUILD_DEFINITIONS"
|
mkdir -p "$PYTHON_BUILD_DEFINITIONS"
|
||||||
touch "${PYTHON_BUILD_DEFINITIONS}/2.7.8-test"
|
touch "${PYTHON_BUILD_DEFINITIONS}/2.7.8-test"
|
||||||
run python-build --definitions
|
run python-build --definitions
|
||||||
@@ -37,11 +37,11 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 -
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "multiple paths via PYTHON_BUILD_DEFINITIONS" {
|
@test "multiple paths via PYTHON_BUILD_DEFINITIONS" {
|
||||||
export PYTHON_BUILD_DEFINITIONS="${TMP}/definitions:${TMP}/other"
|
export PYTHON_BUILD_DEFINITIONS="${BATS_TEST_TMPDIR}/definitions:${BATS_TEST_TMPDIR}/other"
|
||||||
mkdir -p "${TMP}/definitions"
|
mkdir -p "${BATS_TEST_TMPDIR}/definitions"
|
||||||
touch "${TMP}/definitions/2.7.8-test"
|
touch "${BATS_TEST_TMPDIR}/definitions/2.7.8-test"
|
||||||
mkdir -p "${TMP}/other"
|
mkdir -p "${BATS_TEST_TMPDIR}/other"
|
||||||
touch "${TMP}/other/3.4.2-test"
|
touch "${BATS_TEST_TMPDIR}/other/3.4.2-test"
|
||||||
run python-build --definitions
|
run python-build --definitions
|
||||||
assert_success
|
assert_success
|
||||||
assert_output_contains "2.7.8-test"
|
assert_output_contains "2.7.8-test"
|
||||||
@@ -50,23 +50,23 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 -
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "installing definition from PYTHON_BUILD_DEFINITIONS by priority" {
|
@test "installing definition from PYTHON_BUILD_DEFINITIONS by priority" {
|
||||||
export PYTHON_BUILD_DEFINITIONS="${TMP}/definitions:${TMP}/other"
|
export PYTHON_BUILD_DEFINITIONS="${BATS_TEST_TMPDIR}/definitions:${BATS_TEST_TMPDIR}/other"
|
||||||
mkdir -p "${TMP}/definitions"
|
mkdir -p "${BATS_TEST_TMPDIR}/definitions"
|
||||||
echo true > "${TMP}/definitions/2.7.8-test"
|
echo true > "${BATS_TEST_TMPDIR}/definitions/2.7.8-test"
|
||||||
mkdir -p "${TMP}/other"
|
mkdir -p "${BATS_TEST_TMPDIR}/other"
|
||||||
echo false > "${TMP}/other/2.7.8-test"
|
echo false > "${BATS_TEST_TMPDIR}/other/2.7.8-test"
|
||||||
run python-build "2.7.8-test" "${TMP}/install"
|
run python-build "2.7.8-test" "${BATS_TEST_TMPDIR}/install"
|
||||||
assert_success ""
|
assert_success ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "installing nonexistent definition" {
|
@test "installing nonexistent definition" {
|
||||||
run python-build "nonexistent" "${TMP}/install"
|
run python-build "nonexistent" "${BATS_TEST_TMPDIR}/install"
|
||||||
assert [ "$status" -eq 2 ]
|
assert [ "$status" -eq 2 ]
|
||||||
assert_output "python-build: definition not found: nonexistent"
|
assert_output "python-build: definition not found: nonexistent"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "sorting Python versions" {
|
@test "sorting Python versions" {
|
||||||
export PYTHON_BUILD_ROOT="$TMP"
|
export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR"
|
||||||
mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build"
|
mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build"
|
||||||
expected="2.7-dev
|
expected="2.7-dev
|
||||||
2.7
|
2.7
|
||||||
@@ -87,15 +87,15 @@ jython-2.5.4-rc1
|
|||||||
jython-2.7-beta1
|
jython-2.7-beta1
|
||||||
jython-2.7-beta2
|
jython-2.7-beta2
|
||||||
jython-2.7-beta3"
|
jython-2.7-beta3"
|
||||||
for ver in "$expected"; do
|
while IFS=$'\n' read -r ver; do
|
||||||
touch "${PYTHON_BUILD_ROOT}/share/python-build/$ver"
|
touch "${PYTHON_BUILD_ROOT}/share/python-build/$ver"
|
||||||
done
|
done <<<"$expected"
|
||||||
run python-build --definitions
|
run python-build --definitions
|
||||||
assert_success "$expected"
|
assert_success "$expected"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "removing duplicate Python versions" {
|
@test "removing duplicate Python versions" {
|
||||||
export PYTHON_BUILD_ROOT="$TMP"
|
export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR"
|
||||||
export PYTHON_BUILD_DEFINITIONS="${PYTHON_BUILD_ROOT}/share/python-build"
|
export PYTHON_BUILD_DEFINITIONS="${PYTHON_BUILD_ROOT}/share/python-build"
|
||||||
mkdir -p "$PYTHON_BUILD_DEFINITIONS"
|
mkdir -p "$PYTHON_BUILD_DEFINITIONS"
|
||||||
touch "${PYTHON_BUILD_DEFINITIONS}/2.7.8"
|
touch "${PYTHON_BUILD_DEFINITIONS}/2.7.8"
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYTHON_BUILD_SKIP_MIRROR=1
|
_setup() {
|
||||||
export PYTHON_BUILD_CACHE_PATH=
|
export PYTHON_BUILD_SKIP_MIRROR=1
|
||||||
|
export PYTHON_BUILD_CACHE_PATH=
|
||||||
setup() {
|
export PYTHON_BUILD_BUILD_PATH="${BATS_TEST_TMPDIR}/source"
|
||||||
export PYTHON_BUILD_BUILD_PATH="${TMP}/source"
|
|
||||||
mkdir -p "${PYTHON_BUILD_BUILD_PATH}"
|
mkdir -p "${PYTHON_BUILD_BUILD_PATH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -29,7 +28,7 @@ setup() {
|
|||||||
Downloading package-1.0.0.tar.gz...
|
Downloading package-1.0.0.tar.gz...
|
||||||
-> http://example.com/packages/package-1.0.0.tar.gz
|
-> http://example.com/packages/package-1.0.0.tar.gz
|
||||||
Installing package-1.0.0...
|
Installing package-1.0.0...
|
||||||
Installed package-1.0.0 to ${TMP}/install
|
Installed package-1.0.0 to ${BATS_TEST_TMPDIR}/install
|
||||||
OUT
|
OUT
|
||||||
unstub aria2c
|
unstub aria2c
|
||||||
}
|
}
|
||||||
@@ -44,7 +43,7 @@ DEF
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
Cloning http://example.com/packages/package.git...
|
Cloning http://example.com/packages/package.git...
|
||||||
Installing package-dev...
|
Installing package-dev...
|
||||||
Installed package-dev to ${TMP}/install
|
Installed package-dev to ${BATS_TEST_TMPDIR}/install
|
||||||
OUT
|
OUT
|
||||||
unstub git
|
unstub git
|
||||||
}
|
}
|
||||||
@@ -62,7 +61,7 @@ DEF
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
Cloning http://example.com/packages/package.git...
|
Cloning http://example.com/packages/package.git...
|
||||||
Installing package-dev...
|
Installing package-dev...
|
||||||
Installed package-dev to ${TMP}/install
|
Installed package-dev to ${BATS_TEST_TMPDIR}/install
|
||||||
OUT
|
OUT
|
||||||
unstub git
|
unstub git
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
export PYENV_ROOT="${TMP}/pyenv"
|
export PYENV_ROOT="${BATS_TEST_TMPDIR}/pyenv"
|
||||||
export HOOK_PATH="${TMP}/i has hooks"
|
export HOOK_PATH="${BATS_TEST_TMPDIR}/i has hooks"
|
||||||
mkdir -p "$HOOK_PATH"
|
mkdir -p "$HOOK_PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ OUT
|
|||||||
stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash"
|
stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash"
|
||||||
stub pyenv-rehash "echo rehashed"
|
stub pyenv-rehash "echo rehashed"
|
||||||
|
|
||||||
definition="${TMP}/3.6.2"
|
definition="${BATS_TEST_TMPDIR}/3.6.2"
|
||||||
stub pyenv-latest "echo $definition"
|
stub pyenv-latest "echo $definition"
|
||||||
|
|
||||||
cat > "$definition" <<<"echo python-build"
|
cat > "$definition" <<<"echo python-build"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
@test "installs python-build into PREFIX" {
|
@test "installs python-build into PREFIX" {
|
||||||
cd "$TMP"
|
cd "$BATS_TEST_TMPDIR"
|
||||||
PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh"
|
PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh"
|
||||||
assert_success ""
|
assert_success ""
|
||||||
|
|
||||||
@@ -18,7 +18,7 @@ load test_helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "build definitions don't have the executable bit" {
|
@test "build definitions don't have the executable bit" {
|
||||||
cd "$TMP"
|
cd "$BATS_TEST_TMPDIR"
|
||||||
PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh"
|
PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh"
|
||||||
assert_success ""
|
assert_success ""
|
||||||
|
|
||||||
@@ -30,7 +30,7 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "overwrites old installation" {
|
@test "overwrites old installation" {
|
||||||
cd "$TMP"
|
cd "$BATS_TEST_TMPDIR"
|
||||||
mkdir -p bin share/python-build
|
mkdir -p bin share/python-build
|
||||||
touch bin/python-build
|
touch bin/python-build
|
||||||
touch share/python-build/2.7.2
|
touch share/python-build/2.7.2
|
||||||
@@ -44,7 +44,7 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "unrelated files are untouched" {
|
@test "unrelated files are untouched" {
|
||||||
cd "$TMP"
|
cd "$BATS_TEST_TMPDIR"
|
||||||
mkdir -p bin share/bananas
|
mkdir -p bin share/bananas
|
||||||
chmod g-w bin
|
chmod g-w bin
|
||||||
touch bin/bananas
|
touch bin/bananas
|
||||||
|
|||||||
@@ -1,10 +1,12 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYTHON_BUILD_SKIP_MIRROR=
|
|
||||||
export PYTHON_BUILD_CACHE_PATH=
|
|
||||||
export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
|
|
||||||
|
|
||||||
|
_setup() {
|
||||||
|
export PYTHON_BUILD_SKIP_MIRROR=
|
||||||
|
export PYTHON_BUILD_CACHE_PATH=
|
||||||
|
export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com
|
||||||
|
}
|
||||||
|
|
||||||
@test "package URL without checksum bypasses mirror" {
|
@test "package URL without checksum bypasses mirror" {
|
||||||
stub shasum true
|
stub shasum true
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYENV_ROOT="${TMP}/pyenv"
|
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
|
export PYENV_ROOT="${BATS_TEST_TMPDIR}/pyenv"
|
||||||
stub pyenv-hooks 'install : true'
|
stub pyenv-hooks 'install : true'
|
||||||
stub pyenv-rehash true
|
stub pyenv-rehash true
|
||||||
}
|
}
|
||||||
@@ -39,8 +39,8 @@ stub_python_build() {
|
|||||||
run pyenv-install 3.4.1 3.4.2
|
run pyenv-install 3.4.1 3.4.2
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
python-build 3.4.1 ${TMP}/pyenv/versions/3.4.1
|
python-build 3.4.1 ${BATS_TEST_TMPDIR}/pyenv/versions/3.4.1
|
||||||
python-build 3.4.2 ${TMP}/pyenv/versions/3.4.2
|
python-build 3.4.2 ${BATS_TEST_TMPDIR}/pyenv/versions/3.4.2
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub python-build
|
unstub python-build
|
||||||
@@ -54,7 +54,7 @@ OUT
|
|||||||
run pyenv-install 3.4.1 3.4.2
|
run pyenv-install 3.4.1 3.4.2
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
fail: python-build 3.4.1 ${TMP}/pyenv/versions/3.4.1
|
fail: python-build 3.4.1 ${BATS_TEST_TMPDIR}/pyenv/versions/3.4.1
|
||||||
OUT
|
OUT
|
||||||
|
|
||||||
unstub python-build
|
unstub python-build
|
||||||
@@ -293,10 +293,11 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "invalid arguments for pyenv-uninstall" {
|
@test "invalid arguments for pyenv-uninstall" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
mkdir -p "${PYENV_ROOT}/versions/3.10.3"
|
mkdir -p "${PYENV_ROOT}/versions/3.10.3"
|
||||||
mkdir -p "${PYENV_ROOT}/versions/3.10.4"
|
mkdir -p "${PYENV_ROOT}/versions/3.10.4"
|
||||||
|
|
||||||
run pyenv-uninstall -f 3.10.3 --invalid-option 3.10.4
|
run -127 pyenv-uninstall -f 3.10.3 --invalid-option 3.10.4
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|
||||||
assert [ -d "${PYENV_ROOT}/versions/3.10.3" ]
|
assert [ -d "${PYENV_ROOT}/versions/3.10.3" ]
|
||||||
|
|||||||
@@ -1,15 +1,14 @@
|
|||||||
#!/usr/bin/env bats
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
export PYTHON_BUILD_CACHE_PATH="$TMP/cache"
|
|
||||||
export MAKE=make
|
|
||||||
export MAKE_OPTS="-j 2"
|
|
||||||
export CC=cc
|
|
||||||
export PYTHON_BUILD_HTTP_CLIENT="curl"
|
|
||||||
|
|
||||||
export TMP_FIXTURES="$TMP/fixtures"
|
_setup() {
|
||||||
|
export PYTHON_BUILD_CACHE_PATH="$BATS_TEST_TMPDIR/cache"
|
||||||
setup() {
|
export MAKE=make
|
||||||
|
export MAKE_OPTS="-j 2"
|
||||||
|
export CC=cc
|
||||||
|
export PYTHON_BUILD_HTTP_CLIENT="curl"
|
||||||
|
export TMP_FIXTURES="$BATS_TEST_TMPDIR/fixtures"
|
||||||
mkdir -p "$INSTALL_ROOT"
|
mkdir -p "$INSTALL_ROOT"
|
||||||
stub md5 false
|
stub md5 false
|
||||||
stub curl false
|
stub curl false
|
||||||
@@ -100,7 +99,7 @@ run_inline_definition_with_name() {
|
|||||||
shift 1
|
shift 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
local definition="${TMP}/${definition_name}"
|
local definition="${BATS_TEST_TMPDIR}/${definition_name}"
|
||||||
cat > "$definition"
|
cat > "$definition"
|
||||||
run python-build "$definition" "${1:-$INSTALL_ROOT}"
|
run python-build "$definition" "${1:-$INSTALL_ROOT}"
|
||||||
}
|
}
|
||||||
@@ -118,12 +117,12 @@ run_inline_definition_with_name() {
|
|||||||
stub uname '-s : echo Linux'
|
stub uname '-s : echo Linux'
|
||||||
stub uname '-s : echo Linux'
|
stub uname '-s : echo Linux'
|
||||||
|
|
||||||
TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null
|
TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
patch -p0 --force -i $TMP/python-patch.XXX
|
patch -p0 --force -i $BATS_TEST_TMPDIR/python-patch.XXX
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib"
|
Python-3.6.2: CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -146,14 +145,14 @@ OUT
|
|||||||
|
|
||||||
stub uname '-s : echo Linux'
|
stub uname '-s : echo Linux'
|
||||||
|
|
||||||
TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null
|
TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
patch: bar
|
patch: bar
|
||||||
patch: baz
|
patch: baz
|
||||||
patch: foo
|
patch: foo
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib"
|
Python-3.6.2: CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -173,11 +172,11 @@ OUT
|
|||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
|
|
||||||
PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null
|
PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib"
|
Python-3.6.2: CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib
|
||||||
make -j 2
|
make -j 2
|
||||||
make altinstall
|
make altinstall
|
||||||
@@ -194,7 +193,7 @@ echo "python \$@" >> "${INSTALL_ROOT}/build.log"
|
|||||||
OUT
|
OUT
|
||||||
chmod +x "${INSTALL_ROOT}/bin/python"
|
chmod +x "${INSTALL_ROOT}/bin/python"
|
||||||
|
|
||||||
PYTHON_MAKE_INSTALL_TARGET="" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_MAKE_INSTALL_TARGET="" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
build_package_ensurepip
|
build_package_ensurepip
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
@@ -212,7 +211,7 @@ echo "python \$@" >> "${INSTALL_ROOT}/build.log"
|
|||||||
OUT
|
OUT
|
||||||
chmod +x "${INSTALL_ROOT}/bin/python"
|
chmod +x "${INSTALL_ROOT}/bin/python"
|
||||||
|
|
||||||
PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
build_package_ensurepip
|
build_package_ensurepip
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
@@ -233,7 +232,7 @@ OUT
|
|||||||
touch "${INSTALL_ROOT}/bin/python3.4-config"
|
touch "${INSTALL_ROOT}/bin/python3.4-config"
|
||||||
chmod +x "${INSTALL_ROOT}/bin/python3.4-config"
|
chmod +x "${INSTALL_ROOT}/bin/python3.4-config"
|
||||||
|
|
||||||
TMPDIR="$TMP" run_inline_definition <<OUT
|
TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
verify_python python3.4
|
verify_python python3.4
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
@@ -256,7 +255,7 @@ OUT
|
|||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
@@ -264,7 +263,7 @@ verify_python python3.4
|
|||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--libdir=${TMP}/install/lib --enable-framework=${TMP}/install/Library/Frameworks)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--libdir=${BATS_TEST_TMPDIR}/install/lib --enable-framework=${BATS_TEST_TMPDIR}/install/Library/Frameworks)
|
||||||
PYTHON_CONFIGURE_OPTS=()
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
CONFIGURE_OPTS=()
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
@@ -279,14 +278,14 @@ EOS
|
|||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
stub arch "echo x86_64"
|
stub arch "echo x86_64"
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib --enable-universalsdk=/)
|
||||||
PYTHON_CONFIGURE_OPTS=()
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
CONFIGURE_OPTS=()
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
@@ -298,14 +297,14 @@ EOS
|
|||||||
stub sw_vers '-productVersion : echo 11.7'
|
stub sw_vers '-productVersion : echo 11.7'
|
||||||
stub arch "echo arm64"
|
stub arch "echo arm64"
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
echo "PYTHON_CONFIGURE_OPTS=(\${PYTHON_CONFIGURE_OPTS})"
|
||||||
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
echo "CONFIGURE_OPTS=(\${CONFIGURE_OPTS})"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/ --with-universal-archs=universal2)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib --enable-universalsdk=/ --with-universal-archs=universal2)
|
||||||
PYTHON_CONFIGURE_OPTS=()
|
PYTHON_CONFIGURE_OPTS=()
|
||||||
CONFIGURE_OPTS=()
|
CONFIGURE_OPTS=()
|
||||||
EOS
|
EOS
|
||||||
@@ -316,12 +315,12 @@ EOS
|
|||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 11.7'
|
stub sw_vers '-productVersion : echo 11.7'
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-universalsdk --with-universal-archs=foo" TMPDIR="$TMP" run_inline_definition <<OUT
|
PYTHON_CONFIGURE_OPTS="--enable-universalsdk --with-universal-archs=foo" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
echo "PYTHON_CONFIGURE_OPTS_ARRAY=(\${PYTHON_CONFIGURE_OPTS_ARRAY[@]})"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
assert_output <<EOS
|
assert_output <<EOS
|
||||||
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${TMP}/install/lib --enable-universalsdk=/)
|
PYTHON_CONFIGURE_OPTS_ARRAY=(--enable-shared --libdir=${BATS_TEST_TMPDIR}/install/lib --enable-universalsdk=/)
|
||||||
EOS
|
EOS
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -334,11 +333,11 @@ EOS
|
|||||||
" : echo \"$MAKE \$@\" >> build.log" \
|
" : echo \"$MAKE \$@\" >> build.log" \
|
||||||
" : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'"
|
" : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'"
|
||||||
|
|
||||||
PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs2" TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null
|
PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs2" TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null
|
||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
assert_build_log <<OUT
|
assert_build_log <<OUT
|
||||||
Python-3.6.2: CPPFLAGS="-I${TMP}/install/include" LDFLAGS="-L${TMP}/install/lib -Wl,-rpath,${TMP}/install/lib"
|
Python-3.6.2: CPPFLAGS="-I${BATS_TEST_TMPDIR}/install/include" LDFLAGS="-L${BATS_TEST_TMPDIR}/install/lib -Wl,-rpath,${BATS_TEST_TMPDIR}/install/lib"
|
||||||
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --enable-unicode=ucs2
|
Python-3.6.2: --prefix=$INSTALL_ROOT --enable-shared --libdir=$INSTALL_ROOT/lib --enable-unicode=ucs2
|
||||||
make -j 2
|
make -j 2
|
||||||
make install
|
make install
|
||||||
@@ -353,7 +352,7 @@ OUT
|
|||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
stub sw_vers '-productVersion : echo 10.10'
|
stub sw_vers '-productVersion : echo 10.10'
|
||||||
|
|
||||||
TMPDIR="$TMP" run_inline_definition <<OUT
|
TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
@@ -366,7 +365,7 @@ OUT
|
|||||||
|
|
||||||
stub uname '-s : echo Darwin'
|
stub uname '-s : echo Darwin'
|
||||||
|
|
||||||
MACOSX_DEPLOYMENT_TARGET="10.4" TMPDIR="$TMP" run_inline_definition <<OUT
|
MACOSX_DEPLOYMENT_TARGET="10.4" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition <<OUT
|
||||||
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
echo "\${MACOSX_DEPLOYMENT_TARGET}"
|
||||||
OUT
|
OUT
|
||||||
assert_success
|
assert_success
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ set -e
|
|||||||
status=0
|
status=0
|
||||||
program="${0##*/}"
|
program="${0##*/}"
|
||||||
PROGRAM="$(echo "$program" | tr a-z- A-Z_)"
|
PROGRAM="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
[ -n "$TMPDIR" ] || TMPDIR="/tmp"
|
|
||||||
|
|
||||||
_STUB_PLAN="${PROGRAM}_STUB_PLAN"
|
_STUB_PLAN="${PROGRAM}_STUB_PLAN"
|
||||||
_STUB_RUN="${PROGRAM}_STUB_RUN"
|
_STUB_RUN="${PROGRAM}_STUB_RUN"
|
||||||
@@ -13,11 +12,11 @@ _STUB_RESULT="${PROGRAM}_STUB_RESULT"
|
|||||||
_STUB_END="${PROGRAM}_STUB_END"
|
_STUB_END="${PROGRAM}_STUB_END"
|
||||||
_STUB_LOG="${PROGRAM}_STUB_LOG"
|
_STUB_LOG="${PROGRAM}_STUB_LOG"
|
||||||
|
|
||||||
[ -n "${!_STUB_LOG}" ] || eval "${_STUB_LOG}"="${TMPDIR}/${program}-stub-log"
|
[ -n "${!_STUB_LOG}" ] || eval "${_STUB_LOG}"="${BATS_TEST_TMPDIR}/${program}-stub-log"
|
||||||
if test -z "${!_STUB_END}"; then echo "$program" "$@" >>"${!_STUB_LOG}"; fi
|
if test -z "${!_STUB_END}"; then echo "$program" "$@" >>"${!_STUB_LOG}"; fi
|
||||||
|
|
||||||
[ -e "${!_STUB_PLAN}" ] || exit 1
|
[ -e "${!_STUB_PLAN}" ] || exit 1
|
||||||
[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run"
|
[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${BATS_TEST_TMPDIR}/${program}-stub-run"
|
||||||
|
|
||||||
|
|
||||||
# Initialize or load the stub run information.
|
# Initialize or load the stub run information.
|
||||||
|
|||||||
@@ -1,21 +1,18 @@
|
|||||||
export TMP="$BATS_TEST_DIRNAME/tmp"
|
setup() {
|
||||||
export PYTHON_BUILD_CURL_OPTS=
|
export PYTHON_BUILD_CURL_OPTS=
|
||||||
export PYTHON_BUILD_HTTP_CLIENT="curl"
|
export PYTHON_BUILD_HTTP_CLIENT="curl"
|
||||||
|
|
||||||
if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then
|
export FIXTURE_ROOT="${BATS_TEST_DIRNAME}/fixtures"
|
||||||
export FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures"
|
export INSTALL_ROOT="${BATS_TEST_TMPDIR}/install"
|
||||||
export INSTALL_ROOT="$TMP/install"
|
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
|
||||||
PATH="/usr/bin:/bin:/usr/sbin:/sbin"
|
PATH="${BATS_TEST_DIRNAME}/../bin:$PATH"
|
||||||
if [ "FreeBSD" = "$(uname -s)" ]; then
|
PATH="${BATS_TEST_TMPDIR}/bin:$PATH"
|
||||||
PATH="/usr/local/bin:$PATH"
|
|
||||||
fi
|
|
||||||
PATH="$BATS_TEST_DIRNAME/../bin:$PATH"
|
|
||||||
PATH="$TMP/bin:$PATH"
|
|
||||||
export PATH
|
export PATH
|
||||||
fi
|
|
||||||
|
|
||||||
teardown() {
|
# If test specific setup exist, run it
|
||||||
rm -fr "${TMP:?}"/*
|
if [[ $(type -t _setup) == function ]];then
|
||||||
|
_setup
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
stub() {
|
stub() {
|
||||||
@@ -23,22 +20,22 @@ stub() {
|
|||||||
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
shift
|
shift
|
||||||
|
|
||||||
export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan"
|
export "${prefix}_STUB_PLAN"="${BATS_TEST_TMPDIR}/${program}-stub-plan"
|
||||||
export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run"
|
export "${prefix}_STUB_RUN"="${BATS_TEST_TMPDIR}/${program}-stub-run"
|
||||||
export "${prefix}_STUB_LOG"="${TMP}/${program}-stub-log"
|
export "${prefix}_STUB_LOG"="${BATS_TEST_TMPDIR}/${program}-stub-log"
|
||||||
export "${prefix}_STUB_END"=
|
export "${prefix}_STUB_END"=
|
||||||
|
|
||||||
mkdir -p "${TMP}/bin"
|
mkdir -p "${BATS_TEST_TMPDIR}/bin"
|
||||||
ln -sf "${BATS_TEST_DIRNAME}/stubs/stub" "${TMP}/bin/${program}"
|
cp "${BATS_TEST_DIRNAME}/stubs/stub" "${BATS_TEST_TMPDIR}/bin/${program}"
|
||||||
|
|
||||||
touch "${TMP}/${program}-stub-plan"
|
touch "${BATS_TEST_TMPDIR}/${program}-stub-plan"
|
||||||
for arg in "$@"; do printf "%s\n" "$arg" >> "${TMP}/${program}-stub-plan"; done
|
for arg in "$@"; do printf "%s\n" "$arg" >> "${BATS_TEST_TMPDIR}/${program}-stub-plan"; done
|
||||||
}
|
}
|
||||||
|
|
||||||
unstub() {
|
unstub() {
|
||||||
local program="$1"
|
local program="$1"
|
||||||
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
local prefix="$(echo "$program" | tr a-z- A-Z_)"
|
||||||
local path="${TMP}/bin/${program}"
|
local path="${BATS_TEST_TMPDIR}/bin/${program}"
|
||||||
|
|
||||||
export "${prefix}_STUB_END"=1
|
export "${prefix}_STUB_END"=1
|
||||||
|
|
||||||
@@ -46,12 +43,12 @@ unstub() {
|
|||||||
"$path" || STATUS="$?"
|
"$path" || STATUS="$?"
|
||||||
|
|
||||||
rm -f "$path"
|
rm -f "$path"
|
||||||
rm -f "${TMP}/${program}-stub-plan" "${TMP}/${program}-stub-run"
|
rm -f "${BATS_TEST_TMPDIR}/${program}-stub-plan" "${BATS_TEST_TMPDIR}/${program}-stub-run"
|
||||||
return "$STATUS"
|
return "$STATUS"
|
||||||
}
|
}
|
||||||
|
|
||||||
run_inline_definition() {
|
run_inline_definition() {
|
||||||
local definition="${TMP}/build-definition"
|
local definition="${BATS_TEST_TMPDIR}/build-definition"
|
||||||
cat > "$definition"
|
cat > "$definition"
|
||||||
run python-build "$definition" "${1:-$INSTALL_ROOT}"
|
run python-build "$definition" "${1:-$INSTALL_ROOT}"
|
||||||
}
|
}
|
||||||
@@ -87,7 +84,7 @@ flunk() {
|
|||||||
{ if [ "$#" -eq 0 ]; then cat -
|
{ if [ "$#" -eq 0 ]; then cat -
|
||||||
else echo "$@"
|
else echo "$@"
|
||||||
fi
|
fi
|
||||||
} | sed "s:${TMP}:\${TMP}:g" >&2
|
} | sed "s:${BATS_TEST_TMPDIR}:\${BATS_TEST_TMPDIR}:g" >&2
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
bats_bin="${BATS_TEST_DIRNAME}/../bin/python-build"
|
python_build_bin="${BATS_TEST_DIRNAME}/../bin/python-build"
|
||||||
static_version="$(grep VERSION "$bats_bin" | head -n1 | cut -d'"' -f 2)"
|
static_version="$(grep VERSION "$python_build_bin" | head -n1 | cut -d'"' -f 2)"
|
||||||
|
|
||||||
@test "python-build static version" {
|
@test "python-build static version" {
|
||||||
stub git 'echo "ASPLODE" >&2; exit 1'
|
stub git 'echo "ASPLODE" >&2; exit 1'
|
||||||
|
|||||||
@@ -2,9 +2,8 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
export GIT_DIR="${PYENV_TEST_DIR}/.git"
|
_setup() {
|
||||||
|
export GIT_DIR="${PYENV_TEST_DIR}/.git"
|
||||||
setup() {
|
|
||||||
mkdir -p "$HOME"
|
mkdir -p "$HOME"
|
||||||
git config --global user.name "Tester"
|
git config --global user.name "Tester"
|
||||||
git config --global user.email "tester@test.local"
|
git config --global user.email "tester@test.local"
|
||||||
|
|||||||
25
test/Dockerfile
Normal file
25
test/Dockerfile
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
ARG BASH
|
||||||
|
|
||||||
|
FROM alpine/git:v2.30.0 as bats
|
||||||
|
ARG BATS_VERSION
|
||||||
|
RUN git clone https://github.com/bats-core/bats-core.git /root/bats-core \
|
||||||
|
&& cd /root/bats-core \
|
||||||
|
&& git checkout "${BATS_VERSION}"
|
||||||
|
|
||||||
|
FROM bash:$BASH
|
||||||
|
# Gnu tools
|
||||||
|
RUN if [[ "${GNU:-}" == True ]];then \
|
||||||
|
apk add sed coreutils findutils \
|
||||||
|
;fi
|
||||||
|
# Bats
|
||||||
|
RUN apk add --update parallel ncurses git \
|
||||||
|
&& mkdir -p ~/.parallel \
|
||||||
|
&& touch ~/.parallel/will-cite
|
||||||
|
COPY --from=bats /root/bats-core /root/bats-core
|
||||||
|
RUN /root/bats-core/install.sh "/usr/local"
|
||||||
|
# Clean
|
||||||
|
RUN rm -rf /var/cache/apk/*
|
||||||
|
# Setup
|
||||||
|
RUN echo 'source /etc/profile' >> ~/.bashrc
|
||||||
|
WORKDIR /code/
|
||||||
|
CMD ["bash"]
|
||||||
76
test/README.md
Normal file
76
test/README.md
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
# TEST
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Running test suite
|
||||||
|
|
||||||
|
Test suite could be launch with `make` by providing the right target depending what you want to achieve.
|
||||||
|
|
||||||
|
Under the hood, `pyenv` test suites use `bats` as a test framework and are run on the host or docker depending of the target provided to make.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Targets
|
||||||
|
|
||||||
|
- `test`
|
||||||
|
- Run the whole test suite on the local host
|
||||||
|
- `test-docker`
|
||||||
|
- Run the whole test suite on docker
|
||||||
|
- Some volumes are used in read-only mode
|
||||||
|
- `test-unit`
|
||||||
|
- Run the unit test
|
||||||
|
- `test-plugin`
|
||||||
|
- Run the plugin test
|
||||||
|
- `test-unit-docker-[BASH_VERSION]`
|
||||||
|
- Run the unit test under **official** bash docker container (alpine/busybox) with the specified bash version if present is in the `Makefile`
|
||||||
|
- Some volumes are used in read-only mode
|
||||||
|
- `test-unit-docker-gnu-[BASH_VERSION]`
|
||||||
|
- Run the unit test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile`
|
||||||
|
- Some volumes are used in read-only mode
|
||||||
|
- `test-plugin-docker-[BASH_VERSION]`
|
||||||
|
- Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile`
|
||||||
|
- Some volumes are used in read-only mode
|
||||||
|
- `test-plugin-docker-gnu-[BASH_VERSION]`
|
||||||
|
- Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile`
|
||||||
|
- Some volumes are used in read-only mode
|
||||||
|
|
||||||
|
## Targeting specific test / test file
|
||||||
|
|
||||||
|
By setting some environment variables, it is possible to filtering which test and/or test file who will be tested with bats
|
||||||
|
|
||||||
|
- `BATS_FILE_FILTER`
|
||||||
|
|
||||||
|
- Run test only with the specified file
|
||||||
|
|
||||||
|
- `BATS_TEST_FILTER`
|
||||||
|
- Run test only who corresponding to the filter provided
|
||||||
|
|
||||||
|
|
||||||
|
### Examples
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin-docker-gnu-3.2.57
|
||||||
|
build.bats
|
||||||
|
✓ yaml is installed for python
|
||||||
|
✓ homebrew is used in Linux if Pyenv is installed with Homebrew
|
||||||
|
✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew
|
||||||
|
|
||||||
|
3 tests, 0 failures
|
||||||
|
|
||||||
|
$ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin
|
||||||
|
build.bats
|
||||||
|
✓ yaml is installed for python
|
||||||
|
✓ homebrew is used in Linux if Pyenv is installed with Homebrew
|
||||||
|
✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew
|
||||||
|
|
||||||
|
3 tests, 0 failures
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Writing test
|
||||||
|
|
||||||
|
To be reproducible, each test use/should use its own `TMPDIR` .
|
||||||
|
It's achieved by using the environment variable `BATS_TEST_TMPDIR` provided by bats that is automatically deleted at the end of each test. More info [here](https://bats-core.readthedocs.io/en/stable/writing-tests.html#special-variables)
|
||||||
|
|
||||||
|
Another variable who could be used to source some file who need to be tested is `BATS_TEST_DIRNAME` who point to the directory in which the bats test file is located.
|
||||||
@@ -8,15 +8,16 @@ create_executable() {
|
|||||||
bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin"
|
bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin"
|
||||||
mkdir -p "$bin"
|
mkdir -p "$bin"
|
||||||
{ if [ $# -eq 0 ]; then cat -
|
{ if [ $# -eq 0 ]; then cat -
|
||||||
else echo "$@"
|
else printf '%s\n' "$@"
|
||||||
fi
|
fi
|
||||||
} | sed -Ee '1s/^ +//' > "${bin}/$name"
|
} | sed -Ee '1s/^ +//' > "${bin}/$name"
|
||||||
chmod +x "${bin}/$name"
|
chmod +x "${bin}/$name"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "fails with invalid version" {
|
@test "fails with invalid version" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
export PYENV_VERSION="3.4"
|
export PYENV_VERSION="3.4"
|
||||||
run pyenv-exec nonexistent
|
run -127 pyenv-exec nonexistent
|
||||||
assert_failure <<EOF
|
assert_failure <<EOF
|
||||||
pyenv: version \`3.4' is not installed (set by PYENV_VERSION environment variable)
|
pyenv: version \`3.4' is not installed (set by PYENV_VERSION environment variable)
|
||||||
pyenv: nonexistent: command not found
|
pyenv: nonexistent: command not found
|
||||||
@@ -24,10 +25,11 @@ EOF
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "fails with invalid version set from file" {
|
@test "fails with invalid version set from file" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "$PYENV_TEST_DIR"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
echo 2.7 > .python-version
|
echo 2.7 > .python-version
|
||||||
run pyenv-exec nonexistent
|
run -127 pyenv-exec nonexistent
|
||||||
assert_failure <<EOF
|
assert_failure <<EOF
|
||||||
pyenv: version \`2.7' is not installed (set by $PWD/.python-version)
|
pyenv: version \`2.7' is not installed (set by $PWD/.python-version)
|
||||||
pyenv: nonexistent: command not found
|
pyenv: nonexistent: command not found
|
||||||
@@ -85,18 +87,25 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "sys.executable with system version (#98)" {
|
@test "sys.executable with system version (#98)" {
|
||||||
system_python="$(python3 -c 'import sys; print(sys.executable)')"
|
export PATH="${PYENV_ROOT}/versions/bin:${PATH}"
|
||||||
|
create_executable "python3" <<SH
|
||||||
|
#!$BASH
|
||||||
|
echo system
|
||||||
|
SH
|
||||||
|
system_python="$(python3)"
|
||||||
|
assert_equal "${system_python}" "system"
|
||||||
|
|
||||||
PYENV_VERSION="custom"
|
export PYENV_VERSION="custom"
|
||||||
create_executable "python3" ""
|
create_executable "python3" "#!/bin/sh" "echo custom"
|
||||||
unset PYENV_VERSION
|
|
||||||
|
|
||||||
pyenv-rehash
|
pyenv-rehash
|
||||||
run pyenv-exec python3 -c 'import sys; print(sys.executable)'
|
|
||||||
assert_success "${system_python}"
|
custom_python="$(pyenv-exec python3)"
|
||||||
|
assert_equal "${custom_python}" "custom"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test 'PATH is not modified with system Python' {
|
@test 'PATH is not modified with system Python' {
|
||||||
|
export PATH="${PYENV_TEST_DIR}:${PATH}"
|
||||||
# Create a wrapper executable that verifies PATH.
|
# Create a wrapper executable that verifies PATH.
|
||||||
PYENV_VERSION="custom"
|
PYENV_VERSION="custom"
|
||||||
create_executable "python3" '[[ "$PATH" == "${PYENV_TEST_DIR}/root/versions/custom/bin:"* ]] || { echo "unexpected:$PATH"; exit 2;}'
|
create_executable "python3" '[[ "$PATH" == "${PYENV_TEST_DIR}/root/versions/custom/bin:"* ]] || { echo "unexpected:$PATH"; exit 2;}'
|
||||||
@@ -104,7 +113,13 @@ OUT
|
|||||||
pyenv-rehash
|
pyenv-rehash
|
||||||
|
|
||||||
# Path is not modified with system Python.
|
# Path is not modified with system Python.
|
||||||
run pyenv-exec python3 -c 'import os; print(os.getenv("PATH"))'
|
cat > "${PYENV_TEST_DIR}/python3" <<SH
|
||||||
|
#!$BASH
|
||||||
|
echo \$PATH
|
||||||
|
SH
|
||||||
|
chmod +x "${PYENV_TEST_DIR}/python3"
|
||||||
|
pyenv-rehash
|
||||||
|
run pyenv-exec python3
|
||||||
assert_success "$PATH"
|
assert_success "$PATH"
|
||||||
|
|
||||||
# Path is modified with custom Python.
|
# Path is modified with custom Python.
|
||||||
@@ -116,6 +131,6 @@ OUT
|
|||||||
assert_success
|
assert_success
|
||||||
|
|
||||||
# Path is not modified with system:custom Python.
|
# Path is not modified with system:custom Python.
|
||||||
PYENV_VERSION=system:custom run pyenv-exec python3 -c 'import os; print(os.getenv("PATH"))'
|
PYENV_VERSION=system:custom run pyenv-exec python3
|
||||||
assert_success "$PATH"
|
assert_success "$PATH"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
export PATH="${PYENV_TEST_DIR}/bin:$PATH"
|
export PATH="${PYENV_TEST_DIR}/bin:$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
export PATH="${PYENV_TEST_DIR}/bin:$PATH"
|
export PATH="${PYENV_TEST_DIR}/bin:$PATH"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "${PYENV_TEST_DIR}/myproject"
|
mkdir -p "${PYENV_TEST_DIR}/myproject"
|
||||||
cd "${PYENV_TEST_DIR}/myproject"
|
cd "${PYENV_TEST_DIR}/myproject"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ load test_helper
|
|||||||
mkdir -p "${PYENV_TEST_DIR}/bin"
|
mkdir -p "${PYENV_TEST_DIR}/bin"
|
||||||
touch "${PYENV_TEST_DIR}/bin/python"
|
touch "${PYENV_TEST_DIR}/bin/python"
|
||||||
chmod +x "${PYENV_TEST_DIR}/bin/python"
|
chmod +x "${PYENV_TEST_DIR}/bin/python"
|
||||||
PYENV_VERSION="system" run pyenv-prefix
|
PATH="${PYENV_TEST_DIR}/libexec:$PATH" PYENV_VERSION="system" run pyenv-prefix
|
||||||
assert_success "$PYENV_TEST_DIR"
|
assert_success "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,15 +34,15 @@ load test_helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "prefix for system in /" {
|
@test "prefix for system in /" {
|
||||||
mkdir -p "${BATS_TEST_DIRNAME}/libexec"
|
mkdir -p "${PYENV_TEST_DIR}/libexec"
|
||||||
cat >"${BATS_TEST_DIRNAME}/libexec/pyenv-which" <<OUT
|
cat >"${PYENV_TEST_DIR}/libexec/pyenv-which" <<OUT
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
echo /bin/python
|
echo /bin/python
|
||||||
OUT
|
OUT
|
||||||
chmod +x "${BATS_TEST_DIRNAME}/libexec/pyenv-which"
|
chmod +x "${PYENV_TEST_DIR}/libexec/pyenv-which"
|
||||||
PYENV_VERSION="system" run pyenv-prefix
|
PATH="${PYENV_TEST_DIR}/libexec:$PATH" PYENV_VERSION="system" run pyenv-prefix
|
||||||
assert_success "/"
|
assert_success "/"
|
||||||
rm -f "${BATS_TEST_DIRNAME}/libexec/pyenv-which"
|
rm -f "${PYENV_TEST_DIR}/libexec/pyenv-which"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "prefix for invalid system" {
|
@test "prefix for invalid system" {
|
||||||
|
|||||||
@@ -32,14 +32,14 @@ load test_helper
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "inherited PYENV_DIR" {
|
@test "inherited PYENV_DIR" {
|
||||||
dir="${BATS_TMPDIR}/myproject"
|
dir="${BATS_TEST_TMPDIR}/myproject"
|
||||||
mkdir -p "$dir"
|
mkdir -p "$dir"
|
||||||
PYENV_DIR="$dir" run pyenv echo PYENV_DIR
|
PYENV_DIR="$dir" run pyenv echo PYENV_DIR
|
||||||
assert_output "$dir"
|
assert_output "$dir"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "invalid PYENV_DIR" {
|
@test "invalid PYENV_DIR" {
|
||||||
dir="${BATS_TMPDIR}/does-not-exist"
|
dir="${BATS_TEST_TMPDIR}/does-not-exist"
|
||||||
assert [ ! -d "$dir" ]
|
assert [ ! -d "$dir" ]
|
||||||
PYENV_DIR="$dir" run pyenv echo PYENV_DIR
|
PYENV_DIR="$dir" run pyenv echo PYENV_DIR
|
||||||
assert_failure
|
assert_failure
|
||||||
|
|||||||
2
test/run
2
test/run
@@ -6,4 +6,4 @@ if [ -n "$PYENV_NATIVE_EXT" ]; then
|
|||||||
make -C src
|
make -C src
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec bats ${CI:+--tap} test
|
exec bats ${CI:+--tap} ${BATS_TEST_FILTER:+--filter "${BATS_TEST_FILTER}"} test/${BATS_FILE_FILTER}
|
||||||
|
|||||||
@@ -1,20 +1,23 @@
|
|||||||
unset PYENV_VERSION
|
unset PYENV_VERSION
|
||||||
unset PYENV_DIR
|
unset PYENV_DIR
|
||||||
|
|
||||||
# guard against executing this block twice due to bats internals
|
setup() {
|
||||||
if [ -z "$PYENV_TEST_DIR" ]; then
|
if ! enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
|
||||||
PYENV_TEST_DIR="${BATS_TMPDIR}/pyenv"
|
|
||||||
export PYENV_TEST_DIR="$(mktemp -d "${PYENV_TEST_DIR}.XXX" 2>/dev/null || echo "$PYENV_TEST_DIR")"
|
|
||||||
|
|
||||||
if enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then
|
|
||||||
export PYENV_TEST_DIR="$(realpath "$PYENV_TEST_DIR")"
|
|
||||||
else
|
|
||||||
if [ -n "$PYENV_NATIVE_EXT" ]; then
|
if [ -n "$PYENV_NATIVE_EXT" ]; then
|
||||||
echo "pyenv: failed to load \`realpath' builtin" >&2
|
echo "pyenv: failed to load \`realpath' builtin" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
local bats_test_tmpdir="$(realpath "${BATS_TEST_TMPDIR}")"
|
||||||
|
if [ -z "${bats_test_tmpdir}" ];then
|
||||||
|
# Use readlink if running in a container instead of realpath lib
|
||||||
|
bats_test_tmpdir="$(readlink -f "${BATS_TEST_TMPDIR}")"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# update BATS_TEST_TMPDIR discover by realpath/readlink to avoid "//"
|
||||||
|
export BATS_TEST_TMPDIR="${bats_test_tmpdir}"
|
||||||
|
export PYENV_TEST_DIR="${BATS_TEST_TMPDIR}/pyenv"
|
||||||
export PYENV_ROOT="${PYENV_TEST_DIR}/root"
|
export PYENV_ROOT="${PYENV_TEST_DIR}/root"
|
||||||
export HOME="${PYENV_TEST_DIR}/home"
|
export HOME="${PYENV_TEST_DIR}/home"
|
||||||
export PYENV_HOOK_PATH="${PYENV_ROOT}/pyenv.d"
|
export PYENV_HOOK_PATH="${PYENV_ROOT}/pyenv.d"
|
||||||
@@ -28,10 +31,11 @@ if [ -z "$PYENV_TEST_DIR" ]; then
|
|||||||
|
|
||||||
for xdg_var in `env 2>/dev/null | grep ^XDG_ | cut -d= -f1`; do unset "$xdg_var"; done
|
for xdg_var in `env 2>/dev/null | grep ^XDG_ | cut -d= -f1`; do unset "$xdg_var"; done
|
||||||
unset xdg_var
|
unset xdg_var
|
||||||
fi
|
|
||||||
|
|
||||||
teardown() {
|
# If test specific setup exist, run it
|
||||||
rm -rf "$PYENV_TEST_DIR"
|
if [[ $(type -t _setup) == function ]];then
|
||||||
|
_setup
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
flunk() {
|
flunk() {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "${PYENV_TEST_DIR}/myproject"
|
mkdir -p "${PYENV_TEST_DIR}/myproject"
|
||||||
cd "${PYENV_TEST_DIR}/myproject"
|
cd "${PYENV_TEST_DIR}/myproject"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "${PYENV_TEST_DIR}"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "${PYENV_TEST_DIR}"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ create_version() {
|
|||||||
mkdir -p "${PYENV_ROOT}/versions/$1"
|
mkdir -p "${PYENV_ROOT}/versions/$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "${PYENV_TEST_DIR}"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
load test_helper
|
load test_helper
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "${PYENV_TEST_DIR}"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ create_version() {
|
|||||||
mkdir -p "${PYENV_ROOT}/versions/$1"
|
mkdir -p "${PYENV_ROOT}/versions/$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "${PYENV_ROOT}"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,4 +78,4 @@ OUT
|
|||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
3.3.3
|
3.3.3
|
||||||
OUT
|
OUT
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ create_alias() {
|
|||||||
ln -s "$2" "${PYENV_ROOT}/versions/$1"
|
ln -s "$2" "${PYENV_ROOT}/versions/$1"
|
||||||
}
|
}
|
||||||
|
|
||||||
setup() {
|
_setup() {
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "$PYENV_TEST_DIR"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
}
|
}
|
||||||
@@ -238,6 +238,7 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "non-bare output shows symlink contents" {
|
@test "non-bare output shows symlink contents" {
|
||||||
|
stub_system_python
|
||||||
create_version "1.9.0"
|
create_version "1.9.0"
|
||||||
create_alias "link" "1.9.0"
|
create_alias "link" "1.9.0"
|
||||||
|
|
||||||
|
|||||||
@@ -60,17 +60,19 @@ create_executable() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "doesn't include current directory in PATH search" {
|
@test "doesn't include current directory in PATH search" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
mkdir -p "$PYENV_TEST_DIR"
|
mkdir -p "$PYENV_TEST_DIR"
|
||||||
cd "$PYENV_TEST_DIR"
|
cd "$PYENV_TEST_DIR"
|
||||||
touch kill-all-humans
|
touch kill-all-humans
|
||||||
chmod +x kill-all-humans
|
chmod +x kill-all-humans
|
||||||
PATH="$(path_without "kill-all-humans")" PYENV_VERSION=system run pyenv-which kill-all-humans
|
PATH="$(path_without "kill-all-humans")" PYENV_VERSION=system run -127 pyenv-which kill-all-humans
|
||||||
assert_failure "pyenv: kill-all-humans: command not found"
|
assert_failure "pyenv: kill-all-humans: command not found"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "version not installed" {
|
@test "version not installed" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
create_executable "3.4" "py.test"
|
create_executable "3.4" "py.test"
|
||||||
PYENV_VERSION=3.3 run pyenv-which py.test
|
PYENV_VERSION=3.3 run -127 pyenv-which py.test
|
||||||
assert_failure <<OUT
|
assert_failure <<OUT
|
||||||
pyenv: version \`3.3' is not installed (set by PYENV_VERSION environment variable)
|
pyenv: version \`3.3' is not installed (set by PYENV_VERSION environment variable)
|
||||||
pyenv: py.test: command not found
|
pyenv: py.test: command not found
|
||||||
@@ -84,8 +86,9 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "versions not installed" {
|
@test "versions not installed" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
create_executable "3.4" "py.test"
|
create_executable "3.4" "py.test"
|
||||||
PYENV_VERSION=2.7:3.3 run pyenv-which py.test
|
PYENV_VERSION=2.7:3.3 run -127 pyenv-which py.test
|
||||||
assert_failure <<OUT
|
assert_failure <<OUT
|
||||||
pyenv: version \`2.7' is not installed (set by PYENV_VERSION environment variable)
|
pyenv: version \`2.7' is not installed (set by PYENV_VERSION environment variable)
|
||||||
pyenv: version \`3.3' is not installed (set by PYENV_VERSION environment variable)
|
pyenv: version \`3.3' is not installed (set by PYENV_VERSION environment variable)
|
||||||
@@ -100,22 +103,25 @@ OUT
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "no executable found" {
|
@test "no executable found" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
create_executable "2.7" "py.test"
|
create_executable "2.7" "py.test"
|
||||||
PYENV_VERSION=2.7 run pyenv-which fab
|
PYENV_VERSION=2.7 run -127 pyenv-which fab
|
||||||
assert_failure "pyenv: fab: command not found"
|
assert_failure "pyenv: fab: command not found"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "no executable found for system version" {
|
@test "no executable found for system version" {
|
||||||
PATH="$(path_without "rake")" PYENV_VERSION=system run pyenv-which rake
|
bats_require_minimum_version 1.5.0
|
||||||
|
PATH="$(path_without "rake")" PYENV_VERSION=system run -127 pyenv-which rake
|
||||||
assert_failure "pyenv: rake: command not found"
|
assert_failure "pyenv: rake: command not found"
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "executable found in other versions" {
|
@test "executable found in other versions" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
create_executable "2.7" "python"
|
create_executable "2.7" "python"
|
||||||
create_executable "3.3" "py.test"
|
create_executable "3.3" "py.test"
|
||||||
create_executable "3.4" "py.test"
|
create_executable "3.4" "py.test"
|
||||||
|
|
||||||
PYENV_VERSION=2.7 run pyenv-which py.test
|
PYENV_VERSION=2.7 run -127 pyenv-which py.test
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
pyenv: py.test: command not found
|
pyenv: py.test: command not found
|
||||||
@@ -188,11 +194,12 @@ exit
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "skip advice supresses error messages" {
|
@test "skip advice supresses error messages" {
|
||||||
|
bats_require_minimum_version 1.5.0
|
||||||
create_executable "2.7" "python"
|
create_executable "2.7" "python"
|
||||||
create_executable "3.3" "py.test"
|
create_executable "3.3" "py.test"
|
||||||
create_executable "3.4" "py.test"
|
create_executable "3.4" "py.test"
|
||||||
|
|
||||||
PYENV_VERSION=2.7 run pyenv-which py.test --skip-advice
|
PYENV_VERSION=2.7 run -127 pyenv-which py.test --skip-advice
|
||||||
assert_failure
|
assert_failure
|
||||||
assert_output <<OUT
|
assert_output <<OUT
|
||||||
pyenv: py.test: command not found
|
pyenv: py.test: command not found
|
||||||
|
|||||||
Reference in New Issue
Block a user