1
0
mirror of https://github.com/danog/ext-pq.git synced 2024-11-29 20:09:14 +01:00

now we're brave!

This commit is contained in:
Michael Wallner 2015-07-30 17:37:28 +02:00
parent add042bd76
commit 8b7efa3deb
9 changed files with 211 additions and 60 deletions

View File

@ -1,62 +1,44 @@
# autogenerated file; do not edit
language: c
env:
global:
- BUILD_SRC_DIR=/src
- BUILD_INSTALL_DIR=/install
- PHP_EXTENSIONS="--enable-json --with-mhash"
- PG_TEST_DB_NAME=pq_test
- PG_TEST_DB_USER=postgres
- REPORT_EXIT_STATUS=1
addons:
postgresql: 9.4
matrix:
include:
- env: PHP_TARGET_REF="PHP-5.4" PHP_CONFIGURE_OPTS=""
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.4" PHP_CONFIGURE_OPTS="--enable-debug"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.4" PHP_CONFIGURE_OPTS="--enable-maintainer-zts"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.4" PHP_CONFIGURE_OPTS="--enable-debug --enable-maintainer-zts"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.5" PHP_CONFIGURE_OPTS=""
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.5" PHP_CONFIGURE_OPTS="--enable-debug"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.5" PHP_CONFIGURE_OPTS="--enable-maintainer-zts"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.5" PHP_CONFIGURE_OPTS="--enable-debug --enable-maintainer-zts"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.6" PHP_CONFIGURE_OPTS=""
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.6" PHP_CONFIGURE_OPTS="--enable-debug"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.6" PHP_CONFIGURE_OPTS="--enable-maintainer-zts"
addons:
postgresql: 9.4
- env: PHP_TARGET_REF="PHP-5.6" PHP_CONFIGURE_OPTS="--enable-debug --enable-maintainer-zts"
addons:
postgresql: 9.4
env:
global:
- PQ_DSN="postgres://postgres@localhost/test"
matrix:
- PHP=5.4 enable_debug=no enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.5 enable_debug=no enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.6 enable_debug=no enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.4 enable_debug=yes enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.5 enable_debug=yes enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.6 enable_debug=yes enable_maintainer_zts=no enable_json=no enable_hash=yes
- PHP=5.4 enable_debug=no enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.5 enable_debug=no enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.6 enable_debug=no enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.4 enable_debug=yes enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.5 enable_debug=yes enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.6 enable_debug=yes enable_maintainer_zts=yes enable_json=no enable_hash=yes
- PHP=5.4 enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.5 enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.6 enable_debug=no enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.4 enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.5 enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.6 enable_debug=yes enable_maintainer_zts=no enable_json=yes enable_hash=yes
- PHP=5.4 enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes
- PHP=5.5 enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes
- PHP=5.6 enable_debug=no enable_maintainer_zts=yes enable_json=yes enable_hash=yes
- PHP=5.4 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes
- PHP=5.5 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes
- PHP=5.6 enable_debug=yes enable_maintainer_zts=yes enable_json=yes enable_hash=yes
before_script:
- ./travis/compile-php.sh
- ./travis/compile-ext-raphf.sh
- ./travis/compile-ext-pq.sh
- ./travis/configure-postgres.sh
- $HOME$BUILD_INSTALL_DIR/bin/php --ri pq
- make -f travis/pecl/Makefile php
- make -f travis/pecl/Makefile pecl PECL=raphf
- make -f travis/pecl/Makefile ext PECL=pq
script:
- $HOME$BUILD_INSTALL_DIR/bin/php ./run-tests.php -q -p $HOME$BUILD_INSTALL_DIR/bin/php --show-diff
- make -f travis/pecl/Makefile test
sudo: false

36
gen_travis_yml.php Executable file
View File

@ -0,0 +1,36 @@
#!/usr/bin/env php
# autogenerated file; do not edit
language: c
addons:
postgresql: 9.4
env:
global:
- PQ_DSN="postgres://postgres@localhost/test"
matrix:
<?php
$gen = include "./travis/pecl/gen-matrix.php";
$env = $gen([
"PHP" => ["5.4", "5.5", "5.6"],
"enable_debug",
"enable_maintainer_zts",
"enable_json",
"enable_hash" => ["yes"],
]);
foreach ($env as $e) {
printf(" - %s\n", $e);
}
?>
before_script:
- make -f travis/pecl/Makefile php
- make -f travis/pecl/Makefile pecl PECL=raphf
- make -f travis/pecl/Makefile ext PECL=pq
script:
- make -f travis/pecl/Makefile test
sudo: false

