I assumed it was the cookie auth thing detecting that a secret hasn't been set so it generates its own. I gave it about 30s of thought and couldn't think of something that was better than making sure the local_dev.ini was writable (which it should be).
On Fri, Apr 27, 2012 at 5:42 AM, Jan Lehnardt <[email protected]> wrote: > > On Apr 27, 2012, at 02:30 , Paul Davis wrote: > >> Found it: >> >> {set,"couch_httpd_auth","secret","81732db8242bbeacb35ce76fe44b554d",true} >> >> I'm just gonna make local_dev.ini writable and forget about it. This >> is just a VPATH build artifact because it forces the local.ini to be >> read-only. > > I'd prefer making that set not persistent. In addition, this call doesn't > occur in cookie_auth.js. > > Cheers > Jan > -- > > >> >> On Thu, Apr 26, 2012 at 7:20 PM, Randall Leeds <[email protected]> >> wrote: >>> On Thu, Apr 26, 2012 at 17:03, Paul Davis <[email protected]> >>> wrote: >>>> Now we figure out what its trying to write to. >>> >>> Blind guess: not using X-Couch-Persist: false for something? >>> >>>> >>>> On Thu, Apr 26, 2012 at 4:30 PM, Jan Lehnardt <[email protected]> wrote: >>>>> The problem is that the vpath directory has -w perms. Running >>>>> chmod -R +w apache-couchdb-1.3.0a-eb3d5d8-git and then >>>>> ./test/javascript/run again, it all works. >>>>> >>>>> What now? :) >>>>> >>>>> Cheers >>>>> Jan >>>>> -- >>>>> >>>>> >>>>> On Apr 26, 2012, at 22:55 , Jan Lehnardt wrote: >>>>> >>>>>> >>>>>> On Apr 26, 2012, at 22:26 , Jan Lehnardt wrote: >>>>>> >>>>>>> >>>>>>> On Apr 26, 2012, at 19:38 , Paul Davis wrote: >>>>>>> >>>>>>>> Reproduces for me. Also looks related to the vpath build because it >>>>>>>> only reproduces in distcheck and runs fine otherwise. Looking into it. >>>>>>> >>>>>>> one more interesting point, if you cd into the distcheck build dir, >>>>>>> currently apache-couchdb-1.3.0a-eb3d5d8-git/_build after the test fails >>>>>>> and then run ./test/javascript/run it all succeeds as well. >>>>>>> >>>>>>> Maybe we are digging in the wrong place? >>>>>> >>>>>> This however reproduces the failure: >>>>>> >>>>>>> ./apache-couchdb-1.3.0a-eb3d5d8-git/_build/test/javascript/run >>>>>>> cookie_auth >>>>>> >>>>>> *keeps digging* >>>>>> >>>>>>> >>>>>>> >>>>>>>> On Thu, Apr 26, 2012 at 6:56 AM, Jan Lehnardt <[email protected]> wrote: >>>>>>>>> Actually, no. >>>>>>>>> >>>>>>>>> I can now repeatedly get make distcheck to fail at >>>>>>>>> >>>>>>>>> not ok 18 cookie_auth >>>>>>>>> >>>>>>>>> on two different machines. I don't know if this was introduced in the >>>>>>>>> "fixing" commit or one of Paul's others. >>>>>>>>> >>>>>>>>> Full log: >>>>>>>>> >>>>>>>>> not ok 18 cookie_auth >>>>>>>>> Reason: false >>>>>>>>> Trace back (most recent call first): >>>>>>>>> >>>>>>>>> 46: >>>>>>>>> /Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../test/javascript/cli_runner.js >>>>>>>>> T(false) >>>>>>>>> 133: >>>>>>>>> /Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../share/www/script/test/cookie_auth.js >>>>>>>>> () >>>>>>>>> "[email protected]"}, "eh, Boo-Boo?");try >>>>>>>>> {usersDb.save(duplicateJchrisDoc);T(false && "Can't create duplicate >>>>>>>>> user names. Should have thrown an error.");} catch (e) {T(e.error == >>>>>>>>> "conflict");T(usersDb.last_req.status == 409);}var underscoreUserDoc >>>>>>>>> = CouchDB.prepareUserDoc({name: "_why"}, "copperfield");try >>>>>>>>> {usersDb.save(underscoreUserDoc);T(false && "Can't create underscore >>>>>>>>> user names. Should have thrown an error.");} catch (e) {T(e.error == >>>>>>>>> "forbidden");T(usersDb.last_req.status == 403);}var badIdDoc = >>>>>>>>> CouchDB.prepareUserDoc({name: "foo"}, "bar");badIdDoc._id = >>>>>>>>> "org.apache.couchdb:w00x";try {usersDb.save(badIdDoc);T(false && >>>>>>>>> "Can't create malformed docids. Should have thrown an error.");} >>>>>>>>> catch (e) {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(CouchDB.login("Jason Davies", >>>>>>>>> password).ok);T(CouchDB.session().userCtx.name == "Jason Davies");var >>>>>>>>> xhr = CouchDB.request("POST", "/_session", {headers: {'Content-Type': >>>>>>>>> "application/json"}, body: JSON.stringify({name: "Jason Davies", >>>>>>>>> password: >>>>>>>>> password})});T(JSON.parse(xhr.responseText).ok);T(CouchDB.session().userCtx.name >>>>>>>>> == "Jason Davies");jasonUserDoc.foo = >>>>>>>>> 2;T(usersDb.save(jasonUserDoc).ok);T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> == -1);try {usersDb.deleteDoc(jchrisUserDoc);T(false && "Can't >>>>>>>>> delete other users docs. Should have thrown an error.");} catch (e) >>>>>>>>> {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(!CouchDB.login("Jason Davies", >>>>>>>>> "2.71828").ok);T(!CouchDB.login("Robert Allen Zimmerman", >>>>>>>>> "d00d").ok);T(CouchDB.session().userCtx.name != "Jason Davies");xhr = >>>>>>>>> CouchDB.request("POST", "/_session?next=/", {headers: >>>>>>>>> {'Content-Type': "application/x-www-form-urlencoded"}, body: >>>>>>>>> "name=Jason%20Davies&password=" + encodeURIComponent(password)});if >>>>>>>>> (xhr.status == 200) {T(/Welcome/.test(xhr.responseText));}xhr = >>>>>>>>> CouchDB.request("POST", "/_session?fail=/", {headers: >>>>>>>>> {'Content-Type': "application/x-www-form-urlencoded"}, body: >>>>>>>>> "name=Jason%20Davies&password=foobar"});if (xhr.status == 200) >>>>>>>>> {T(/Welcome/.test(xhr.responseText));}T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.length == >>>>>>>>> 0);jasonUserDoc.foo = 3;try {usersDb.save(jasonUserDoc);T(false && >>>>>>>>> "Can't update someone else's user doc. Should have thrown an >>>>>>>>> error.");} catch (e) {T(e.error == >>>>>>>>> "forbidden");T(usersDb.last_req.status == 403);}jchrisUserDoc.roles = >>>>>>>>> ["foo"];try {usersDb.save(jchrisUserDoc);T(false && "Can't set roles >>>>>>>>> unless you are admin. Should have thrown an error.");} catch (e) >>>>>>>>> {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(CouchDB.logout().ok);jchrisUserDoc.foo = >>>>>>>>> ["foo"];T(save_as(usersDb, jchrisUserDoc, "jan"));jchrisUserDoc.roles >>>>>>>>> = ["_bar"];var res = save_as(usersDb, jchrisUserDoc, >>>>>>>>> "jan");T(res.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> == -1);T(CouchDB.session().userCtx.roles.indexOf("foo") != >>>>>>>>> -1);T(CouchDB.logout().ok);TEquals(true, CouchDB.login("jan", >>>>>>>>> "apple").ok);run_on_modified_server([{section: "admins", key: >>>>>>>>> "[email protected]", value: "funnybone"}], function () >>>>>>>>> {T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> != -1);T(CouchDB.session().userCtx.roles.indexOf("foo") != >>>>>>>>> -1);jchrisUserDoc = usersDb.open(jchrisUserDoc._id);delete >>>>>>>>> jchrisUserDoc.salt;delete >>>>>>>>> jchrisUserDoc.password_sha;T(usersDb.save(jchrisUserDoc).ok);T(CouchDB.logout().ok);T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);var s = CouchDB.session();T(s.userCtx.name == >>>>>>>>> "[email protected]");T(s.userCtx.roles.indexOf("_admin") != >>>>>>>>> -1);T(s.info.authenticated == "cookie");T(s.info.authentication_db == >>>>>>>>> "test_suite_users");T(CouchDB.session().userCtx.roles.indexOf("foo") >>>>>>>>> != -1);});} finally {T(CouchDB.logout().ok);}TEquals(true, >>>>>>>>> CouchDB.login("jan", >>>>>>>>> "apple").ok);}))@/Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../share/www/script/couch_test_runner.js:380: >>>>>>>>> apache.org"}, "funnybone");T(usersDb.save(jchrisUserDoc).ok);var >>>>>>>>> duplicateJchrisDoc = CouchDB.prepareUserDoc({name >>>>>>>>> run_on_modified_server([object Array],(function () {try {var ddoc >>>>>>>>> = op >>>>>>>>> 286: >>>>>>>>> /Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../share/www/script/test/cookie_auth.js >>>>>>>>> () >>>>>>>>> "[email protected]"}, "eh, Boo-Boo?");try >>>>>>>>> {usersDb.save(duplicateJchrisDoc);T(false && "Can't create duplicate >>>>>>>>> user names. Should have thrown an error.");} catch (e) {T(e.error == >>>>>>>>> "conflict");T(usersDb.last_req.status == 409);}var underscoreUserDoc >>>>>>>>> = CouchDB.prepareUserDoc({name: "_why"}, "copperfield");try >>>>>>>>> {usersDb.save(underscoreUserDoc);T(false && "Can't create underscore >>>>>>>>> user names. Should have thrown an error.");} catch (e) {T(e.error == >>>>>>>>> "forbidden");T(usersDb.last_req.status == 403);}var badIdDoc = >>>>>>>>> CouchDB.prepareUserDoc({name: "foo"}, "bar");badIdDoc._id = >>>>>>>>> "org.apache.couchdb:w00x";try {usersDb.save(badIdDoc);T(false && >>>>>>>>> "Can't create malformed docids. Should have thrown an error.");} >>>>>>>>> catch (e) {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(CouchDB.login("Jason Davies", >>>>>>>>> password).ok);T(CouchDB.session().userCtx.name == "Jason Davies");var >>>>>>>>> xhr = CouchDB.request("POST", "/_session", {headers: {'Content-Type': >>>>>>>>> "application/json"}, body: JSON.stringify({name: "Jason Davies", >>>>>>>>> password: >>>>>>>>> password})});T(JSON.parse(xhr.responseText).ok);T(CouchDB.session().userCtx.name >>>>>>>>> == "Jason Davies");jasonUserDoc.foo = >>>>>>>>> 2;T(usersDb.save(jasonUserDoc).ok);T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> == -1);try {usersDb.deleteDoc(jchrisUserDoc);T(false && "Can't >>>>>>>>> delete other users docs. Should have thrown an error.");} catch (e) >>>>>>>>> {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(!CouchDB.login("Jason Davies", >>>>>>>>> "2.71828").ok);T(!CouchDB.login("Robert Allen Zimmerman", >>>>>>>>> "d00d").ok);T(CouchDB.session().userCtx.name != "Jason Davies");xhr = >>>>>>>>> CouchDB.request("POST", "/_session?next=/", {headers: >>>>>>>>> {'Content-Type': "application/x-www-form-urlencoded"}, body: >>>>>>>>> "name=Jason%20Davies&password=" + encodeURIComponent(password)});if >>>>>>>>> (xhr.status == 200) {T(/Welcome/.test(xhr.responseText));}xhr = >>>>>>>>> CouchDB.request("POST", "/_session?fail=/", {headers: >>>>>>>>> {'Content-Type': "application/x-www-form-urlencoded"}, body: >>>>>>>>> "name=Jason%20Davies&password=foobar"});if (xhr.status == 200) >>>>>>>>> {T(/Welcome/.test(xhr.responseText));}T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.length == >>>>>>>>> 0);jasonUserDoc.foo = 3;try {usersDb.save(jasonUserDoc);T(false && >>>>>>>>> "Can't update someone else's user doc. Should have thrown an >>>>>>>>> error.");} catch (e) {T(e.error == >>>>>>>>> "forbidden");T(usersDb.last_req.status == 403);}jchrisUserDoc.roles = >>>>>>>>> ["foo"];try {usersDb.save(jchrisUserDoc);T(false && "Can't set roles >>>>>>>>> unless you are admin. Should have thrown an error.");} catch (e) >>>>>>>>> {T(e.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);}T(CouchDB.logout().ok);jchrisUserDoc.foo = >>>>>>>>> ["foo"];T(save_as(usersDb, jchrisUserDoc, "jan"));jchrisUserDoc.roles >>>>>>>>> = ["_bar"];var res = save_as(usersDb, jchrisUserDoc, >>>>>>>>> "jan");T(res.error == "forbidden");T(usersDb.last_req.status == >>>>>>>>> 403);T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> == -1);T(CouchDB.session().userCtx.roles.indexOf("foo") != >>>>>>>>> -1);T(CouchDB.logout().ok);TEquals(true, CouchDB.login("jan", >>>>>>>>> "apple").ok);run_on_modified_server([{section: "admins", key: >>>>>>>>> "[email protected]", value: "funnybone"}], function () >>>>>>>>> {T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);T(CouchDB.session().userCtx.name == >>>>>>>>> "[email protected]");T(CouchDB.session().userCtx.roles.indexOf("_admin") >>>>>>>>> != -1);T(CouchDB.session().userCtx.roles.indexOf("foo") != >>>>>>>>> -1);jchrisUserDoc = usersDb.open(jchrisUserDoc._id);delete >>>>>>>>> jchrisUserDoc.salt;delete >>>>>>>>> jchrisUserDoc.password_sha;T(usersDb.save(jchrisUserDoc).ok);T(CouchDB.logout().ok);T(CouchDB.login("[email protected]", >>>>>>>>> "funnybone").ok);var s = CouchDB.session();T(s.userCtx.name == >>>>>>>>> "[email protected]");T(s.userCtx.roles.indexOf("_admin") != >>>>>>>>> -1);T(s.info.authenticated == "cookie");T(s.info.authentication_db == >>>>>>>>> "test_suite_users");T(CouchDB.session().userCtx.roles.indexOf("foo") >>>>>>>>> != -1);});} finally {T(CouchDB.logout().ok);}TEquals(true, >>>>>>>>> CouchDB.login("jan", "apple").ok);};var usersDb = new >>>>>>>>> CouchDB("test_suite_users", {'X-Couch-Full-Commit': >>>>>>>>> "false"});usersDb.deleteDb();usersDb.createDb();run_on_modified_server([{section: >>>>>>>>> "couch_httpd_auth", key: "authentication_db", value: >>>>>>>>> "test_suite_users"}, {section: "couch_httpd_auth", key: "iterations", >>>>>>>>> value: "1"}, {section: "admins", key: "jan", value: "apple"}], >>>>>>>>> testFun);}))@/Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../test/javascript/cli_runner.js:53: >>>>>>>>> apache.org"}, "funnybone");T(usersDb.save(jchrisUserDoc).ok);var >>>>>>>>> duplicateJchrisDoc = CouchDB.prepareUserDoc({name >>>>>>>>> var testFun = function () {try {var ddoc = open_as(usersDb, >>>>>>>>> "_design/_ >>>>>>>>> 72: >>>>>>>>> /Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../test/javascript/cli_runner.js >>>>>>>>> runAllTestsConsole() >>>>>>>>> 85: >>>>>>>>> /Users/jan/Work/couchdb/apache-couchdb-1.3.0a-0250310-git/_build/../test/javascript/cli_runner.js >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> On Apr 26, 2012, at 13:27 , Jan Lehnardt wrote: >>>>>>>>> >>>>>>>>>> Paul fixed this in >>>>>>>>>> http://git-wip-us.apache.org/repos/asf/couchdb/commit/02503102 >>>>>>>>>> >>>>>>>>>> Cheers! >>>>>>>>>> >>>>>>>>>> On Apr 24, 2012, at 20:39 , Jan Lehnardt wrote: >>>>>>>>>> >>>>>>>>>>> Thanks for the replies! >>>>>>>>>>> >>>>>>>>>>> ./test/javascript/run.tpl, line 15: >>>>>>>>>>> >>>>>>>>>>> SRC_DIR=%abs_top_srcdir% >>>>>>>>>>> >>>>>>>>>>> What now? :) >>>>>>>>>>> >>>>>>>>>>> Jan >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> On Apr 24, 2012, at 20:25 , Paul Davis wrote: >>>>>>>>>>> >>>>>>>>>>>> Yeah. We'll need an $(abs_top_srcdir) or $(abs_top_builddir) here >>>>>>>>>>>> depending on how they're used. It can be a bit of a PITA if one of >>>>>>>>>>>> those needs to support write backs by one of the tests. Basic >>>>>>>>>>>> solution >>>>>>>>>>>> is to name them foo.ini.tpl and then "build" foo.ini and use >>>>>>>>>>>> $(abs_top_builddir) in that case. Where by "build" I mean `cp $< >>>>>>>>>>>> $@` >>>>>>>>>>>> or so. >>>>>>>>>>>> >>>>>>>>>>>> On Tue, Apr 24, 2012 at 12:04 PM, Randall Leeds >>>>>>>>>>>> <[email protected]> wrote: >>>>>>>>>>>>> On Tue, Apr 24, 2012 at 08:08, Jan Lehnardt <[email protected]> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>> On Apr 24, 2012, at 17:05 , Jan Lehnardt wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On Jan 27, 2012, at 02:37 , [email protected] wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> COUCHDB-1338 - run js tests with port=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> When the JS tests POST to /_restart, the server comes back up >>>>>>>>>>>>>>>> on a >>>>>>>>>>>>>>>> different port. To work around this, add a getter property for >>>>>>>>>>>>>>>> the >>>>>>>>>>>>>>>> CouchHTTP.prototype.base_url property, using a reserved slot >>>>>>>>>>>>>>>> on the >>>>>>>>>>>>>>>> object to store the value. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Project: http://git-wip-us.apache.org/repos/asf/couchdb/repo >>>>>>>>>>>>>>>> Commit: >>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/couchdb/commit/d20e7926 >>>>>>>>>>>>>>>> Tree: >>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/couchdb/tree/d20e7926 >>>>>>>>>>>>>>>> Diff: >>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/couchdb/diff/d20e7926 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Branch: refs/heads/master >>>>>>>>>>>>>>>> Commit: d20e792617db738dd5ad0e046ae847cd740f586f >>>>>>>>>>>>>>>> Parents: 257eb52 >>>>>>>>>>>>>>>> Author: Randall Leeds <[email protected]> >>>>>>>>>>>>>>>> Authored: Sat Jan 7 14:21:29 2012 -0800 >>>>>>>>>>>>>>>> Committer: Randall Leeds <[email protected]> >>>>>>>>>>>>>>>> Committed: Thu Jan 26 17:03:10 2012 -0800 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/help.h | 2 + >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/http.c | 60 >>>>>>>>>>>>>>>> +++++++++++++++++++++++++++++++- >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/http.h | 3 ++ >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/sm170.c | 8 ++++ >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/sm180.c | 8 ++++ >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/sm185.c | 8 ++++ >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/util.c | 3 +- >>>>>>>>>>>>>>>> src/couchdb/priv/couch_js/util.h | 2 + >>>>>>>>>>>>>>>> test/Makefile.am | 1 + >>>>>>>>>>>>>>>> test/etap/Makefile.am | 1 - >>>>>>>>>>>>>>>> test/etap/random_port.ini | 19 ---------- >>>>>>>>>>>>>>>> test/etap/test_util.erl.in | 2 +- >>>>>>>>>>>>>>>> test/javascript/Makefile.am | 1 + >>>>>>>>>>>>>>>> test/javascript/couch_http.js | 9 ++--- >>>>>>>>>>>>>>>> test/javascript/run.tpl | 9 ++++- >>>>>>>>>>>>>>>> test/random_port.ini | 19 ++++++++++ >>>>>>>>>>>>>>>> 16 files changed, 125 insertions(+), 30 deletions(-) >>>>>>>>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> [...] >>>>>>>>>>>>>>>> http://git-wip-us.apache.org/repos/asf/couchdb/blob/d20e7926/test/javascript/run.tpl >>>>>>>>>>>>>>>> ---------------------------------------------------------------------- >>>>>>>>>>>>>>>> diff --git a/test/javascript/run.tpl b/test/javascript/run.tpl >>>>>>>>>>>>>>>> index 47d2f6e..ac78b50 100644 >>>>>>>>>>>>>>>> --- a/test/javascript/run.tpl >>>>>>>>>>>>>>>> +++ b/test/javascript/run.tpl >>>>>>>>>>>>>>>> @@ -17,6 +17,7 @@ SCRIPT_DIR=$SRC_DIR/share/www/script >>>>>>>>>>>>>>>> JS_TEST_DIR=$SRC_DIR/test/javascript >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> COUCHJS=%abs_top_builddir%/src/couchdb/priv/couchjs >>>>>>>>>>>>>>>> +COUCH_URI_FILE=%localstaterundir%/couch.uri >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> if [ "$#" -eq 0 ]; >>>>>>>>>>>>>>>> then >>>>>>>>>>>>>>>> @@ -48,11 +49,15 @@ abort() { >>>>>>>>>>>>>>>> if [ -z $COUCHDB_NO_START ]; then >>>>>>>>>>>>>>>> make dev >>>>>>>>>>>>>>>> trap 'abort' 0 1 2 3 4 6 8 15 >>>>>>>>>>>>>>>> - ./utils/run -b -r 1 >>>>>>>>>>>>>>>> + ./utils/run -b -r 1 -n \ >>>>>>>>>>>>>>>> + -a $SRC_DIR/etc/couchdb/default_dev.ini \ >>>>>>>>>>>>>>>> + -a $SRC_DIR/test/random_port.ini \ >>>>>>>>>>>>>>>> + -a $SRC_DIR/etc/couchdb/local_dev.ini >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> Randall, this breaks vpath builds. removing the -n option and >>>>>>>>>>>>>>> the -n lines makes it work for me. >>>>>>>>>>>>>> >>>>>>>>>>>>>> … and the -a lines … >>>>>>>>>>>>> >>>>>>>>>>>>> Hmm. Maybe it should be "$(abs_top_builddir)" instead of SRC_DIR? >>>>>>>>>>>>> The -a ...random_port.ini is the crucial one, because that's the >>>>>>>>>>>>> point >>>>>>>>>>>>> of the patch. I can't remember at this moment why I needed to >>>>>>>>>>>>> specify >>>>>>>>>>>>> exactly all the configs and use the -n to reset the config chain, >>>>>>>>>>>>> but >>>>>>>>>>>>> I'm sure there was a reason (like random_port.ini not getting >>>>>>>>>>>>> preference over default_dev.ini or something). >>>>>>>>>>>>> >>>>>>>>>>>>> -R >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>> >>>>>> >>>>> >
