diff options
55 files changed, 291 insertions, 161 deletions
diff --git a/Makefile.am b/Makefile.am index 8e858457..cb963ec6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,7 +37,7 @@ THANKS.gz: $(top_srcdir)/THANKS -gzip -9 < $< > $@ check: dev - prove test/etap/*.t + $(top_builddir)/test/etap/run cover: dev rm -f cover/*.coverdata @@ -57,6 +57,9 @@ dev: all mkdir -p $(top_builddir)/tmp/log mkdir -p $(top_builddir)/tmp/run +distclean-local: + rm -fr $(top_builddir)/tmp + .PHONY: local-clean local-clean: maintainer-clean @echo "This command is intended for maintainers to use;" @@ -69,7 +72,6 @@ local-clean: maintainer-clean rm -f $(top_srcdir)/test/etap/temp.* rm -f $(top_srcdir)/*.tar.gz rm -f $(top_srcdir)/*.tar.gz.* - rm -fr $(top_srcdir)/tmp find $(top_srcdir) -name Makefile.in -exec rm {} \; distcheck-hook: diff --git a/bin/Makefile.am b/bin/Makefile.am index f7eb2697..fc84b1a8 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -60,7 +60,7 @@ couchjs: couchjs.tpl chmod +x $@ couchjs_dev: couchjs.tpl - sed -e "s|%locallibbindir%|$(abs_top_srcdir)/src/couchdb|g" \ + sed -e "s|%locallibbindir%|$(abs_top_builddir)/src/couchdb|g" \ -e "s|%bug_uri%|@bug_uri@|g" \ -e "s|%package_author_address%|@package_author_address@|g" \ -e "s|%package_author_name%|@package_author_name@|g" \ diff --git a/configure.ac b/configure.ac index f48b8677..24667bcc 100644 --- a/configure.ac +++ b/configure.ac @@ -403,6 +403,10 @@ AC_CONFIG_FILES([src/etap/Makefile]) AC_CONFIG_FILES([src/ibrowse/Makefile]) AC_CONFIG_FILES([src/mochiweb/Makefile]) AC_CONFIG_FILES([test/Makefile]) +AC_CONFIG_FILES([test/etap/Makefile]) +AC_CONFIG_FILES([test/etap/test_util.erl]) +AC_CONFIG_FILES([test/javascript/Makefile]) +AC_CONFIG_FILES([test/view_server/Makefile]) AC_CONFIG_FILES([utils/Makefile]) AC_CONFIG_FILES([var/Makefile]) diff --git a/etc/couchdb/Makefile.am b/etc/couchdb/Makefile.am index 805274c4..b5d8aaf0 100644 --- a/etc/couchdb/Makefile.am +++ b/etc/couchdb/Makefile.am @@ -11,7 +11,7 @@ ## the License. couchprivlibdir = $(localerlanglibdir)/couch-$(version)/priv/lib -devcouchprivlibdir = $(abs_top_srcdir)/src/couchdb/.libs +devcouchprivlibdir = $(abs_top_builddir)/src/couchdb/.libs localconf_DATA = default.ini noinst_DATA = default_dev.ini local_dev.ini @@ -29,6 +29,7 @@ default.ini: default.ini.tpl sed -e "s|%bindir%|.|g" \ -e "s|%localconfdir%|$(localconfdir)|g" \ -e "s|%localdatadir%|../share/couchdb|g" \ + -e "s|%localbuilddatadir%|../share/couchdb|g" \ -e "s|%localstatelibdir%|../var/lib/couchdb|g" \ -e "s|%localstatelogdir%|../var/log/couchdb|g" \ -e "s|%couchprivlibdir%|../lib/couch-$(version)/priv/lib|g" \ @@ -39,6 +40,7 @@ default.ini: default.ini.tpl sed -e "s|%bindir%|$(bindir)|g" \ -e "s|%localconfdir%|$(localconfdir)|g" \ -e "s|%localdatadir%|$(localdatadir)|g" \ + -e "s|%localbuilddatadir%|$(localdatadir)|g" \ -e "s|%localstatelibdir%|$(localstatelibdir)|g" \ -e "s|%localstatelogdir%|$(localstatelogdir)|g" \ -e "s|%couchprivlibdir%|$(couchprivlibdir)|g" \ @@ -47,11 +49,12 @@ default.ini: default.ini.tpl endif default_dev.ini: default.ini.tpl - sed -e "s|%bindir%|$(abs_top_srcdir)/bin|g" \ - -e "s|%localconfdir%|$(abs_top_srcdir)/etc/couchdb|g" \ + sed -e "s|%bindir%|$(abs_top_builddir)/bin|g" \ + -e "s|%localconfdir%|$(abs_top_builddir)/etc/couchdb|g" \ -e "s|%localdatadir%|$(abs_top_srcdir)/share|g" \ - -e "s|%localstatelibdir%|$(abs_top_srcdir)/tmp/lib|g" \ - -e "s|%localstatelogdir%|$(abs_top_srcdir)/tmp/log|g" \ + -e "s|%localbuilddatadir%|$(abs_top_builddir)/share|g" \ + -e "s|%localstatelibdir%|$(abs_top_builddir)/tmp/lib|g" \ + -e "s|%localstatelogdir%|$(abs_top_builddir)/tmp/log|g" \ -e "s|%couchprivlibdir%|$(devcouchprivlibdir)|g" \ -e "s|%couchjs_command_name%|$(couchjs_dev_command_name)|g" \ < $< > $@ diff --git a/etc/couchdb/default.ini.tpl.in b/etc/couchdb/default.ini.tpl.in index 33385207..422292ff 100644 --- a/etc/couchdb/default.ini.tpl.in +++ b/etc/couchdb/default.ini.tpl.in @@ -31,7 +31,7 @@ secret = replace this with a real secret in your local.ini file require_valid_user = false [query_servers] -javascript = %bindir%/%couchjs_command_name% %localdatadir%/server/main.js +javascript = %bindir%/%couchjs_command_name% %localbuilddatadir%/server/main.js ; Changing reduce_limit to false will disable reduce_limit. ; If you think you're hitting reduce_limit with a "good" reduce function, diff --git a/license.skip b/license.skip index c7cfa20b..635a6d05 100644 --- a/license.skip +++ b/license.skip @@ -74,6 +74,12 @@ ^test/local.ini ^test/Makefile ^test/Makefile.in +^test/etap/Makefile +^test/etap/Makefile.in +^test/javascript/Makefile +^test/javascript/Makefile.in +^test/view_server/Makefile +^test/view_server/Makefile.in ^tmp/* ^THANKS ^utils/Makefile diff --git a/share/Makefile.am b/share/Makefile.am index 86ab8349..4adce5db 100644 --- a/share/Makefile.am +++ b/share/Makefile.am @@ -24,6 +24,7 @@ JS_FILE_COMPONENTS = \ JS_FILE_COMPONENTS_LAST = server/loop.js $(JS_FILE): $(JS_FILE_COMPONENTS) $(JS_FILE_COMPONENTS_LAST) + mkdir -p `dirname $(JS_FILE)` echo "// DO NOT EDIT THIS FILE BY HAND" > $@ echo >> $@ cat $^ >> $@ diff --git a/src/couchdb/priv/Makefile.am b/src/couchdb/priv/Makefile.am index 8c504dbc..fecaa64b 100644 --- a/src/couchdb/priv/Makefile.am +++ b/src/couchdb/priv/Makefile.am @@ -13,11 +13,18 @@ couchlibdir = $(localerlanglibdir)/couch-$(version) couchprivdir = $(couchlibdir)/priv -EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg +EXTRA_DIST = \ + couchspawnkillable.sh \ + stat_descriptions.cfg.in + +CLEANFILES = stat_descriptions.cfg couchpriv_DATA = stat_descriptions.cfg couchpriv_PROGRAMS = couchspawnkillable +%.cfg: %.cfg.in + cp $< $@ + if WINDOWS couchspawnkillable_SOURCES = couchspawnkillable_win.c endif diff --git a/src/couchdb/priv/stat_descriptions.cfg b/src/couchdb/priv/stat_descriptions.cfg.in index 91a1540f..91a1540f 100644 --- a/src/couchdb/priv/stat_descriptions.cfg +++ b/src/couchdb/priv/stat_descriptions.cfg.in diff --git a/src/erlang-oauth/Makefile.am b/src/erlang-oauth/Makefile.am index c87d7f68..1d123396 100644 --- a/src/erlang-oauth/Makefile.am +++ b/src/erlang-oauth/Makefile.am @@ -16,6 +16,7 @@ oauthebindir = $(localerlanglibdir)/erlang-oauth/ebin # we add a ./configure option to enable it. oauth_file_collection = \ + oauth.app.in \ oauth.erl \ oauth_hmac_sha1.erl \ oauth_http.erl \ @@ -23,9 +24,8 @@ oauth_file_collection = \ oauth_unix.erl \ oauth_uri.erl -oauthebin_static_file = oauth.app - oauthebin_make_generated_file_list = \ + oauth.app \ oauth.beam \ oauth_hmac_sha1.beam \ oauth_http.beam \ @@ -34,15 +34,16 @@ oauthebin_make_generated_file_list = \ oauth_uri.beam oauthebin_DATA = \ - $(oauthebin_static_file) \ - $(oauthebin_make_generated_file_list) + $(oauthebin_make_generated_file_list) -EXTRA_DIST = \ - $(oauth_file_collection) \ - $(oauthebin_static_file) +EXTRA_DIST = \ + $(oauth_file_collection) CLEANFILES = \ $(oauthebin_make_generated_file_list) +%.app: %.app.in + cp $< $@ + %.beam: %.erl $(ERLC) $(ERLC_FLAGS) $< diff --git a/src/erlang-oauth/oauth.app b/src/erlang-oauth/oauth.app.in index 6357b9b0..6357b9b0 100644 --- a/src/erlang-oauth/oauth.app +++ b/src/erlang-oauth/oauth.app.in diff --git a/src/ibrowse/Makefile.am b/src/ibrowse/Makefile.am index 76262a6e..510f36a9 100644 --- a/src/ibrowse/Makefile.am +++ b/src/ibrowse/Makefile.am @@ -13,6 +13,7 @@ ibrowseebindir = $(localerlanglibdir)/ibrowse-1.5.2/ebin ibrowse_file_collection = \ + ibrowse.app.in \ ibrowse.erl \ ibrowse_app.erl \ ibrowse_http_client.erl \ @@ -21,9 +22,8 @@ ibrowse_file_collection = \ ibrowse_sup.erl \ ibrowse_test.erl -ibrowseebin_static_file = ibrowse.app - ibrowseebin_make_generated_file_list = \ + ibrowse.app \ ibrowse.beam \ ibrowse_app.beam \ ibrowse_http_client.beam \ @@ -33,16 +33,17 @@ ibrowseebin_make_generated_file_list = \ ibrowse_test.beam ibrowseebin_DATA = \ - $(ibrowseebin_static_file) \ $(ibrowseebin_make_generated_file_list) EXTRA_DIST = \ $(ibrowse_file_collection) \ - $(ibrowseebin_static_file) \ ibrowse.hrl CLEANFILES = \ $(ibrowseebin_make_generated_file_list) +%.app: %.app.in + cp $< $@ + %.beam: %.erl $(ERLC) $(ERLC_FLAGS) $< diff --git a/src/ibrowse/ibrowse.app b/src/ibrowse/ibrowse.app.in index 4f43dd92..4f43dd92 100644 --- a/src/ibrowse/ibrowse.app +++ b/src/ibrowse/ibrowse.app.in diff --git a/src/mochiweb/Makefile.am b/src/mochiweb/Makefile.am index db46ace3..608d4dcd 100644 --- a/src/mochiweb/Makefile.am +++ b/src/mochiweb/Makefile.am @@ -20,6 +20,7 @@ mochiweb_file_collection = \ mochijson.erl \ mochijson2.erl \ mochinum.erl \ + mochiweb.app.in \ mochiweb.erl \ mochiweb_app.erl \ mochiweb_charref.erl \ @@ -37,8 +38,6 @@ mochiweb_file_collection = \ mochiweb_util.erl \ reloader.erl -mochiwebebin_static_file = mochiweb.app - mochiwebebin_make_generated_file_list = \ mochifmt.beam \ mochifmt_records.beam \ @@ -47,6 +46,7 @@ mochiwebebin_make_generated_file_list = \ mochijson.beam \ mochijson2.beam \ mochinum.beam \ + mochiweb.app \ mochiweb.beam \ mochiweb_app.beam \ mochiweb_charref.beam \ @@ -65,15 +65,16 @@ mochiwebebin_make_generated_file_list = \ reloader.beam mochiwebebin_DATA = \ - $(mochiwebebin_static_file) \ $(mochiwebebin_make_generated_file_list) EXTRA_DIST = \ - $(mochiweb_file_collection) \ - $(mochiwebebin_static_file) + $(mochiweb_file_collection) CLEANFILES = \ $(mochiwebebin_make_generated_file_list) +%.app: %.app.in + cp $< $@ + %.beam: %.erl $(ERLC) $(ERLC_FLAGS) $< diff --git a/src/mochiweb/mochiweb.app b/src/mochiweb/mochiweb.app.in index cd8dbb25..cd8dbb25 100644 --- a/src/mochiweb/mochiweb.app +++ b/src/mochiweb/mochiweb.app.in diff --git a/test/Makefile.am b/test/Makefile.am index c2e705bb..4c4e54ea 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -10,37 +10,5 @@ ## License for the specific language governing permissions and limitations under ## the License. -dist_TESTS = runner.sh +SUBDIRS = etap javascript view_server -EXTRA_DIST = \ - etap/030-doc-from-json.t \ - etap/080-config-get-set.t \ - etap/064-kt-counting.t \ - etap/081-config-override.1.ini \ - etap/100-ref-counter.t \ - etap/083-config-no-files.t \ - etap/070-couch-db.t \ - etap/010-file-basics.t \ - etap/060-kt-merging.t \ - etap/040-util.t \ - etap/110-replication-httpc.t \ - etap/062-kt-remove-leaves.t \ - etap/001-load.t \ - etap/111-replication-changes-feed.t \ - etap/063-kt-get-leaves.t \ - etap/090-task-status.t \ - etap/021-btree-reductions.t \ - etap/081-config-override.2.ini \ - etap/065-kt-stemming.t \ - etap/020-btree-basics.t \ - etap/081-config-override.t \ - etap/082-config-register.t \ - etap/112-replication-missing-revs.t \ - etap/011-file-headers.t \ - etap/061-kt-missing-leaves.t \ - etap/050-stream.t \ - etap/031-doc-to-json.t \ - query_server_spec.rb \ - run_native_process.es \ - runner.sh \ - test.js diff --git a/test/etap/001-load.t b/test/etap/001-load.t index f42ab3db..6f49e1ba 100755 --- a/test/etap/001-load.t +++ b/test/etap/001-load.t @@ -1,6 +1,5 @@ #!/usr/bin/env escript %% -*- erlang -*- -%%! -pa src/couchdb -sasl errlog_type error -boot start_sasl -noshell % Licensed under the Apache License, Version 2.0 (the "License"); you may not % use this file except in compliance with the License. You may obtain a copy of @@ -17,8 +16,7 @@ % Test that we can load each module. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(37), Modules = [ couch_btree, diff --git a/test/etap/002-erl-driver.t b/test/etap/002-erl-driver.t index 4a2a40da..f353eda4 100644 --- a/test/etap/002-erl-driver.t +++ b/test/etap/002-erl-driver.t @@ -13,8 +13,7 @@ main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(3), etap:is( couch_util:start_driver("src/couchdb/.libs"), diff --git a/test/etap/010-file-basics.t b/test/etap/010-file-basics.t index b6c95a6f..09b2f2b1 100755 --- a/test/etap/010-file-basics.t +++ b/test/etap/010-file-basics.t @@ -12,11 +12,10 @@ % License for the specific language governing permissions and limitations under % the License. -filename() -> "./test/etap/temp.010". +filename() -> test_util:build_file("test/etap/temp.010"). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(16), case (catch test()) of ok -> diff --git a/test/etap/011-file-headers.t b/test/etap/011-file-headers.t index d26629c0..4705f629 100755 --- a/test/etap/011-file-headers.t +++ b/test/etap/011-file-headers.t @@ -14,12 +14,11 @@ % License for the specific language governing permissions and limitations under % the License. -filename() -> "./test/etap/temp.011". +filename() -> test_util:build_file("test/etap/temp.011"). sizeblock() -> 4096. % Need to keep this in sync with couch_file.erl main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), {S1, S2, S3} = now(), random:seed(S1, S2, S3), diff --git a/test/etap/020-btree-basics.t b/test/etap/020-btree-basics.t index 93a139fb..18c4a836 100755 --- a/test/etap/020-btree-basics.t +++ b/test/etap/020-btree-basics.t @@ -14,14 +14,13 @@ % License for the specific language governing permissions and limitations under % the License. -filename() -> "./test/etap/temp.020". +filename() -> test_util:build_file("test/etap/temp.020"). rows() -> 250. -record(btree, {fd, root, extract_kv, assemble_kv, less, reduce}). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(48), case (catch test()) of ok -> diff --git a/test/etap/021-btree-reductions.t b/test/etap/021-btree-reductions.t index 64d390ed..3e19c767 100755 --- a/test/etap/021-btree-reductions.t +++ b/test/etap/021-btree-reductions.t @@ -18,8 +18,7 @@ filename() -> "./test/etap/temp.021". rows() -> 1000. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(8), case (catch test()) of ok -> diff --git a/test/etap/030-doc-from-json.t b/test/etap/030-doc-from-json.t index 45763173..dc3327aa 100755 --- a/test/etap/030-doc-from-json.t +++ b/test/etap/030-doc-from-json.t @@ -20,8 +20,7 @@ -record(att, {name, type, len, md5= <<>>, revpos=0, data}). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(26), case (catch test()) of ok -> diff --git a/test/etap/031-doc-to-json.t b/test/etap/031-doc-to-json.t index 00440abe..4e0c3f74 100755 --- a/test/etap/031-doc-to-json.t +++ b/test/etap/031-doc-to-json.t @@ -20,8 +20,7 @@ -record(att, {name, type, len, md5= <<>>, revpos=0, data}). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(12), case (catch test()) of ok -> diff --git a/test/etap/040-util.t b/test/etap/040-util.t index c4dffc4d..6d6da2c1 100755 --- a/test/etap/040-util.t +++ b/test/etap/040-util.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), application:start(crypto), etap:plan(11), diff --git a/test/etap/041-uuid-gen.t b/test/etap/041-uuid-gen.t index b61141fc..1e6aa9ee 100755 --- a/test/etap/041-uuid-gen.t +++ b/test/etap/041-uuid-gen.t @@ -14,13 +14,13 @@ % the License. default_config() -> - "etc/couchdb/default_dev.ini". + test_util:build_file("etc/couchdb/default_dev.ini"). seq_alg_config() -> - "test/etap/041-uuid-gen-seq.ini". + test_util:source_file("test/etap/041-uuid-gen-seq.ini"). utc_alg_config() -> - "test/etap/041-uuid-gen-utc.ini". + test_util:source_file("test/etap/041-uuid-gen-utc.ini"). % Run tests and wait for the gen_servers to shutdown run_test(IniFiles, Test) -> @@ -38,8 +38,7 @@ run_test(IniFiles, Test) -> end. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), application:start(crypto), etap:plan(6), diff --git a/test/etap/050-stream.t b/test/etap/050-stream.t index b3bce45f..9324916c 100755 --- a/test/etap/050-stream.t +++ b/test/etap/050-stream.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(13), case (catch test()) of ok -> diff --git a/test/etap/060-kt-merging.t b/test/etap/060-kt-merging.t index 17f77e3d..d6b13d6d 100755 --- a/test/etap/060-kt-merging.t +++ b/test/etap/060-kt-merging.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(16), case (catch test()) of ok -> diff --git a/test/etap/061-kt-missing-leaves.t b/test/etap/061-kt-missing-leaves.t index d1dc3fd7..d60b4db8 100755 --- a/test/etap/061-kt-missing-leaves.t +++ b/test/etap/061-kt-missing-leaves.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(4), case (catch test()) of ok -> diff --git a/test/etap/062-kt-remove-leaves.t b/test/etap/062-kt-remove-leaves.t index 9c33475b..745a00be 100755 --- a/test/etap/062-kt-remove-leaves.t +++ b/test/etap/062-kt-remove-leaves.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(6), case (catch test()) of ok -> diff --git a/test/etap/063-kt-get-leaves.t b/test/etap/063-kt-get-leaves.t index a8fa3e94..6d4e8007 100755 --- a/test/etap/063-kt-get-leaves.t +++ b/test/etap/063-kt-get-leaves.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(11), case (catch test()) of ok -> diff --git a/test/etap/064-kt-counting.t b/test/etap/064-kt-counting.t index b68215b5..f182d287 100755 --- a/test/etap/064-kt-counting.t +++ b/test/etap/064-kt-counting.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(4), case (catch test()) of ok -> diff --git a/test/etap/065-kt-stemming.t b/test/etap/065-kt-stemming.t index 6dfe9380..6e781c1d 100755 --- a/test/etap/065-kt-stemming.t +++ b/test/etap/065-kt-stemming.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(3), case (catch test()) of ok -> diff --git a/test/etap/070-couch-db.t b/test/etap/070-couch-db.t index ba381277..bf20dc0a 100755 --- a/test/etap/070-couch-db.t +++ b/test/etap/070-couch-db.t @@ -14,9 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), - code:add_pathz("src/mochiweb"), + test_util:init_code_path(), etap:plan(4), case (catch test()) of diff --git a/test/etap/080-config-get-set.t b/test/etap/080-config-get-set.t index 7702fb07..a4a8577a 100755 --- a/test/etap/080-config-get-set.t +++ b/test/etap/080-config-get-set.t @@ -14,11 +14,10 @@ % the License. default_config() -> - "etc/couchdb/default_dev.ini". + test_util:build_file("etc/couchdb/default_dev.ini"). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(12), case (catch test()) of ok -> diff --git a/test/etap/081-config-override.t b/test/etap/081-config-override.t index e96e3c23..01f8b4c2 100755 --- a/test/etap/081-config-override.t +++ b/test/etap/081-config-override.t @@ -14,16 +14,16 @@ % the License. default_config() -> - "etc/couchdb/default_dev.ini". + test_util:build_file("etc/couchdb/default_dev.ini"). local_config_1() -> - "test/etap/081-config-override.1.ini". + test_util:source_file("test/etap/081-config-override.1.ini"). local_config_2() -> - "test/etap/081-config-override.2.ini". + test_util:source_file("test/etap/081-config-override.2.ini"). local_config_write() -> - "test/etap/temp.081". + test_util:build_file("test/etap/temp.081"). % Run tests and wait for the config gen_server to shutdown. run_tests(IniFiles, Tests) -> @@ -39,8 +39,7 @@ run_tests(IniFiles, Tests) -> end. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(17), case (catch test()) of diff --git a/test/etap/082-config-register.t b/test/etap/082-config-register.t index d484db11..191ba8f8 100755 --- a/test/etap/082-config-register.t +++ b/test/etap/082-config-register.t @@ -14,11 +14,10 @@ % the License. default_config() -> - "etc/couchdb/default_dev.ini". + test_util:build_file("etc/couchdb/default_dev.ini"). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(5), case (catch test()) of ok -> diff --git a/test/etap/083-config-no-files.t b/test/etap/083-config-no-files.t index 0d513cef..675feb59 100755 --- a/test/etap/083-config-no-files.t +++ b/test/etap/083-config-no-files.t @@ -14,11 +14,10 @@ % the License. default_config() -> - "etc/couchdb/default_dev.ini". + test_util:build_file("etc/couchdb/default_dev.ini"). main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(3), case (catch test()) of ok -> diff --git a/test/etap/090-task-status.t b/test/etap/090-task-status.t index 26cff33a..b6ebbe4c 100755 --- a/test/etap/090-task-status.t +++ b/test/etap/090-task-status.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(16), case (catch test()) of ok -> diff --git a/test/etap/100-ref-counter.t b/test/etap/100-ref-counter.t index c2c233e1..6f18d828 100755 --- a/test/etap/100-ref-counter.t +++ b/test/etap/100-ref-counter.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(8), case (catch test()) of ok -> diff --git a/test/etap/110-replication-httpc.t b/test/etap/110-replication-httpc.t index a84491f1..492732bc 100755 --- a/test/etap/110-replication-httpc.t +++ b/test/etap/110-replication-httpc.t @@ -38,12 +38,14 @@ server() -> "http://127.0.0.1:5984/". dbname() -> "etap-test-db". +config_files() -> + lists:map(fun test_util:build_file/1, [ + "etc/couchdb/default_dev.ini", + "etc/couchdb/local_dev.ini" + ]). + main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), - code:add_pathz("src/ibrowse"), - code:add_pathz("src/mochiweb"), - code:add_pathz("src/erlang-oauth"), + test_util:init_code_path(), etap:plan(6), case (catch test()) of @@ -56,9 +58,7 @@ main(_) -> ok. test() -> - couch_server_sup:start_link( - ["etc/couchdb/default_dev.ini", "etc/couchdb/local_dev.ini"] - ), + couch_server_sup:start_link(config_files()), ibrowse:start(), crypto:start(), diff --git a/test/etap/111-replication-changes-feed.t b/test/etap/111-replication-changes-feed.t index 10cea201..b03c1ac7 100755 --- a/test/etap/111-replication-changes-feed.t +++ b/test/etap/111-replication-changes-feed.t @@ -37,12 +37,15 @@ pause = 1, conn = nil }). + +config_files() -> + lists:map(fun test_util:build_file/1, [ + "etc/couchdb/default_dev.ini", + "etc/couchdb/local_dev.ini" + ]). + main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), - code:add_pathz("src/ibrowse"), - code:add_pathz("src/mochiweb"), - code:add_pathz("src/erlang-oauth"), + test_util:init_code_path(), etap:plan(13), case (catch test()) of @@ -55,9 +58,7 @@ main(_) -> ok. test() -> - couch_server_sup:start_link( - ["etc/couchdb/default_dev.ini", "etc/couchdb/local_dev.ini"] - ), + couch_server_sup:start_link(config_files()), ibrowse:start(), crypto:start(), diff --git a/test/etap/112-replication-missing-revs.t b/test/etap/112-replication-missing-revs.t index cfb11f35..8aabfd37 100755 --- a/test/etap/112-replication-missing-revs.t +++ b/test/etap/112-replication-missing-revs.t @@ -39,12 +39,14 @@ conn = nil }). +config_files() -> + lists:map(fun test_util:build_file/1, [ + "etc/couchdb/default_dev.ini", + "etc/couchdb/local_dev.ini" + ]). + main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), - code:add_pathz("src/ibrowse"), - code:add_pathz("src/mochiweb"), - code:add_pathz("src/erlang-oauth"), + test_util:init_code_path(), etap:plan(12), case (catch test()) of @@ -57,9 +59,7 @@ main(_) -> ok. test() -> - couch_server_sup:start_link( - ["etc/couchdb/default_dev.ini", "etc/couchdb/local_dev.ini"] - ), + couch_server_sup:start_link(config_files()), ibrowse:start(), crypto:start(), diff --git a/test/etap/120-stats-collect.t b/test/etap/120-stats-collect.t index a870bfef..dee88765 100755 --- a/test/etap/120-stats-collect.t +++ b/test/etap/120-stats-collect.t @@ -14,8 +14,7 @@ % the License. main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(11), case (catch test()) of ok -> diff --git a/test/etap/121-stats-aggregates.t b/test/etap/121-stats-aggregates.t index 9caa36ff..cd6b1430 100755 --- a/test/etap/121-stats-aggregates.t +++ b/test/etap/121-stats-aggregates.t @@ -13,9 +13,14 @@ % License for the specific language governing permissions and limitations under % the License. +ini_file() -> + test_util:source_file("test/etap/121-stats-aggregates.ini"). + +cfg_file() -> + test_util:source_file("test/etap/121-stats-aggregates.cfg"). + main(_) -> - code:add_patha("src/etap"), - code:add_pathz("src/couchdb"), + test_util:init_code_path(), etap:plan(17), case (catch test()) of ok -> @@ -27,9 +32,9 @@ main(_) -> ok. test() -> - couch_config:start_link(["test/etap/121-stats-aggregates.ini"]), + couch_config:start_link([ini_file()]), couch_stats_collector:start(), - couch_stats_aggregator:start("test/etap/121-stats-aggregates.cfg"), + couch_stats_aggregator:start(cfg_file()), ok = test_all_empty(), ok = test_get_empty(), ok = test_count_stats(), diff --git a/test/etap/Makefile.am b/test/etap/Makefile.am new file mode 100644 index 00000000..03685d0e --- /dev/null +++ b/test/etap/Makefile.am @@ -0,0 +1,64 @@ +## Licensed under the Apache License, Version 2.0 (the "License"); you may not +## use this file except in compliance with the License. You may obtain a copy of +## the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +## License for the specific language governing permissions and limitations under +## the License. + +check_SCRIPTS = run +noinst_DATA = test_util.beam + +%.beam: %.erl + erlc $< + +run: run.tpl + sed -e "s|%abs_top_srcdir%|@abs_top_srcdir@|g" \ + -e "s|%abs_top_builddir%|@abs_top_builddir@|g" > \ + $@ < $< + chmod +x $@ + +CLEANFILES = run *.beam +DISTCLEANFILES = temp.* + +EXTRA_DIST = \ + run.tpl \ + 001-load.t \ + 002-erl-driver.t \ + 010-file-basics.t \ + 011-file-headers.t \ + 020-btree-basics.t \ + 021-btree-reductions.t \ + 030-doc-from-json.t \ + 031-doc-to-json.t \ + 040-util.t \ + 041-uuid-gen-seq.ini \ + 041-uuid-gen-utc.ini \ + 041-uuid-gen.t \ + 050-stream.t \ + 060-kt-merging.t \ + 061-kt-missing-leaves.t \ + 062-kt-remove-leaves.t \ + 063-kt-get-leaves.t \ + 064-kt-counting.t \ + 065-kt-stemming.t \ + 070-couch-db.t \ + 080-config-get-set.t \ + 081-config-override.1.ini \ + 081-config-override.2.ini \ + 081-config-override.t \ + 082-config-register.t \ + 083-config-no-files.t \ + 090-task-status.t \ + 100-ref-counter.t \ + 110-replication-httpc.t \ + 111-replication-changes-feed.t \ + 112-replication-missing-revs.t \ + 120-stats-collect.t \ + 121-stats-aggregates.cfg \ + 121-stats-aggregates.ini \ + 121-stats-aggregates.t diff --git a/test/etap/run.tpl b/test/etap/run.tpl new file mode 100644 index 00000000..faf0f456 --- /dev/null +++ b/test/etap/run.tpl @@ -0,0 +1,27 @@ +#!/bin/sh -e + +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. + +SRCDIR="%abs_top_srcdir%" +BUILDIR="%abs_top_builddir%" + +export ERL_FLAGS="$ERL_FLAGS -pa $BUILDIR/test/etap/" + +if test $# -gt 0; then + while [ $# -gt 0 ]; do + $1 + shift + done +else + prove $SRCDIR/test/etap/*.t +fi diff --git a/test/etap/test_util.erl.in b/test/etap/test_util.erl.in new file mode 100644 index 00000000..4c42edb1 --- /dev/null +++ b/test/etap/test_util.erl.in @@ -0,0 +1,35 @@ +% Licensed under the Apache License, Version 2.0 (the "License"); you may not +% use this file except in compliance with the License. You may obtain a copy of +% the License at +% +% http://www.apache.org/licenses/LICENSE-2.0 +% +% Unless required by applicable law or agreed to in writing, software +% distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +% WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +% License for the specific language governing permissions and limitations under +% the License. + +-module(test_util). + +-export([init_code_path/0]). +-export([source_file/1, build_file/1]). + +srcdir() -> + "@abs_top_srcdir@". + +builddir() -> + "@abs_top_builddir@". + +init_code_path() -> + Paths = ["etap", "couchdb", "erlang-oauth", "ibrowse", "mochiweb"], + lists:foreach(fun(Name) -> + code:add_pathz(filename:join([builddir(), "src", Name])) + end, Paths). + +source_file(Name) -> + filename:join([srcdir(), Name]). + +build_file(Name) -> + filename:join([builddir(), Name]). + diff --git a/test/javascript/Makefile.am b/test/javascript/Makefile.am new file mode 100644 index 00000000..faaca829 --- /dev/null +++ b/test/javascript/Makefile.am @@ -0,0 +1,15 @@ +## Licensed under the Apache License, Version 2.0 (the "License"); you may not +## use this file except in compliance with the License. You may obtain a copy of +## the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +## License for the specific language governing permissions and limitations under +## the License. + +EXTRA_DIST = \ + runner.sh \ + test.js diff --git a/test/runner.sh b/test/javascript/runner.sh index 1f48c390..1f48c390 100755 --- a/test/runner.sh +++ b/test/javascript/runner.sh diff --git a/test/test.js b/test/javascript/test.js index 7f8a0787..7f8a0787 100644 --- a/test/test.js +++ b/test/javascript/test.js diff --git a/test/view_server/Makefile.am b/test/view_server/Makefile.am new file mode 100644 index 00000000..11e7feb4 --- /dev/null +++ b/test/view_server/Makefile.am @@ -0,0 +1,15 @@ +## Licensed under the Apache License, Version 2.0 (the "License"); you may not +## use this file except in compliance with the License. You may obtain a copy of +## the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +## WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +## License for the specific language governing permissions and limitations under +## the License. + +EXTRA_DIST = \ + query_server_spec.rb \ + run_native_process.es diff --git a/test/query_server_spec.rb b/test/view_server/query_server_spec.rb index 8fc2ab43..8fc2ab43 100644 --- a/test/query_server_spec.rb +++ b/test/view_server/query_server_spec.rb diff --git a/test/run_native_process.es b/test/view_server/run_native_process.es index dfdc423e..dfdc423e 100755 --- a/test/run_native_process.es +++ b/test/view_server/run_native_process.es diff --git a/utils/Makefile.am b/utils/Makefile.am index 65fd1a81..379c1eb0 100644 --- a/utils/Makefile.am +++ b/utils/Makefile.am @@ -20,17 +20,18 @@ couchdb_command_name = `echo couchdb | sed '$(transform)'` run: ../bin/couchdb.tpl sed -e "s|%ERL%|$(ERL)|g" \ -e "s|%ICU_CONFIG%|$(ICU_CONFIG)|g" \ - -e "s|%bindir%|$(abs_top_srcdir)/bin|g" \ + -e "s|%bindir%|$(abs_top_builddir)/bin|g" \ -e "s|%defaultini%|default_dev.ini|g" \ -e "s|%localini%|local_dev.ini|g" \ - -e "s|%localerlanglibdir%|foo -pa $(abs_top_srcdir)\/src\/couchdb \ - -pa $(abs_top_srcdir)\/src\/erlang-oauth \ - -pa $(abs_top_srcdir)\/src\/ibrowse \ - -pa $(abs_top_srcdir)\/src\/mochiweb|g" \ - -e "s|%localconfdir%|$(abs_top_srcdir)/etc/couchdb|g" \ - -e "s|%localstatelogdir%|$(abs_top_srcdir)/tmp/log|g" \ - -e "s|%localstatelibdir%|$(abs_top_srcdir)/tmp/lib|g" \ - -e "s|%localstatedir%|$(abs_top_srcdir)/tmp|g" \ + -e "s|%localerlanglibdir%|foo \ + -pa $(abs_top_builddir)\/src\/couchdb \ + -pa $(abs_top_builddir)\/src\/erlang-oauth \ + -pa $(abs_top_builddir)\/src\/ibrowse \ + -pa $(abs_top_builddir)\/src\/mochiweb|g" \ + -e "s|%localconfdir%|$(abs_top_builddir)/etc/couchdb|g" \ + -e "s|%localstatelogdir%|$(abs_top_builddir)/tmp/log|g" \ + -e "s|%localstatelibdir%|$(abs_top_builddir)/tmp/lib|g" \ + -e "s|%localstatedir%|$(abs_top_builddir)/tmp|g" \ -e "s|%bug_uri%|@bug_uri@|g" \ -e "s|%package_author_address%|@package_author_address@|g" \ -e "s|%package_author_name%|@package_author_name@|g" \ |