View File

@ -1,2 +1,2 @@
<?php
define("PQ_DSN", "host=localhost");
define("PQ_DSN", getenv("PQ_DSN") ?: "host=localhost");

View File

@ -20,7 +20,7 @@ var_dump($lob->tell());
$lob->seek(0, SEEK_SET);
$dat = $lob->read(filesize(__FILE__));
var_dump(hash("md5", $dat)==hash_file("md5", __FILE__));
var_dump(md5($dat)===md5_file(__FILE__));
$lob->truncate(5);
@ -35,7 +35,7 @@ DONE
--EXPECTF--
Test
bool(true)
int(489)
int(474)
bool(true)
string(5) "%c?php"
DONE

View File

@ -17,7 +17,7 @@ var_dump(ftell($lob->stream));
fseek($lob->stream, 0, SEEK_SET);
$dat = fread($lob->stream, filesize(__FILE__));
var_dump(hash("md5", $dat)==hash_file("md5", __FILE__));
var_dump(md5($dat)===md5_file(__FILE__));
ftruncate($lob->stream, 5);
@ -31,7 +31,7 @@ $t->unlinkLOB($lob->oid);
DONE
--EXPECTF--
Test
int(503)
int(488)
bool(true)
Warning: ftruncate(): Can't truncate this stream! in %s on line %d

View File

@ -2,8 +2,8 @@
large object import/export
--SKIPIF--
<?php include "_skipif.inc"; ?>
--CLEANUP--
rm lob004.tmp
--CLEAN--
<?php unlink("lob004.tmp"); ?>
--FILE--
<?php
echo "Test\n";
@ -17,7 +17,7 @@ $oid = $t->importLOB(__FILE__);
var_dump($oid);
$t->exportLOB($oid, "lob004.tmp");
var_dump(hash_file("md5",__FILE__)===hash_file("md5","lob004.tmp"));
var_dump(md5_file(__FILE__)===md5_file("lob004.tmp"));
?>
DONE

97
travis/pecl/Makefile Normal file
View File

