Failed test VerifyEnterpriseReferences
Hello,
DCDiag is failing at "VerifyEnterpriseReferences". Any assistance on this would be greatly appreciated, thanks!
Please see full details of error below:
Starting test: VerifyEnterpriseReferences
The following problems were found while verifying various important DN
references. Note, that these problems can be reported because of
latency in replication. So follow up to resolve the following
problems, only if the same problem is reported on all DCs for a given
domain or if the problem persists after replication has had
reasonable time to replicate changes.
[1] Problem: Missing Expected Value
Base Object:
CN=AUCHMAIL1,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=auchconstruction,DC=com
Base Object Description: "SYSVOL FRS Member Object"
Value Object Attribute Name: frsComputerReference
Value Object Description: "DC Account Object"
Recommended Action: Check if this server is deleted, and if so
clean up this DCs SYSVOL FRS Member Object. Also see Knowledge
Base Article: Q312862
[2] Problem: Missing Expected Value
Base Object:
CN=AUCHMAIL1,CN=Domain System Volume (SYSVOL share),CN=File Replication Service,CN=System,DC=auchconstruction,DC=com
Base Object Description: "SYSVOL FRS Member Object"
Value Object Attribute Name: serverReference
Value Object Description: "DSA Object"
Recommended Action: Check if this server is deleted, and if so
clean up this DCs SYSVOL FRS Member Object. Also see Knowledge
Base Article Q312862
......................... AUCHFILE01 failed test VerifyEnterpriseReferences
I have found the solution.
The server (AUCHMAIL1) was removed awhile back, but the reference to the server still remained in ADSI. I deleted the old server entry via ADSIedit.msc (Domain -> DC -> CN=System -> CN=File Replication Service -> CN=Domain System Volume (SYSVOL
share) -> CN=AUCHMAIL1) and confirmed no further errors thrown against 'VerifyEnterpriseReferences' during a DCDIAG.
Similar Messages
-
2.3.11 and 2.4.13 fail tests on OpenSuse 10.3 x86_64
I am trying to get php and perl API of BDBXML 2.3.11 and 2.4.13 running on OpenSuse 10.3 x86_64
when using --enable-perl the perl tests fail so i tried to run the test suite and compare it against 32bit builds.
2.3.11
after changing dbxml/dist/configure.ac like this:
367c367
< LIBTSO_MODSUFFIX=@MODSUFFIX@
LIBTSO_MODSUFFIX=$MODSUFFIX'make test' in dbxml/build_unix produces a ALL.OUT
using:
grep "^FAIL" -A 1 -B 1 dbxml-2.3.11/dbxml/build_unix/ALL.OUTstill produces lots of output. Since the 32bit version is working I compared the output produced on a 32bit ubuntu 07.10 with 64bit OpenSuse 10.3 which showed that following errors only occured on the 64bit system:
Xml003.3.1c: Put/get on both DB's
FAIL:10:16:44 (00:00:00) dbxml_dump/dbxml_load(3.3.1.dbxml:unexpected hexadecimal value ' '
load 3.3.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
FAIL:10:16:44 (00:00:00) Dump/load of 3.3.1.dbxml failed.
8.8: Query timeout
FAIL: should not have gotten here
FAIL:10:17:04 (00:00:00) 8.8.8 returned error value 1
FAIL:10:17:04 (00:00:00) 8.8.8: expected "1", got "0"
8.8: Container not found
12.4.1: update with duplicate index entries
FAIL:10:21:41 (00:00:00) dbxml_dump/dbxml_load(12.4.1.dbxml:unexpected hexadecimal value ' '
load 12.4.1.dbxml-dumpload: Error: Invalid argument): expected 0, got 1
FAIL:10:21:41 (00:00:00) Dump/load of 12.4.1.dbxml failed.there are more errors but they are not unique to the 64bit system. The shown messages repeat for different test settings(wholedoc/node - storage ...)
the errors occurring in 3.3.1c and 12.4.1 can also be reproduced using dbxml,dbxml_dump and dbxml_load:
./dbxml -h /tmp
dbxml>createcon test.dbxml
dbxml>putdoc phone1 '<phone/>'
dbxml>quit
./dbxml_dump -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test.dbxml
./dbxml_load -h /tmp/ -f /tmp/dbxml_2.3.11_test.dbxml.dump test2.dbxml
2.4.13
The documentation states that the test should be run from within the tclsh, but I think make test should be supported too. (make test only works after adapting pathes to new location in dbxml/test/tcl/)
similar procedure as above shows that the bug responsible for failing 3.3.1c and 12.4.1 is fixed
and 8.8.8 still fails.
Having a look at 8.8.8 my assumption is that the test fails simply because the machine is too fast (2.13Ghz Core2Duo) and executes the test query before the set timeout is triggered.
Now back to perl:
2.3.11 tests fail with:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 43/89BDB XML: unexpected hexadecimal value ' '
failed
Error: Invalid argument in t/XmlManager.t, line 350
# Looks like you planned 89 tests but only ran 51.
t/XmlManager....dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 52-89
Failed 38/89 tests, 57.30% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
t/XmlManager.t 255 65280 89 76 85.39% 52-89
Failed 1/1 test scripts, 0.00% okay. 38/89 subtests failed, 57.30% okay.after wrapping the call to loadContainer in test 51 in eval {} catch{}
the output looks like this (no further failures)
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 1/89BDB XML: unexpected hexadecimal value ' '
failed with std exception:Error: Invalid argument in t/XmlManager.t, line 350
# Failed test 'dump and load failed'
# in t/XmlManager.t at line 363.
t/XmlManager....ok 53/89# Looks like you failed 1 test of 89.
t/XmlManager....dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 52
Failed 1/89 tests, 98.88% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
t/XmlManager.t 1 256 89 1 1.12% 52
Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.luckily this is the only test that fails:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
Failed Test Stat Wstat Total Fail Failed List of Failed
t/XmlManager.t 1 256 89 1 1.12% 522.4.13 tests fail with:
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/*.t
Failed Test Stat Wstat Total Fail Failed List of Failed
t/XmlManager.t 1 256 89 1 1.12% 43
t/XmlQueryContext.t 255 65280 33 62 187.88% 3-33
t/XmlValue.t 1 256 248 1 0.40% 245
looking at XmlManager test shows that it is not the same as above but something else
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, '../blib/lib', '../blib/arch')" t/XmlManager.t
t/XmlManager....ok 32/89
# Failed test 'getIndexNodes'
# in t/XmlManager.t at line 275.
t/XmlManager....ok 52/89# Looks like you failed 1 test of 89.
t/XmlManager....dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 43
Failed 1/89 tests, 98.88% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
t/XmlManager.t 1 256 89 1 1.12% 43
Failed 1/1 test scripts, 0.00% okay. 1/89 subtests failed, 98.88% okay.The other two tests seem to fail because the tests are not correct, but i haven't had the time to look at them yet. Here is the output:
t/XmlQueryContext..........ok 1/33Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 194, <DATA> line 225.
Bareword "XmlQueryContext::DeadValues" not allowed while "strict subs" in use at t/XmlQueryContext.t line 195, <DATA> line 225.
Execution of t/XmlQueryContext.t aborted due to compilation errors.
# Looks like you planned 33 tests but only ran 2.
# Looks like your test died just after 2.
t/XmlQueryContext..........dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED tests 3-33
Failed 31/33 tests, 6.06% okay
t/XmlValue.................ok 1/248
# Failed test 'getLocalName'
# in t/XmlValue.t at line 410.
# got: ''
# expected: '#document'
t/XmlValue.................NOK 245# Looks like you failed 1 test of 248.
t/XmlValue.................dubious
Test returned status 1 (wstat 256, 0x100)
DIED. FAILED test 245
Failed 1/248 tests, 99.60% okaySo my questions are:
1. can and will the fix for dump/load be back ported to 2.3.11
2. is my assumption about 8.8.8 correct
3. is there a patch underway for perl on 2.4.13?
4. were there other issues in 2.3.11 that have been fixed in 2.4.13 but not back ported. especially regarding perl and php APIs on 64bit platforms.
I noticed that at least the patch provided in: PHP / BDB XML works fine on Red Hat Fedora 5, not on SuSE 10.2/Athlon 64 by djimenez was not incorporated into 2.3.11 (2.4.13 seems to be fixed)
5. since there seems to be no publicly available php test suite yet, will there be one in the near future?
all comments welcome,
thanks
Gordonfor anyone interested this is a patch for 2.3.11 that backports 64bit php fixes from 2.4.13. It also contains some other changes:
-additional php possibly wrong usage of long instead of int on 64 bit in db-4.5.20
-perl see: Re: perl script segfaults on putDocument
-dbxml tcl test: configure.ac LIBTSO_MODSUFFIX and setting the default tcl test to "run_all" instead of "run_xml"
Please note: The code looks a bit strange because the [ i ] access into an array is interpreted by the forum software and converted to <i>. So you cannot directly copy the patch from browser but need to copy the raw html and modify it (e.g. pass it through sed).
you'll need the <pre> </pre> part from this post and exchange <i> for [ i ] (without spaces) and <br> for '\n'. Maybe it will work. :-)
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/db-4.5.20/php_db4/db4.cpp dbxml-2.3.11-64/db-4.5.20/php_db4/db4.cpp
--- dbxml-2.3.11.orig/db-4.5.20/php_db4/db4.cpp 2006-09-16 03:20:58.000000000 +0200
+++ dbxml-2.3.11-64/db-4.5.20/php_db4/db4.cpp 2008-05-30 18:35:43.000000000 +0200
@@ -1203,7 +1203,7 @@
DB_TXN *dbtxn = NULL;
zval *dbtxn_obj = NULL;
char file = NULL, database = NULL;
- long filelen = 0, databaselen = 0;
+ int filelen = 0, databaselen = 0;
DBTYPE type = DB_BTREE;
u_int32_t flags = DB_CREATE;
int mode = 0;
@@ -2015,7 +2015,7 @@
DbEnv *dbe;
zval *self;
char *home;
- long homelen;
+ int homelen;
u_int32_t flags = 0;
self = getThis();
getDbEnvFromThis(dbenv);
@@ -2035,7 +2035,7 @@
DB_ENV *dbenv;
zval *self;
char *dir;
- long dirlen;
+ int dirlen;
self = getThis();
getDbEnvFromThis(dbenv);
if(zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &dir, &dirlen) == FAILURE)
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/dist/configure.ac dbxml-2.3.11-64/dbxml/dist/configure.ac
--- dbxml-2.3.11.orig/dbxml/dist/configure.ac 2007-01-19 16:52:44.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/dist/configure.ac 2008-06-02 18:30:41.000000000 +0200
@@ -364,7 +364,7 @@
LIBJSO_LN_INSTALL="test -f \$(libjso_base)-\$(SOVERSION).dylib && \$(ln) -f -s \$(libjso_base)-\$(SOVERSION).dylib \$(libjso_base)-\$(SOVERSION).jnilib";;
LIBTSO_MODULE="-module"
- LIBTSO_MODSUFFIX=@MODSUFFIX@
+ LIBTSO_MODSUFFIX=$MODSUFFIX
LIBJSO_LN_BUILD=""
LIBJSO_LN_INSTALL="";;
esac
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/dbxml/db_rdbt.c dbxml-2.3.11-64/dbxml/src/dbxml/db_rdbt.c
--- dbxml-2.3.11.orig/dbxml/src/dbxml/db_rdbt.c 2008-04-16 17:46:53.000000000 +0200
+++ dbxml-2.3.11-64/dbxml/src/dbxml/db_rdbt.c 2008-06-04 18:01:55.000000000 +0200
@@ -206,7 +206,7 @@
break;
buf[linelen++] = '\0';
} else
- linelen = strlen(buf) + 1;
+ linelen = (int) strlen(buf) + 1;
start += linelen;
if (name != NULL) {
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/dbxml/DbWrapper.cpp dbxml-2.3.11-64/dbxml/src/dbxml/DbWrapper.cpp
--- dbxml-2.3.11.orig/dbxml/src/dbxml/DbWrapper.cpp 2008-04-16 17:46:53.000000000 +0200
+++ dbxml-2.3.11-64/dbxml/src/dbxml/DbWrapper.cpp 2008-06-04 20:33:18.000000000 +0200
@@ -219,7 +219,7 @@
int version, ret, t_ret;
DBTYPE dbtype;
char *subdb;
- u_int32_t read_flags;
+ u_int32_t read_flags, tflags;
Dbt key, data;
db_recno_t recno, datarecno;
DB_ENV *dbenv = environment_ ? environment_->get_DB_ENV() : 0;
@@ -252,11 +252,14 @@
db_.err(ENOMEM, NULL);
goto err;
+
+ // work around gcc optimizer issue that seems to modify
+ // read_flags (4.1.1 on 64-bit linux)
+ tflags = read_flags;
/* Get each key/data pair and add them to the database. */
for (recno = 1;; ++recno) {
if ((ret = __db_rdbt(dbenv, key.get_DBT(), data.get_DBT(),
- read_flags, read_callback, in, lineno)) != 0) {
+ tflags, read_callback, in, lineno)) != 0) {
if (ret == EOF)
ret = 0;
break;
@@ -267,7 +270,7 @@
break;
case DB_KEYEXIST:
db_.errx("line %d: key already exists, not loaded:", *lineno);
- dbenv->prdbt(key.get_DBT(), read_flags & DB_READ_PRINTABLE,
+ dbenv->prdbt(key.get_DBT(), tflags & DB_READ_PRINTABLE,
0, &std::cerr, pr_callback, 0);
break;
default:
@@ -602,9 +605,9 @@
// but if incrementing the last byte results in a carry
// (value overflows and goes back to zero), then we have
// to increment the last-but-one byte - and so on.
- char maxPtr = (char )dbt.get_data();
+ unsigned char maxPtr = (unsigned char )dbt.get_data();
u_int32_t maxSize = dbt.get_size();
- char *pos = maxPtr + maxSize;
+ unsigned char *pos = maxPtr + maxSize;
for(--pos; pos >= maxPtr; --pos) {
++(*pos);
if(*pos != 0) break;
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/perl/DbXml/DbXml.xs dbxml-2.3.11-64/dbxml/src/perl/DbXml/DbXml.xs
--- dbxml-2.3.11.orig/dbxml/src/perl/DbXml/DbXml.xs 2006-11-22 23:56:13.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/perl/DbXml/DbXml.xs 2008-06-06 17:35:46.000000000 +0200
@@ -1313,20 +1313,20 @@
else if (sv_derived_from(contents, "XmlInputStream"))
XmlInputStream *s = GetObjPointer(contents, XmlInputStream);
+ ClearObjPointer(contents);
if (txn)
RETVAL = THIS->putDocument(*txn, name, s, *context, flags);
else
RETVAL = THIS->putDocument(name, s, *context, flags);
- ClearObjPointer(contents);
else if (sv_derived_from(contents, "XmlEventReader"))
XmlEventReader *s = GetObjPointer(contents, XmlEventReader);
+ ClearObjPointer(contents);
if (txn)
RETVAL = THIS->putDocument(*txn, name, s, context, flags);
else
RETVAL = THIS->putDocument(name, s, context, flags);
- ClearObjPointer(contents);
else
croak("putDocument parameter 2 should be an XmlInputStream, XmlEventReader or a string");
@@ -1560,7 +1560,7 @@
INIT:
MY_TRY
CLEANUP:
- ClearObjPointer(ST(1));
+ ClearObjPointer(ST(1));
MY_CATCH
string
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/perl/DbXml/t/XmlManager.t dbxml-2.3.11-64/dbxml/src/perl/DbXml/t/XmlManager.t
--- dbxml-2.3.11.orig/dbxml/src/perl/DbXml/t/XmlManager.t 2006-11-22 17:02:31.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/perl/DbXml/t/XmlManager.t 2008-06-06 17:31:39.000000000 +0200
@@ -346,14 +346,28 @@
ok -e "$tmp_dir/cont", "dumped content exists";
my $new_container_name = "$tmp_dir/new";
+ eval {
$mgr->loadContainer($new_container_name, "$tmp_dir/cont");
+
my $c1 = $mgr->openContainer($new_container_name);
my $doc = $c1->getDocument('x') ;
+
my $cont = $doc->getContent();
+
is $cont, $content, "getContent ok" ;
+ };
+ if (my $e = catch std::exception)
+ {
+ warn "failed with std exception:" . $e->what() . "\n";
+ ok 0, "dump and load failed with std::exception"
+ }
+ elsif ($@)
+ {
+ warn "failed\n";
+ warn $@ . "\n";
+ ok 0, "dump and load failed"
+ }
unlink "$tmp_dir/cont";
if (my $e = catch std::exception)
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_container.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_container.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_container.cpp 2006-10-30 18:46:02.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_container.cpp 2008-06-04 13:35:09.000000000 +0200
@@ -36,7 +36,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
std::string buffer = This.getName();
- RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
+ DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
PHP_DBXML_METHOD_END()
@@ -97,7 +97,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
char uri, name, *index;
- long urilen, namelen, indexlen;
+ int urilen, namelen, indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
&uri, &urilen, &name, &namelen, &index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -125,7 +125,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
char uri, name, *index;
- long urilen, namelen, indexlen;
+ int urilen, namelen, indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
&uri, &urilen, &name, &namelen, &index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -153,7 +153,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
char uri, name, *index;
- long urilen, namelen, indexlen;
+ int urilen, namelen, indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
&uri, &urilen, &name, &namelen, &index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -180,8 +180,8 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
- char uri, name, *index;
- long urilen, namelen, indexlen;
+ char *index;
+ int indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
&index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -208,8 +208,8 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
- char uri, name, *index;
- long urilen, namelen, indexlen;
+ char *index;
+ int indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
&index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -236,8 +236,8 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval zctx = NULL, ztxn = NULL;
- char uri, name, *index;
- long urilen, namelen, indexlen;
+ char *index;
+ int indexlen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O",
&index, &indexlen,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -270,7 +270,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval *ztxn = NULL;
char *name;
- long namelen;
+ int namelen;
long flags = 0;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
&name, &namelen, &flags)) {
@@ -299,7 +299,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval *ztxn = NULL;
char *handle;
- long handleLen;
+ int handleLen;
long flags = 0;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
&handle, &handleLen, &flags)) {
@@ -325,7 +325,8 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zdoc = NULL, zstream = NULL, zctx = NULL;
char name, contents;
- long namelen, contentslen, flags = 0;
+ int namelen, contentslen;
+ long flags = 0;
/* XmlDocument */
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|Ol",
&zdoc, php_dbxml_XmlDocument_ce,
@@ -389,8 +390,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zdoc = NULL, zstream = NULL, zctx = NULL;
- char name, contents;
- long namelen, contentslen, flags = 0;
+ long flags = 0;
/* XmlDocument */
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|Ol",
&zdoc, php_dbxml_XmlDocument_ce,
@@ -421,7 +421,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zdoc = NULL, *zctx = NULL;
char *name;
- long namelen, contentslen;
+ int namelen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|O",
&zdoc, php_dbxml_XmlDocument_ce,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -462,8 +462,6 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zdoc = NULL, *zctx = NULL;
- char *name;
- long namelen, contentslen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O|O",
&zdoc, php_dbxml_XmlDocument_ce,
&zctx, php_dbxml_XmlUpdateContext_ce)) {
@@ -489,9 +487,9 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zctx = NULL, *zvl = NULL;
char uri, name, *index;
- long urilen, namelen, indexlen;
- char puri, pname, *pindex;
- long purilen, pnamelen, pindexlen;
+ int urilen, namelen, indexlen;
+ char puri, pname;
+ int purilen, pnamelen;
long flags = 0;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Osss|Ol",
&zctx, php_dbxml_XmlQueryContext_ce,
@@ -582,9 +580,9 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
zval ztxn = NULL, zctx = NULL, *zvl = NULL;
char uri, name, *index;
- long urilen, namelen, indexlen;
- char puri, pname, *pindex;
- long purilen, pnamelen, pindexlen;
+ int urilen, namelen, indexlen;
+ char puri, pname;
+ int purilen, pnamelen;
if(SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "sss|O",
&uri, &urilen, &name, &namelen, &index, &indexlen,
&zvl, php_dbxml_XmlValue_ce))
@@ -660,7 +658,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
char *name;
- long namelen;
+ int namelen;
if(FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
return;
@@ -672,7 +670,7 @@
PHP_DBXML_STUFFED_THIS(XmlContainer);
char *name;
- long namelen;
+ int namelen;
if(FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
return;
@@ -712,9 +710,9 @@
if(ztxn) {
XmlTransaction txn = php_dbxml_get_XmlTransaction_object_pointer(ztxn TSRMLS_CC);
- RETURN_LONG(This.getNumDocuments(txn));
+ DBXML_RETURN_LONG(This.getNumDocuments(txn));
} else {
- RETURN_LONG(This.getNumDocuments());
+ DBXML_RETURN_LONG(This.getNumDocuments());
PHP_DBXML_METHOD_END()
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.cpp 2006-11-22 17:45:05.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml.cpp 2008-06-04 14:52:22.000000000 +0200
@@ -50,7 +50,7 @@
return;
- RETVAL_STRING((char*)dbxml_version(&M, &m, &p), 1);
+ RETVAL_STRING((char*)dbxml_version(&M, &m, &p), (int)1);
if (ZEND_NUM_ARGS()) {
convert_to_long(maj);
@@ -70,7 +70,7 @@
return;
- DbXml::setLogLevel((DbXml::LogLevel)level, on);
+ DbXml::setLogLevel((DbXml::LogLevel)level, (on != 0));
static PHP_FUNCTION(dbxml_set_log_category)
@@ -81,7 +81,7 @@
return;
- DbXml::setLogCategory((DbXml::LogCategory)level, on);
+ DbXml::setLogCategory((DbXml::LogCategory)level, (on != 0));
function_entry dbxml_functions[] = {
@@ -96,7 +96,7 @@
zend_class_entry ce;
#ifdef PHP_DBXML_EXCEPTIONS
- php_dbxml_init_exceptions();
+ php_dbxml_init_exceptions(TSRMLS_C);
#endif
PHP_DBXML_REGISTER_CLASS(XmlData, php_dbxml_XmlData_dtor);
PHP_DBXML_REGISTER_CLASS(XmlValue, php_dbxml_XmlValue_dtor);
@@ -108,6 +108,7 @@
PHP_DBXML_REGISTER_CLASS(XmlEventReader, php_dbxml_XmlEventReader_dtor);
PHP_DBXML_REGISTER_CLASS(XmlEventReaderToWriter, php_dbxml_XmlEventReaderToWriter_dtor);
PHP_DBXML_REGISTER_CLASS(XmlEventWriter, php_dbxml_XmlEventWriter_dtor);
+ PHP_DBXML_REGISTER_CLASS(XmlIndexLookup, php_dbxml_XmlIndexLookup_dtor);
PHP_DBXML_REGISTER_CLASS(XmlIndexSpecification, php_dbxml_XmlIndexSpecification_dtor);
PHP_DBXML_REGISTER_CLASS(XmlModify, php_dbxml_XmlModify_dtor);
PHP_DBXML_REGISTER_CLASS(XmlQueryContext, php_dbxml_XmlQueryContext_dtor);
@@ -141,9 +142,14 @@
REGISTER_LONG_CONSTANT( "DBXML_ENCRYPT", DBXML_ENCRYPT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "DBXML_GEN_NAME", DBXML_GEN_NAME, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "DBXML_LAZY_DOCS", DBXML_LAZY_DOCS, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT( "DBXML_DOCUMENT_PROJECTION", DBXML_DOCUMENT_PROJECTION, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT( "DBXML_NO_AUTO_COMMIT", DBXML_NO_AUTO_COMMIT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "DBXML_CACHE_DOCUMENTS", DBXML_CACHE_DOCUMENTS, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "DBXML_NO_INDEX_NODES", DBXML_NO_INDEX_NODES, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "DBXML_INDEX_NODES", DBXML_INDEX_NODES, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT( "DBXML_NO_STATISTICS", DBXML_NO_STATISTICS, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT( "DBXML_STATISTICS", DBXML_STATISTICS, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT( "DBXML_WELL_FORMED_ONLY", DBXML_WELL_FORMED_ONLY, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "LEVEL_NONE", LEVEL_NONE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "LEVEL_DEBUG", LEVEL_DEBUG, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT( "LEVEL_INFO", LEVEL_INFO, CONST_CS | CONST_PERSISTENT);
@@ -237,6 +243,8 @@
REGISTER_LONG_CONSTANT("XmlException_NULL_POINTER", XmlException::NULL_POINTER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XmlException_INDEXER_PARSER_ERROR", XmlException::INDEXER_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XmlException_DATABASE_ERROR", XmlException::DATABASE_ERROR, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT("XmlException_QUERY_PARSER_ERROR", XmlException::QUERY_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
+ //REGISTER_LONG_CONSTANT("XmlException_QUERY_EVALUATION_ERROR", XmlException::QUERY_EVALUATION_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XmlException_XPATH_PARSER_ERROR", XmlException::XPATH_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XmlException_DOM_PARSER_ERROR", XmlException::DOM_PARSER_ERROR, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("XmlException_XPATH_EVALUATION_ERROR", XmlException::XPATH_EVALUATION_ERROR, CONST_CS | CONST_PERSISTENT);
@@ -302,6 +310,9 @@
#if COMPILE_DL_DBXML
+#ifdef PHP_WIN32
+#include "zend_arg_defs.c"
+#endif
BEGIN_EXTERN_C()
ZEND_GET_MODULE(dbxml)
END_EXTERN_C()
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_data.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_data.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_data.cpp 2006-10-30 18:46:02.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_data.cpp 2008-06-04 14:58:27.000000000 +0200
@@ -39,7 +39,7 @@
WRONG_PARAM_COUNT;
- RETURN_STRINGL((char*)This.get_data(), This.get_size(), 1);
+ DBXML_RETURN_STRINGL((char*)This.get_data(), This.get_size(), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlData, set_data)
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_document.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_document.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_document.cpp 2006-10-30 18:46:02.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_document.cpp 2008-06-04 15:00:30.000000000 +0200
@@ -32,24 +32,6 @@
RETURN_BOOL(This == other);
} PHP_DBXML_METHOD_END()
-PHP_DBXML_METHOD_BEGIN(XmlDocument, getName)
- PHP_DBXML_STUFFED_THIS(XmlDocument);
- std::string buffer = This.getName();
- RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
-} PHP_DBXML_METHOD_END()
-PHP_DBXML_METHOD_BEGIN(XmlDocument, setName)
- PHP_DBXML_STUFFED_THIS(XmlDocument);
- char *name;
- long namelen;
- if(FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
- return;
- This.setName(std::string(name, namelen));
-} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlDocument, getContent)
PHP_DBXML_STUFFED_THIS(XmlDocument);
@@ -62,7 +44,7 @@
PHP_DBXML_STUFFED_THIS(XmlDocument);
std::string buffer;
This.getContent(buffer);
- RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
+ DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlDocument, getContentAsEventReader)
@@ -77,7 +59,7 @@
PHP_DBXML_STUFFED_THIS(XmlDocument);
zval *zv = NULL;
if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlEventWriter_ce)) {
- XmlEventWriter &writer = php_dbxml_get_XmlEventWriter_object_pointer(zv TSRMLS_DC);
+ XmlEventWriter &writer = php_dbxml_get_XmlEventWriter_object_ref(zv TSRMLS_CC);
This.getContentAsEventWriter(writer);
} PHP_DBXML_METHOD_END()
@@ -87,7 +69,7 @@
PHP_DBXML_STUFFED_THIS(XmlDocument);
zval zstr = NULL, zdat = NULL;
char *content;
- long contentlen;
+ int contentlen;
if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &content, &contentlen)) {
This.setContent(std::string(content, contentlen));
@@ -100,7 +82,7 @@
This.setContentAsXmlInputStream(str);
else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &zstr, php_dbxml_XmlEventReader_ce)) {
- XmlEventReader &reader = php_dbxml_get_XmlEventReader_object_pointer(zstr TSRMLS_DC);
+ XmlEventReader &reader = php_dbxml_get_XmlEventReader_object_ref(zstr TSRMLS_CC);
This.setContentAsEventReader(reader);
else {
@@ -123,7 +105,7 @@
PHP_DBXML_STUFFED_THIS(XmlDocument);
zval zvl = NULL, zdat = NULL;
char uri, name;
- long urilen, namelen;
+ int urilen, namelen;
if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss",
&uri, &urilen, &name, &namelen)) {
XmlValue vl;
@@ -140,7 +122,7 @@
PHP_DBXML_STUFFED_THIS(XmlDocument);
zval zvl = NULL, zdat = NULL;
char uri, name;
- long urilen, namelen;
+ int urilen, namelen;
if(SUCCESS == zend_parse_parameters(
ZEND_NUM_ARGS() TSRMLS_CC, "ssO",
&uri, &urilen, &name, &namelen,&zvl, php_dbxml_XmlValue_ce)) {
@@ -150,11 +132,11 @@
} PHP_DBXML_METHOD_END()
+PHP_DBXML_STRING_GETTER_AND_SETTER(XmlDocument, Name);
+
function_entry php_dbxml_XmlDocument_methods[] = {
PHP_ME(XmlDocument, XmlDocument, NULL, 0)
-PHP_ME(XmlDocument, getName, NULL, 0)
PHP_ME(XmlDocument, equals, NULL, 0)
-PHP_ME(XmlDocument, setName, NULL, 0)
PHP_ME(XmlDocument, getContent, NULL, 0)
PHP_ME(XmlDocument, getContentAsString, NULL, 0)
PHP_ME(XmlDocument, getContentAsEventReader, NULL, 0)
@@ -163,6 +145,7 @@
PHP_ME(XmlDocument, fetchAllData, NULL, 0)
PHP_ME(XmlDocument, getMetaData, NULL, 0)
PHP_ME(XmlDocument, setMetaData, NULL, 0)
+PHP_DBXML_ME_GETTER_AND_SETTER(XmlDocument, Name)
{NULL, NULL, NULL}
/* vim: set sts=2 ts=2 expandtab ai bs=2 : */
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreader.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreader.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreader.cpp 2006-11-15 17:53:11.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreader.cpp 2008-06-04 15:01:44.000000000 +0200
@@ -59,15 +59,15 @@
PHP_DBXML_STUFFED_REF(XmlEventReader);
int len;
const unsigned char *val = This.getValue(len);
- RETURN_STRINGL((char *)val, len, 1);
+ DBXML_RETURN_STRINGL((char *)val, len, 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, getValueLen)
PHP_DBXML_STUFFED_REF(XmlEventReader);
- int len;
+ int len;
(void) This.getValue(len);
- RETURN_LONG(len);
+ DBXML_RETURN_LONG(len);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, isAttributeSpecified)
@@ -86,7 +86,7 @@
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
RETURN_FALSE;
- RETURN_STRING((char *)This.getAttributeLocalName(index), 1);
+ DBXML_RETURN_STRING((char *)This.getAttributeLocalName(index), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributeNamespaceURI)
@@ -96,7 +96,7 @@
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
RETURN_FALSE;
- RETURN_STRING((char *)This.getAttributeNamespaceURI(index), 1);
+ DBXML_RETURN_STRING((char *)This.getAttributeNamespaceURI(index), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributePrefix)
@@ -106,7 +106,7 @@
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
RETURN_FALSE;
- RETURN_STRING((char *)This.getAttributePrefix(index), 1);
+ DBXML_RETURN_STRING((char *)This.getAttributePrefix(index), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, getAttributeValue)
@@ -116,7 +116,7 @@
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &index)) {
RETURN_FALSE;
- RETURN_STRING((char *)This.getAttributeValue(index), 1);
+ DBXML_RETURN_STRING((char *)This.getAttributeValue(index), 1);
} PHP_DBXML_METHOD_END()
PHP_DBXML_METHOD_BEGIN(XmlEventReader, needsEntityEscape)
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreadertowriter.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreadertowriter.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventreadertowriter.cpp 2006-10-30 18:46:03.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventreadertowriter.cpp 2008-06-03 18:02:40.000000000 +0200
@@ -24,9 +24,9 @@
&wval, php_dbxml_XmlEventWriter_ce,
&ownsReader)) {
XmlEventReader &reader =
- php_dbxml_get_XmlEventReader_object_pointer(rval TSRMLS_DC);
+ php_dbxml_get_XmlEventReader_object_ref(rval TSRMLS_CC);
XmlEventWriter &writer =
- php_dbxml_get_XmlEventWriter_object_pointer(wval TSRMLS_DC);
+ php_dbxml_get_XmlEventWriter_object_ref(wval TSRMLS_CC);
XmlEventReaderToWriter r2w(reader, writer, ownsReader);
php_dbxml_set_XmlEventReaderToWriter_object_factory(
getThis(), r2w TSRMLS_CC);
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventwriter.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventwriter.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_eventwriter.cpp 2006-11-15 17:53:11.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_eventwriter.cpp 2008-06-03 18:06:06.000000000 +0200
@@ -29,7 +29,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char lname, prefix, uri, value;
- long lLen, pLen, uLen, vLen;
+ int lLen, pLen, uLen, vLen;
bool specified = true; // optional in PHP interface
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ssss|b",
@@ -46,10 +46,10 @@
PHP_DBXML_METHOD_BEGIN(XmlEventWriter, writeText)
PHP_DBXML_STUFFED_REF(XmlEventWriter);
- long type;
+ int type;
char *text;
- long unused; // length is ignored if passed to PHP's writeText
- long tLen;
+ int unused; // length is ignored if passed to PHP's writeText
+ int tLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ls|l", &type,
&text, &tLen, &unused))
@@ -61,7 +61,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char target, data;
- long tLen, dLen;
+ int tLen, dLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &target,
&tLen, &data, &dLen))
@@ -73,7 +73,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char lname, prefix, *uri;
- long lLen, pLen, uLen, nattrs;
+ int lLen, pLen, uLen, nattrs;
bool empty = false; // default in PHP
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssl|b",
@@ -90,7 +90,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char lname, prefix, *uri;
- long lLen, pLen, uLen;
+ int lLen, pLen, uLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss",
&lname, &lLen, &prefix, &pLen, &uri, &uLen)) {
@@ -104,8 +104,8 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char *text;
- long unused; // length is ignored if passed
- long tLen;
+ int unused; // length is ignored if passed
+ int tLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
&text, &tLen, &unused))
@@ -119,7 +119,7 @@
char *version = 0;
char *encoding = 0;
char *standalone = 0;
- long vLen, eLen, sLen;
+ int vLen, eLen, sLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sss",
&version, &vLen, &encoding, &eLen,
@@ -140,7 +140,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char *name;
- long tLen;
+ int tLen;
bool expandedInfoFollows = true; // default this
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|b",
@@ -153,7 +153,7 @@
PHP_DBXML_STUFFED_REF(XmlEventWriter);
char *name;
- long tLen;
+ int tLen;
if (SUCCESS ==
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
&name, &tLen))
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_exception.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_exception.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_exception.cpp 2006-11-15 18:21:45.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_exception.cpp 2008-06-04 15:03:30.000000000 +0200
@@ -19,10 +19,14 @@
PHP_DBXML_DECLARE_CLASS(XmlException);
-void php_dbxml_init_exceptions()
+void php_dbxml_init_exceptions(TSRMLS_D)
zend_class_entry ce;
+#if (PHP_MAJOR_VERSION == 5) && (PHP_MINOR_VERSION < 2)
PHP_DBXML_REGISTER_CLASS_WITH_PARENT(XmlException, zend_exception_get_default(), php_dbxml_XmlException_dtor);
+#else
+ PHP_DBXML_REGISTER_CLASS_WITH_PARENT(XmlException, zend_exception_get_default(TSRMLS_C), php_dbxml_XmlException_dtor);
+#endif
zend_declare_property_long(php_dbxml_XmlException_ce, "code",
sizeof("code")-1, 0,
ZEND_ACC_PROTECTED TSRMLS_CC);
@@ -43,7 +47,7 @@
ZEND_ACC_PROTECTED TSRMLS_CC);
-void php_dbxml_throw_exception(const XmlException &xe)
+void php_dbxml_throw_exception(const XmlException &xe TSRMLS_DC)
zval *xml_ex;
MAKE_STD_ZVAL(xml_ex);
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.h dbxml-2.3.11-64/dbxml/src/php/php_dbxml.h
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml.h 2006-11-15 17:53:11.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml.h 2008-06-04 15:04:22.000000000 +0200
@@ -20,7 +20,6 @@
#ifndef PHP_DBXML_H
#define PHP_DBXML_H
extern zend_module_entry dbxml_module_entry;
#define phpext_dbxml_ptr &dbxml_module_entry
@@ -39,9 +38,7 @@
#endif
#ifdef PHP_DBXML_EXCEPTIONS
-extern "C" {
#include "zend_exceptions.h"
#endif
PHP_MINIT_FUNCTION(dbxml);
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexlookup.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexlookup.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexlookup.cpp 2006-10-30 18:46:03.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexlookup.cpp 2008-06-04 15:08:05.000000000 +0200
@@ -34,7 +34,7 @@
index = This.getIndex();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -65,7 +65,7 @@
index = This.getNodeURI();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -81,7 +81,7 @@
index = This.getNodeName();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -112,7 +112,7 @@
index = This.getParentURI();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -143,7 +143,7 @@
index = This.getParentName();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -183,7 +183,7 @@
zval *zv;
long op;
PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
- if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
+ if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
WRONG_PARAM_COUNT;
@@ -228,7 +228,7 @@
zval *zv;
long op;
PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
- if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
+ if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "Ol", &zv, php_dbxml_XmlValue_ce, &op))
WRONG_PARAM_COUNT;
@@ -257,9 +257,8 @@
PHP_DBXML_METHOD_BEGIN(XmlIndexLookup, setContainer)
zval *zv;
- long op;
PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
- if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlContainer_ce))
+ if (FAILURE == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &zv, php_dbxml_XmlContainer_ce))
WRONG_PARAM_COUNT;
@@ -276,19 +275,22 @@
long flags = 0;
PHP_DBXML_STUFFED_THIS(XmlIndexLookup);
+#define SET_PTR(expr) \
+ XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC); \
+ XmlResults r = expr; \
+ object_init_ex(return_value, php_dbxml_XmlResults_ce); \
+ php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
+
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"O|l", &zqc, php_dbxml_XmlQueryContext_ce, &flags)) {
- XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC);
- XmlResults r = This.execute(c, flags);
+ SET_PTR(This.execute(c, flags));
php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
} else if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"OO", &zt, php_dbxml_XmlTransaction_ce, &zqc, php_dbxml_XmlQueryContext_ce, &flags)) {
XmlTransaction t = php_dbxml_get_XmlTransaction_object_pointer(zt TSRMLS_CC);
- XmlQueryContext c = php_dbxml_get_XmlQueryContext_object_pointer(zqc TSRMLS_CC);
- XmlResults r = This.execute(t,c,flags);
- php_dbxml_set_XmlResults_object_pointer(return_value, r TSRMLS_CC);
+ SET_PTR(This.execute(t, c, flags));
} else {
WRONG_PARAM_COUNT;
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexspecification.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexspecification.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_indexspecification.cpp 2006-10-30 18:46:03.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_indexspecification.cpp 2008-06-04 15:08:49.000000000 +0200
@@ -156,7 +156,7 @@
if (This.find(std::string(uri, uri_len), std::string(name, name_len), index)) {
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} else {
RETURN_FALSE;
@@ -175,7 +175,7 @@
index = This.getDefaultIndex();
- RETURN_STRINGL((char*)index.data(), index.length(), 1);
+ DBXML_RETURN_STRINGL((char*)index.data(), index.length(), 1);
} PHP_DBXML_METHOD_END()
@@ -191,9 +191,9 @@
zval *el;
MAKE_STD_ZVAL(el);
array_init(el);
- add_assoc_stringl(el, "uri", (char *) uri.data(), uri.length(), 1);
- add_assoc_stringl(el, "name", (char *) name.data(), name.length(), 1);
- add_assoc_stringl(el, "index", (char *) index.data(), index.length(), 1);
+ add_assoc_stringl(el, "uri", (char *) uri.data(), (int)uri.length(), (int)1);
+ add_assoc_stringl(el, "name", (char *) name.data(), (int)name.length(), (int)1);
+ add_assoc_stringl(el, "index", (char *) index.data(), (int)index.length(), (int)1);
add_next_index_zval(return_value, el);
return;
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_inputstream.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_inputstream.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_inputstream.cpp 2006-10-30 18:46:03.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_inputstream.cpp 2008-06-03 18:12:07.000000000 +0200
@@ -37,7 +37,7 @@
Read a number of bytes and return them as a string */
PHP_DBXML_METHOD_BEGIN(XmlInputStream, readBytes)
- long toread;
+ int toread;
PHP_DBXML_GETTHIS(XmlInputStream);
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &toread)) {
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_int.hpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_int.hpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_int.hpp 2006-11-15 17:53:11.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_int.hpp 2008-06-04 15:57:38.000000000 +0200
@@ -11,14 +11,21 @@
# include "config.h"
#endif
+// this is here to work around a PHP build issue on Windows
+#include <iostream>
+
extern "C" {
#include "php.h"
#include "php_ini.h"
#include "ext/standard/info.h"
+#ifdef PHP_WIN32
+#include "php_db4.h"
+#else
#include "ext/db4/php_db4.h"
+#endif
+#include "php_dbxml.h"
#include <exception>
-#include "php_dbxml.h"
#include "dbxml/DbXml.hpp"
using namespace DbXml;
@@ -34,7 +41,7 @@
#define PHP_DBXML_METHOD_END() \
} catch(XmlException &xe) { \
- php_dbxml_throw_exception(xe); \
+ php_dbxml_throw_exception(xe TSRMLS_CC); \
catch(std::exception &e) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, e.what()); \
@@ -53,6 +60,15 @@
#endif
+// encapsulate calls to RETURN_STRINGL macro in PHP
+#define DBXML_RETURN_STRINGL(d, l, s) \
+ RETURN_STRINGL((char*)(d),(int)(l), (s))
+
+#define DBXML_RETURN_STRING(d, s) \
+ RETURN_STRING((char*)(d),(int)(s))
+
+#define DBXML_RETURN_LONG(l) RETURN_LONG((long)(l))
+
static inline void php_dbxml_set_object_pointer(zval object, int type, void ptr TSRMLS_DC)
zval *z;
@@ -120,10 +136,13 @@
zend_list_addref(Z_RESVAL_PP(prop));
-/* fun with those on-the-stack-only style object (XmlContainer) that have their own magic refcounts */
+/*
+ * macros to handle the Xml* objects
+ * "object_pointer" really means object reference (e.g. XmlDocument &)
+ */
#define PHP_DBXML_STUFFED_INSTANCES(class_type) \
- class php_dbxml_stuffed_##class_type { \
+ struct php_dbxml_stuffed_##class_type { \
public: class_type stuffed; \
php_dbxml_stuffed_##class_type(class_type &s): stuffed(s) {} \
@@ -136,7 +155,7 @@
struct php_dbxml_stuffed_##class_type *s = new struct php_dbxml_stuffed_##class_type(instance); \
php_dbxml_set_object_pointer(object, le_##class_type, s TSRMLS_CC); \
- static inline class_type php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
+ static inline class_type & php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
struct php_dbxml_stuffed_##class_type s = (struct php_dbxml_stuffed_##class_type ) \
php_dbxml_get_object_pointer(object, le_##class_type, php_dbxml_##class_type##_ce, #class_type TSRMLS_CC); \
if (s) { return s->stuffed; } /* does internal addref */ \
@@ -147,12 +166,14 @@
delete s; \
-// this is nearly identical to STUFFED_INSTANCES, above, with the exception
-// that it stores an object reference, not an actual instance, which
-// changes the member variable to a reference, along with the
-// accessor's return value. Everything else is identical.
+/*
+ * this is nearly identical to STUFFED_INSTANCES, above, with the exception
+ * that it stores an object reference, not an actual instance, which
+ * changes the member variable to a reference, along with the
+ * accessor's return value. Everything else is identical.
+ */
#define PHP_DBXML_STUFFED_REFERENCES(class_type) \
- class php_dbxml_stuffed_##class_type { \
+ struct php_dbxml_stuffed_##class_type { \
public: class_type &stuffed; \
php_dbxml_stuffed_##class_type(class_type &s): stuffed(s) {} \
@@ -165,7 +186,7 @@
struct php_dbxml_stuffed_##class_type *s = new struct php_dbxml_stuffed_##class_type(instance); \
php_dbxml_set_object_pointer(object, le_##class_type, s TSRMLS_CC); \
- static inline class_type &php_dbxml_get_##class_type##_object_pointer(zval *object TSRMLS_DC) { \
+ static inline class_type &php_dbxml_get_##class_type##_object_ref(zval *object TSRMLS_DC) { \
struct php_dbxml_stuffed_##class_type s = (struct php_dbxml_stuffed_##class_type ) \
php_dbxml_get_object_pointer(object, le_##class_type, php_dbxml_##class_type##_ce, #class_type TSRMLS_CC); \
if (s) { return s->stuffed; } /* does internal addref */ \
@@ -177,10 +198,10 @@
#define PHP_DBXML_STUFFED_THIS(class_type) \
- class_type This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
+ class_type &This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
#define PHP_DBXML_STUFFED_REF(class_type) \
- class_type &This = php_dbxml_get_##class_type##_object_pointer(getThis() TSRMLS_CC);
+ class_type &This = php_dbxml_get_##class_type##_object_ref(getThis() TSRMLS_CC);
#define PHP_DBXML_DECLARE_CLASS(class_type) \
int le_##class_type; \
@@ -197,7 +218,7 @@
int i;
for(i = 0; fe.handler; i++) {
fe[i].fname = strdup(fe[i].fname);
- zend_str_tolower(fe[i].fname, strlen(fe[i].fname));
+ zend_str_tolower(fe[i].fname, (unsigned int)strlen(fe[i].fname));
@@ -241,6 +262,27 @@
This->set##propname((proptype)val); \
+#define PHP_DBXML_STRING_GETTER_AND_SETTER(class_type, propname) \
+PHP_METHOD(class_type, get##propname) \
+{ \
+ PHP_DBXML_GETTHIS(class_type); \
+ if (ZEND_NUM_ARGS()) { \
+ WRONG_PARAM_COUNT; \
+ } \
+ std::string str = This->get##propname(); \
+ DBXML_RETURN_STRINGL((char*)str.data(), str.length(), 1); \
+} \
+PHP_METHOD(class_type, set##propname) \
+{ \
+ char *val; \
+ int val_len; \
+ PHP_DBXML_GETTHIS(class_type); \
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &val, &val_len)) { \
+ RETURN_FALSE; \
+ } \
+ This->set##propname(std::string(val, val_len)); \
+}
+
PHP_DBXML_EXTERN_CLASS(XmlContainer);
PHP_DBXML_EXTERN_CLASS(XmlData);
PHP_DBXML_EXTERN_CLASS(XmlManager);
@@ -261,8 +303,8 @@
PHP_DBXML_EXTERN_CLASS(XmlInputStream);
PHP_DBXML_EXTERN_CLASS(XmlValue);
#ifdef PHP_DBXML_EXCEPTIONS
-extern void php_dbxml_init_exceptions();
-extern void php_dbxml_throw_exception(const XmlException &xe);
+extern void php_dbxml_init_exceptions(TSRMLS_D);
+extern void php_dbxml_throw_exception(const XmlException &xe TSRMLS_DC);
PHP_DBXML_EXTERN_CLASS(XmlException);
PHP_DBXML_STUFFED_INSTANCES(XmlException);
#endif
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_manager.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_manager.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_manager.cpp 2006-10-30 18:46:04.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_manager.cpp 2008-06-04 15:13:37.000000000 +0200
@@ -8,7 +8,6 @@
#include "php_dbxml_int.hpp"
-#include "ext/db4/php_db4.h"
ZEND_RSRC_DTOR_FUNC(php_dbxml_XmlManager_dtor)
@@ -35,7 +34,7 @@
if (dbenv_obj) {
- dbenv = php_db4_getDbEnvFromObj(dbenv_obj);
+ dbenv = php_db4_getDbEnvFromObj(dbenv_obj TSRMLS_CC);
This = new XmlManager(DbEnv::get_DbEnv(dbenv), (unsigned int)flags);
} else {
This = new XmlManager((unsigned int)flags);
@@ -63,7 +62,7 @@
PHP_DBXML_GETTHIS(XmlManager);
char *name;
- long namelen;
+ int namelen;
int ret = 0;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
ret = This->existsContainer(std::string(name, namelen));
@@ -76,7 +75,8 @@
char *name;
// these must be the same as BDB XML defaults
- long namelen, flags = 0, mode = 0;
+ int namelen;
+ long flags = 0, mode = 0;
XmlContainer::ContainerType type = XmlContainer::NodeContainer;
zval *ztxn = NULL;
PHP_DBXML_GETTHIS(XmlManager);
@@ -108,7 +108,8 @@
PHP_DBXML_METHOD_BEGIN(XmlManager, openContainer)
char *name;
- long namelen, flags = 0, mode = 0;
+ int namelen;
+ long flags = 0, mode = 0;
XmlContainer::ContainerType type = XmlContainer::NodeContainer;
zval *ztxn = NULL;
PHP_DBXML_GETTHIS(XmlManager);
@@ -138,7 +139,7 @@
PHP_DBXML_GETTHIS(XmlManager);
zval *ztxn = NULL;
char *name;
- long namelen;
+ int namelen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &namelen)) {
This->removeContainer(std::string(name, namelen));
} else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen)) {
@@ -156,7 +157,7 @@
zval *ztxn = NULL;
XmlTransaction *txn = NULL;
char name, newname;
- long namelen, newnamelen;
+ int namelen, newnamelen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "ss", &name, &namelen, &newname, &newnamelen)) {
This->renameContainer(std::string(name, namelen), std::string(newname, newnamelen));
} else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &newname, &newnamelen)) {
@@ -174,7 +175,7 @@
PHP_DBXML_METHOD_BEGIN(XmlManager, createMemBufInputStream)
char buffer, bufID;
- long bufferlen, bufIDlen;
+ int bufferlen, bufIDlen;
PHP_DBXML_GETTHIS(XmlManager);
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &buffer, &bufferlen, &bufID, &bufIDlen)) {
return;
@@ -200,7 +201,7 @@
PHP_DBXML_METHOD_BEGIN(XmlManager, createQueryContext)
PHP_DBXML_GETTHIS(XmlManager);
- long rt = (long) XmlQueryContext::LiveValues, et = (long) XmlQueryContext::Eager;
+ int rt = (int) XmlQueryContext::LiveValues, et = (int) XmlQueryContext::Eager;
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ll", &rt, &et)) {
return;
@@ -228,8 +229,7 @@
zval *ztxn = NULL;
zval *zctx = NULL;
char *query;
- long querylen;
- XmlQueryContext *context;
+ int querylen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|O", &query, &querylen, &zctx, php_dbxml_XmlQueryContext_ce)) {
if(zctx) {
@@ -264,7 +264,8 @@
zval *ztxn = NULL;
zval *zctx = NULL;
char *query;
- long querylen, flags = 0;
+ int querylen;
+ long flags = 0;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &query, &querylen, &zctx, php_dbxml_XmlQueryContext_ce, &flags)) {
if(zctx) {
@@ -346,14 +347,15 @@
return;
XmlContainer cont = php_dbxml_get_XmlContainer_object_pointer(zc TSRMLS_CC);
+ XmlIndexLookup lu;
if(zv == NULL) {
XmlValue value = XmlValue();
- XmlIndexLookup lookup = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
- php_dbxml_set_XmlIndexLookup_object_factory(return_value, lookup TSRMLS_CC);
+ lu = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
+ php_dbxml_set_XmlIndexLookup_object_factory(return_value, lu TSRMLS_CC);
} else {
XmlValue value = php_dbxml_get_XmlValue_object_pointer(zv TSRMLS_CC);
- XmlIndexLookup lookup = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
- php_dbxml_set_XmlIndexLookup_object_factory(return_value, lookup TSRMLS_CC);
+ lu = This->createIndexLookup(cont, std::string(uri, uri_len), std::string(name, name_len), std::string(index, index_len), value, (XmlIndexLookup::Operation) flags);
+ php_dbxml_set_XmlIndexLookup_object_factory(return_value, lu TSRMLS_CC);
PHP_DBXML_ADDREF(getThis());
@@ -383,7 +385,7 @@
zval *zuc = NULL;
char *name;
long flags = 0;
- long namelen;
+ int namelen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else {
@@ -408,7 +410,7 @@
zval *zuc = NULL;
char *name;
long flags = 0;
- long namelen;
+ int namelen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else {
@@ -433,7 +435,7 @@
zval *zuc = NULL;
char *name;
long flags = 0;
- long namelen;
+ int namelen;
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "s|Ol", &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else if(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os|Ol", &ztxn, php_dbxml_XmlTransaction_ce, &name, &namelen, &zuc, php_dbxml_XmlUpdateContext_ce, &flags)) {
} else {
@@ -454,7 +456,7 @@
PHP_DBXML_GETTHIS(XmlManager);
std::string buffer = This->getHome();
- RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
+ DBXML_RETURN_STRINGL((char *)buffer.data(), buffer.length(), 1);
PHP_DBXML_METHOD_END()
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_modify.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_modify.cpp
--- dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_modify.cpp 2006-10-30 18:46:04.000000000 +0100
+++ dbxml-2.3.11-64/dbxml/src/php/php_dbxml_modify.cpp 2008-06-04 15:14:42.000000000 +0200
@@ -29,7 +29,7 @@
zval zexp, zres;
long type;
char name, content;
- long name_len, content_len;
+ int name_len, content_len;
PHP_DBXML_STUFFED_THIS(XmlModify);
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
@@ -66,7 +66,7 @@
zval zexp, zres;
long type;
char name, content;
- long name_len, content_len;
+ int name_len, content_len;
PHP_DBXML_STUFFED_THIS(XmlModify);
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
@@ -103,7 +103,7 @@
zval zexp, zres;
long type, location = -1;
char name, content;
- long name_len, content_len;
+ int name_len, content_len;
PHP_DBXML_STUFFED_THIS(XmlModify);
if (SUCCESS == zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET,
@@ -140,7 +140,7 @@
zval *zexp;
char *content;
- long content_len;
+ int content_len;
PHP_DBXML_STUFFED_THIS(XmlModify);
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &zexp, php_dbxml_XmlQueryExpression_ce,
@@ -159,7 +159,7 @@
zval *zexp;
char *content;
- long content_len;
+ int content_len;
PHP_DBXML_STUFFED_THIS(XmlModify);
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Os", &zexp, php_dbxml_XmlQueryExpression_ce,
@@ -208,8 +208,6 @@
PHP_DBXML_METHOD_BEGIN(XmlModify, execute)
- char *encoding;
- int encoding_len;
zval zv, zqc, zuc, zt;
PHP_DBXML_STUFFED_THIS(XmlModify);
diff -Naur -x '*xerces-c-src*' -x '*build_unix*' -x '*configure' -x '*Builder.pm' -x '*More.pm' -x'*const-c.inc' -x '*setup.py' dbxml-2.3.11.orig/dbxml/src/php/php_dbxml_querycontext.cpp dbxml-2.3.11-64/dbxml/src/php/php_dbxml_querycontext.cpp
--- dbxml-2.3.11.orig/dbxml/ -
Hi All,
I have the environment like DC1- 2k3 Service Pack 2 which is holding FSMO roles and now I build a new ADC DC2 – 2k8 R2 OS on different location (Subnet) . After completing ADC I run the DCDAIG on DC2 where I am getting below error
Not: I tried the configuration D4 and D2 for Burflag but no luck
Note: DC1 and DC2 both are on different location with different subnet.
Any suggestion or solution please
Doing primary tests
Testing server: indai\DC2
Starting test: Advertising
Warning: DsGetDcName returned information for
\\DC1.test.com, when we were trying to reach
DC2.
SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
......................... DC2 failed test Advertising
Starting test: FrsEvent
There are warning or error events within the last 24 hours after the
SYSVOL has been shared.
Failing SYSVOL replication problems may cause
Group Policy problems.
Starting test: NCSecDesc
Error NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS doesn't have
Replicating Directory Changes In Filtered Set
access rights for the naming context:
DC=DomainDnsZones,DC=mh-man,DC=biz
Error NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS doesn't have
Replicating Directory Changes In Filtered Set
access rights for the naming context:
DC=ForestDnsZones,DC=mh-man,DC=biz
......................... DC2 failed test NCSecDesc
Starting test: NetLogons
Unable to connect to the NETLOGON share! (\\DC2\netlogon)
[DC2] An net use or LsaPolicy operation failed with error
67, The network name cannot be found..
......................... DC2 failed test NetLogons
Starting test: SystemLog
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:40:54
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x00000032
Time Generated: 09/17/2014 16:40:54
Event String:
The time service detected a time difference of greater than 5000 milliseconds for 900 seconds. The time difference might be caused by synchronization with low-accuracy time sources or by suboptimal
network conditions. The time service is no longer synchronized and cannot provide the time to other clients or update the system clock. When a valid time stamp is received from a time service provider, the time service will correct itself.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:41:53
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:43:06
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:45:15
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:47:14
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:48:22
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:49:34
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:50:45
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:52:55
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
An error event occurred. EventID: 0x00000406
Time Generated: 09/17/2014 16:52:59
Event String:
The processing of Group Policy failed. Windows attempted to retrieve new Group Policy settings for this user or computer. Look in the details tab for error code and description. Windows will
automatically retry this operation at the next refresh cycle. Computers joined to the domain must have proper name resolution and network connectivity to a domain controller for discovery of new Group Policy objects and settings. An event will be logged when
Group Policy is successful.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:54:21
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:58:35
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 16:59:48
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 17:00:59
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 17:02:11
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 17:03:24
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 17:05:39
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x0000008E
Time Generated: 09/17/2014 17:06:47
Event String:
The time service has stopped advertising as a time source because the local clock is not synchronized.
A warning event occurred. EventID: 0x00000018
Time Generated: 09/17/2014 17:11:36
Event String:
Time Provider NtpClient: No valid response has been received from domain controller DC1.test.com after 8 attempts to contact it. This domain controller will be discarded as a time source and
NtpClient will attempt to discover a new domain controller from which to synchronize. The error was: The peer is unreachable.
......................... DC2 failed test SystemLog
Pradip SisodiyaHello,
please upload the following files so we could understand your setup:
ipconfig /all >c:\ipconfig.log [from each DC/DNS Server]
dcdiag /v /c /d /e /s:dcname >c:\dcdiag.log
repadmin /showrepl dc* /verbose /all /intersite >c:\repl.log ["dc* is a place holder for the starting name of the DCs if they all begin the same (if more then one DC exists)]
dnslint /ad /s "DCipaddress" (http://support.microsoft.com/kb/321045)
ADREPLSTATUS
http://www.microsoft.com/en-us/download/details.aspx?id=30005 can also be exported to file.
As the output will become large, DON'T post them into the thread, please use Windows OneDrive (https://onedrive.live.com) [with open access!]
and add the link from it here. Also the /e in dcdiag scans the complete forest, so better run it on COB.
Best regards
Meinolf Weber
MVP, MCP, MCTS
Microsoft MVP - Directory Services
My Blog: http://blogs.msmvps.com/MWeber
Disclaimer: This posting is provided AS IS with no warranties or guarantees and confers no rights.
Twitter: -
Dear All,
I need your help in order to resolve issue i got. I have domain controller, and additional domain controller in production and both were working fine untill i restore image on 'Domain Controller' and after that i was not able to browse 'AD'. I checked and
came to know that NETLOGIN service was PAUSED. i fixed that issue but when i went to Additional Domain, that machine was not able to find Dmain. i realise that DNS/LDAP is not working. I run the command "DCDIAG /TEST:DNS" just to check the connetivy,
and found DNS connectivity sissue on Main Domain controller. Please help me with the issue.
Window Server 2008
Domain Main : GTMAIN : 192.168.0.1
Additional Domain Controller : GTMAIN2 : 192.168.0.2
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\Administrator> DCDIAG /TEST:DNS
Directory Server Diagnosis
Performing initial setup:
Trying to find home server...
Home Server = GTMain
* Identified AD Forest.
Done gathering initial info.
Doing initial required tests
Testing server: Default-First-Site-Name\GTMAIN
Starting test: Connectivity
Although the Guid DNS name
(0d76309b-aebd-4f7e-b024-d0c3f380c1b1._msdcs.goldteam.co.uk) resolved
to the IP address (87.82.208.116), which could not be pinged, the
server name (GTMain.goldteam.co.uk) resolved to the IP address
(fe80::5efe:192.168.1.1%12) and could be pinged. Check that the IP
address is registered correctly with the DNS server.
Got error while checking LDAP and RPC connectivity. Please check your
firewall settings.
......................... GTMAIN failed test Connectivity
Doing primary tests
Testing server: Default-First-Site-Name\GTMAIN
Starting test: DNS
DNS Tests are running and not hung. Please wait a few minutes...
......................... GTMAIN passed test DNS
Running partition tests on : ForestDnsZones
Running partition tests on : DomainDnsZones
Running partition tests on : Schema
Running partition tests on : Configuration
Running partition tests on : goldteam
Running enterprise tests on : goldteam.co.uk
Starting test: DNS
Test results for domain controllers:
DC: GTMain.goldteam.co.uk
Domain: goldteam.co.uk
TEST: Basic (Basc)
Error: No LDAP connectivity
Warning: adapter
[00000014] Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Clien
t)
has invalid DNS server: 192.168.0.100 (<name unavailable>)
Warning: adapter
[00000014] Broadcom BCM5708C NetXtreme II GigE (NDIS VBD Clien
t)
has invalid DNS server: 212.135.1.36 (<name unavailable>)
Error: all DNS servers are invalid
No host records (A or AAAA) were found for this DC
TEST: Dynamic update (Dyn)
Warning: Failed to add the test record dcdiag-test-record in z
one goldteam.co.uk
TEST: Records registration (RReg)
Error: Record registrations cannot be found for all the network
adapters
Summary of test results for DNS servers used by the above domain
controllers:
DNS server: 192.168.0.100 (<name unavailable>)
2 test failure on this DNS server
PTR record query for the 1.0.0.127.in-addr.arpa. failed on the DN
S server 192.168.0.100 Name resolution is not functional. _ldap._t
cp.goldteam.co.uk. failed on the DNS server 192.168.0.100
DNS server: 212.135.1.36 (<name unavailable>)
2 test failure on this DNS server
Name resolution is not functional. _ldap._tcp.goldteam.co.uk. fai
led on the DNS server 212.135.1.36
Summary of DNS test results:
Auth Basc Forw Del Dyn RReg Ext
Domain: goldteam.co.uk
GTMain PASS FAIL PASS PASS WARN FAIL n/a
......................... goldteam.co.uk failed test DNS
C:\Users\Administrator>Thanks for the response.
DC1 :Main Domain Contoller: Issue @ momemnt because of restore. seems to me DNS is working/responoding
along wiht RPC but i can see that DNS service is started?
DC2 :Additional Domain Contoller: Healthy but i am not able to login on AD on that server becuase of
below mentioned issue
Naming information cannot be located becuase: the target principle name is incorrect
I am confused that if i downgrade the DC1,
how about if i am not able to recove AD?
which process should i adopt?
Thanks -
How can assign a PASS/FAIL test to each element of a cluster?
I would like to pass a cluster from Labview 8.6 to TestStand 4.1.1 and apply a pass/fail test to each boolean element of the cluster. For elements of the cluster that are string values, I would like to apply a string value test. For elements of the cluster that are numeric values, I would like to apply numeric value or limit tests. How can I do this?
Hi epsilon-delta,
The best way to do this would be to create a custom data type from that cluster and store the output of your vi to a local variable. You can then add Pass/Fail Test, Numeric Limit Test and String Value Test steps (using the None adapter) after the Action step to test each element of the cluster.
Eric B.
National Instruments -
Hi, I want to display the number of Passed / failed tests in Testtand xml report , please help me.
My requirement is later i should be able to display these number of passed/failed test in report header too.
Solved!
Go to Solution.I have attached a sequence to give you an idea of how to get the Result count (I didn't check it's working ), I have used "SequenceFilePostResultListEntry" callback to calculate the Result Count,
and the Result Count is passed to the "ModifyReportHeader" through File Globals, where you can edit the XML file to show it in the Repot (follow the link in my previous post).
Hope this helps
AshwiN,
Attachments:
Get Result Count.seq 8 KB -
Error with ADC on Azure dcdiag report failed test Advertising
ever since I built an ADC on azure for my domain I am getting the below errors on dcdiag
Starting test: Advertising
Warning: DsGetDcName returned information for \\V2DC.V2.COM, when we
were trying to reach V2-ADC02.
SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
......................... V2-ADC02 failed test Advertising
Unable to connect to the NETLOGON share! (\\V2-ADC02\netlogon)
[V2-ADC02] An net use or LsaPolicy operation failed with error 67,
The network name cannot be found..
......................... V2-ADC02 failed test NetLogonsI just gave it some time and the error is gone looks like replication over the internet was slower than I thought
-
DCDiag: SERVER6 failed test Advertising
This is one of quite a few errors I get after running a dcdiag on this particular domain controller:
Testing server: Default-First-Site-Name\SERVER6
Starting test: Advertising
Warning: DsGetDcName returned information for
\\server5.domain.local,
when we were trying to reach SERVER6.
SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
Anyone know what might be going on here? Why is information being returned for server5 instead of server6?Hi,
The error message SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE could be caused by that sysvol and netlogon share are not available.
Here are some suggestions for you:
Please open CMD then run "net share" command to confirm if they are shared successfully.
Make sure that needed ports for AD replication are not blocked in both directions and each DC has one IP address and one NIC card.
Make sure both DCs point to your DNS servers correctly. In addition, you can run ipconfig /registerdns and restart netlogon on each DC to re-register DNS records.
More detailed information, please refer to following threads:
SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE ......................... ad2008R2 failed test Advertising
http://social.technet.microsoft.com/Forums/windowsserver/en-US/6713c55f-0bc5-4d74-a18b-b867ccc9d059/server-is-not-responding-or-is-not-considered-suitable-ad2008r2-failed?forum=winserverDS
Failed Advertising Test
http://social.technet.microsoft.com/Forums/windowsserver/en-US/831c58de-003b-4b9d-9da4-7f3d992e74c6/failed-advertising-test?forum=winservergen
Best Regards,
Erin -
TS-OPUI shows Passed but there are fail-tests - why?
Hello,
i am using TS4.2.1 and LV8.6 in WIndowsXP. There i use the default TS-OPUI.
In the TS-OPUI there is in the left side a Execution-list with a final-result Passed/Failed and a color green/red.
When i click on a execution then it shows me on the right side the report of this execution.
Now i have the problem that TS shows a final result of PASSED but there are some fail-tests in the sequence that are shown in the report.
How is this possible?
ThanksI am getting nearer...
When the error occurs then Teststand shows me the RunTimeError-occured-popup (screenshot).
When selecting here: runCleanup -> then the result goes on Pass
When selecting here: ignore -> then the result goes on Fail.
I am sure that it is somewhere in the model.
Because when using the default-model (and not my custom model as above) then the result is going correct on Error when selecting runCleanup.
The question is nonly: Where is this set?
Attachments:
RunTimeError.jpg 59 KB -
Multiple Numeric Limit Test - Accessing only the failed tests
I would to access only the failed tests in a multiple numeric limit test. The specific information I want to access is the measurement value, low limit, high limit, and comparator type. I need to access these pieces of information during runtime from a Message Popup, therefore i have to use the Message Expression field in the "Text and Buttons" tab of the Message Popup step to access this information.
[DL]Hi,
PostStepFailureCallback is the one you want to start with. The only difference is where you get the data from the Step.Results.
For the Limits etc you will need to look in the Measurement property. Also, beware that you are dealing with an array of data.
Regards
Ray Farmer -
Trouble with the pass/fail test
I started having this trouble just recently and I can't figure out the problem. Just all of a sudden (without me changing anything anywhere apparently), whenever I call a pass/fail test and if the test fails, the sequence execution immediately goes to the <End Group> step. I want the execution to proceed with the next step regardless of a pass or a fail. I have rechecked the run options repeatedly and there's nothing in there that might be causing this. Also, if a pass/fail step fails and I am running on single pass, even the report does not get generated.
I know it can be really hard for someone out there to tell me what the problem is. I am posting this message here just to see if people have any general comments/suggestions on what might be going on (perhaps this is a common problem which someone has run into before). The comments/suggestions might help me debug the problem.
Thanks
AnujHi Anuj,
Do you have other step type in the same sequence or just Pass/Fail type?
What adapter type are you using, LabVIEW, CVI, etc...
Does it happen in the just one sequence or any sequence?
What versions are you using?
Posting an example would help.
Regard
Ray Farmer
Regards
Ray Farmer -
Lire la valeur retournée par une fonction (DLL) dans Pass/Fail test
Bonjour,
comme le titre l'indique je charche à tester une fonction en l'appelant d'une DLL (en C) en utilisant le Pass/Fail test. La fonction retourne la somme entre deux entier x et y.
Quel sont les étapes à suivre et surtout comment je peux récupérer la valeur retournée et faire un teste sur elle!!
Que dois-je écrire dans la rubrique "Data Source"...
Vous trouvez ci-joint une idée de ce que j'ai fait..
merci pour votre réponse
Pièces jointes :
PassFail.JPG 94 KBLa question n'est pas très claire...
Disons que si le but est de vérifier si la valeur est entre certaines bornes ex: 10<x<15 ou x<20 par exemple, alors il faut utiliser un "numericlimit test"
Pour réutiliser une valeur (variable) dans TestStand, le plus simple est de l'assigner à une variable locale dans TestStand. (Même méthode qu'en haut mais remplacer l'expression par Locals.MaVariable )
Rodéric L
Certified LabVIEW Architect -
With secondary dut machine, must i test all or only failed test in first dut?
I tested a device with DUT(device under test) pc.
In USB tests, 4 tests failed because these tests need USB2 - HighSpeedBehavior feature and DUT pc has only XHCI.In DeviceManager displays EHCI node, but the device connected with USB2 port is resided under USB3 XHCI node in DeviceManager. (This pc has 6
USB2 ports and 4 USB3 ports.)
So, I set up 2nd DUT pc(dut2) that has only USB2ports.
With dut2 pc, must i test all, or only failed tests ?Hi s.suzawa,
If you just reconnect your test device on another PC with USB2 port, which connected with USB3 port,
you can apply distributed testing methdology to merge several PCs results.
Refer the URL below in detail for distributed testing.
https://msdn.microsoft.com/en-us/library/windows/hardware/dn260167.aspx?f=255&MSPPError=-2147217396
YoYamada -
Disable Logging of Failed Tests by Individual Step
Hello All,
I have an experimental version of a test sequence that will loop through and attempt several different sets of input parameters until it obtains the desired outcome. When it does obtain the desired outcome, I then log/report the set of input parameters that were used, and disregard all others. The issue I am having is that I do not know how to disable logging of the step iterations that failed (the ones I want to disregard). I can disable reporting of failed tests for the entire sequence, but I do not know how to do limit it so specific tests/steps. I've tried a few ideas related to deleting the current element from the report, but that doesn't seem to work correctly for my application. Please advise.
Thanks in advance,
GSinMNThere is sure another way to solve it. How about looking into the "Step Execution" topic in the TestStand help?
You can see that as "Action Number" 18 (21/24 when looping) is evaluation of the Status. In Action Number 29, the Post Action is performed.
You can call a Sequence when the step result is passed or failed (independently).
The idea is to call a subsequence passing the Step reference and enter the results into the ResultList in there. The calling step(s) would not record their results.
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it. -
Revision: 23072
Revision: 23072
Author: [email protected]
Date: 2011-10-20 06:59:14 -0700 (Thu, 20 Oct 2011)
Log Message:
- fixed failing test on J2EE version based on .Net changes.
Modified Paths:
blazeds/trunk/qa/apps/qa-regress/testsuites/mxunit/tests/remotingService/dataTypes/Boolea nTypesTest.mxmlThe first thing I would do is go the the CF administrator and
make sure all of your DEBUG information is being displayed. By
default, some isn't. A lot of times when you get a .net error and
it tells you nothing, go to the area below Execution Time and there
is an exceptions area. That is usually where .NET errors are
returned (system.nullReferenceException for example).
When passing in strings, I typically assign it to a variable,
then pass in the variable. It shouldn't matter, but sometimes I
have run into issues with passing a string in. In your second
object, look at the date object. The Coldfusion date object and the
.Net date object are not the same. Hope this helps.
Maybe you are looking for
-
Help needed in executing pl/sql programs
hi all iam new to PL/SQL programming i have installed oracle 9i iam trying to practice some sample pl/sql programs i have opened oracle 9i and typed these commands sql>ed sum then a notepad opens where i type my pl/sql program and save it and then re
-
Error Installing IR Web Client Plug-in
My users started getting: "*Unexpected status 200 (OK) returned on http://installengine.com/oci_range_check.txt access check. Please check if the server is properly configured*." The IE browser has HTTP 1.1 settings checked. IR Web Client installatio
-
Continous update after iTunes install
Hi all, seems like since I installed the latest iTunes update my iPod does a full update everytime I connect it to my PC. I have close to 4,000 songs and takes a long time to finish. I am not possitive it is the iTunes update that is causing this pro
-
Error during CO-OM-CCA activation
Hello I try to activate the cube with "only necessery objects" option and I get an error during simulatiof of an installation: "Exception 'An exception with the type CX_SY_REF_IS_INITIAL oc' in progrmm 'CL_RSD_MDOB_VERS" Is this an ABAP error, or can
-
Ok, so I guess I'm a little slow and I'm just now realizing that I need to upgrade my system. I'm still on 10.2.8. I read in another post that it is possible to bypass all the other updates and go straight to the newest version, but from what I can t