@ -0,0 +1,97 @@
export
PHP = 5.6
JOBS ?= 2
PHP_MIRROR ?= http://us1.php.net/distributions/
prefix ?= $(HOME)
exec_prefix ?= $(prefix)
bindir = $(exec_prefix)/bin
srcdir := $(dir $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)))
enable_maintainer_zts ?= no
enable_debug ?= no
enable_all ?= no
with_config_file_scan_dir ?= $(prefix)/etc/php.d
with_php_config ?= $(bindir)/php-config
extdir = $(shell $(with_php_config) --extension-dir 2>/dev/null)
PECL_MIRROR ?= http://pecl.php.net/get/
PECL_EXTENSION ?= $(shell cut -d: -f1 <<<"$(PECL)")
PECL_SONAME ?= $(if $(shell cut -d: -f2 <<<"$(PECL)"),$(shell cut -d: -f2 <<<"$(PECL)"),$(PECL_EXTENSION))
PECL_VERSION ?= $(shell cut -d: -f3 -s <<<"$(PECL)")
PECL_INI = $(with_config_file_scan_dir)/pecl.ini
PHP_VERSION ?= $(shell php $(srcdir)/php-version.php $(PHP) < php-versions.json)
.PHONY: all php check clean reconf pecl ext test
.SUFFIXES:
all: php
## -- PHP
clean:
@if test -d $(srcdir)/php-$(PHP_VERSION); then cd $(srcdir)/php-$(PHP_VERSION); make distclean || true; done
check: $(srcdir)/php-versions.json
@if test -z "$(PHP)"; then echo "No php version specified, e.g. PHP=5.6"; exit 1; fi
reconf: check $(srcdir)/php-$(PHP_VERSION)/configure
cd $(srcdir)/php-$(PHP_VERSION) && ./configure -C --prefix=$(prefix)
php: check $(bindir)/php
$(srcdir)/php-versions.json: $(srcdir)/php-version.php
curl -Sso $@ http://php.net/releases/active.php
$(srcdir)/php-$(PHP_VERSION)/configure: | $(srcdir)/php-versions.json
curl -Ss $(PHP_MIRROR)/php-$(PHP_VERSION).tar.bz2 | tar xj -C $(srcdir)
$(srcdir)/php-$(PHP_VERSION)/Makefile: $(srcdir)/php-$(PHP_VERSION)/configure | $(srcdir)/php-versions.json
cd $(srcdir)/php-$(PHP_VERSION) && ./configure -C --prefix=$(prefix)
$(srcdir)/php-$(PHP_VERSION)/sapi/cli/php: $(srcdir)/php-$(PHP_VERSION)/Makefile | $(srcdir)/php-versions.json
cd $(srcdir)/php-$(PHP_VERSION) && make -s -j $(JOBS) V=0 || make
$(bindir)/php: $(srcdir)/php-$(PHP_VERSION)/sapi/cli/php | $(srcdir)/php-versions.json
cd $(srcdir)/php-$(PHP_VERSION) && make -s install V=0
$(with_config_file_scan_dir):
mkdir -p $@
## -- PECL
pecl-check:
@if test -z "$(PECL)"; then echo "No pecl extension specified, e.g. PECL=pecl_http:http"; exit 1; fi
$(PECL_INI): | $(with_config_file_scan_dir)
touch $@
$(srcdir)/pecl-$(PECL_EXTENSION):
test -e $@ || ln -s $(CURDIR) $@
$(srcdir)/pecl-$(PECL_EXTENSION)/config.m4:
mkdir -p $(srcdir)/pecl-$(PECL_EXTENSION)
curl -Ss $(PECL_MIRROR)/$(PECL_EXTENSION)$(if $(PECL_VERSION),/$(PECL_VERSION)) | tar xz --strip-components 1 -C $(srcdir)/pecl-$(PECL_EXTENSION)
$(srcdir)/pecl-$(PECL_EXTENSION)/configure: $(srcdir)/pecl-$(PECL_EXTENSION)/config.m4
cd $(srcdir)/pecl-$(PECL_EXTENSION) && $(bindir)/phpize
$(srcdir)/pecl-$(PECL_EXTENSION)/Makefile: $(srcdir)/pecl-$(PECL_EXTENSION)/configure
cd $(srcdir)/pecl-$(PECL_EXTENSION) && ./configure -C
$(srcdir)/pecl-$(PECL_EXTENSION)/.libs/$(PECL_SONAME).so: $(srcdir)/pecl-$(PECL_EXTENSION)/Makefile
cd $(srcdir)/pecl-$(PECL_EXTENSION) && make -s -j $(JOBS) V=0 || make
$(extdir)/$(PECL_SONAME).so: $(srcdir)/pecl-$(PECL_EXTENSION)/.libs/$(PECL_SONAME).so
cd $(srcdir)/pecl-$(PECL_EXTENSION) && make -s install V=0
pecl: pecl-check php $(extdir)/$(PECL_SONAME).so | $(PECL_INI)
grep -q extension=$(PECL_SONAME).so $(PECL_INI) || echo extension=$(PECL_SONAME).so >> $(PECL_INI)
ext: pecl-check $(srcdir)/pecl-$(PECL_EXTENSION) pecl
test: php
REPORT_EXIT_STATUS=1 NO_INTERACTION=1 $(bindir)/php run-tests.php -p $(bindir)/php --show-diff tests

View File

@ -0,0 +1,26 @@
<?php
return function ($array) {
foreach ($array as $key => $values) {
if (is_numeric($key) && is_string($values)) {
$key = $values;
$values = ["no","yes"];
}
if (empty($apc)) {
// seed
foreach ($values as $val) {
$apc[] = "$key=$val";
}
} else {
// combine
$cpc = $apc;
$apc = [];
foreach ($values as $val) {
foreach ($cpc as $e) {
$apc[] = "$e $key=$val";
}
}
}
}
return $apc;
};

View File

@ -0,0 +1,10 @@
<?php
$version = $argv[1];
$versions = json_decode(stream_get_contents(STDIN), 1);
list($major) = explode(".", $version, 2);
if (isset($versions[$major][$version])) {
printf("%s\n", $versions[$major][$version]["version"]);
}