summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am6
-rw-r--r--bin/Makefile.am2
-rw-r--r--configure.ac4
-rw-r--r--etc/couchdb/Makefile.am13
-rw-r--r--etc/couchdb/default.ini.tpl.in2
-rw-r--r--license.skip6
-rw-r--r--share/Makefile.am1
-rw-r--r--src/couchdb/priv/Makefile.am9
-rw-r--r--src/couchdb/priv/stat_descriptions.cfg.in (renamed from src/couchdb/priv/stat_descriptions.cfg)0
-rw-r--r--src/erlang-oauth/Makefile.am15
-rw-r--r--src/erlang-oauth/oauth.app.in (renamed from src/erlang-oauth/oauth.app)0
-rw-r--r--src/ibrowse/Makefile.am9
-rw-r--r--src/ibrowse/ibrowse.app.in (renamed from src/ibrowse/ibrowse.app)0
-rw-r--r--src/mochiweb/Makefile.am11
-rw-r--r--src/mochiweb/mochiweb.app.in (renamed from src/mochiweb/mochiweb.app)0
-rw-r--r--test/Makefile.am34
-rwxr-xr-xtest/etap/001-load.t4
-rw-r--r--test/etap/002-erl-driver.t3
-rwxr-xr-xtest/etap/010-file-basics.t5
-rwxr-xr-xtest/etap/011-file-headers.t5
-rwxr-xr-xtest/etap/020-btree-basics.t5
-rwxr-xr-xtest/etap/021-btree-reductions.t3
-rwxr-xr-xtest/etap/030-doc-from-json.t3
-rwxr-xr-xtest/etap/031-doc-to-json.t3
-rwxr-xr-xtest/etap/040-util.t3
-rwxr-xr-xtest/etap/041-uuid-gen.t9
-rwxr-xr-xtest/etap/050-stream.t3
-rwxr-xr-xtest/etap/060-kt-merging.t3
-rwxr-xr-xtest/etap/061-kt-missing-leaves.t3
-rwxr-xr-xtest/etap/062-kt-remove-leaves.t3
-rwxr-xr-xtest/etap/063-kt-get-leaves.t3
-rwxr-xr-xtest/etap/064-kt-counting.t3
-rwxr-xr-xtest/etap/065-kt-stemming.t3
-rwxr-xr-xtest/etap/070-couch-db.t4
-rwxr-xr-xtest/etap/080-config-get-set.t5
-rwxr-xr-xtest/etap/081-config-override.t11
-rwxr-xr-xtest/etap/082-config-register.t5
-rwxr-xr-xtest/etap/083-config-no-files.t5
-rwxr-xr-xtest/etap/090-task-status.t3
-rwxr-xr-xtest/etap/100-ref-counter.t3
-rwxr-xr-xtest/etap/110-replication-httpc.t16
-rwxr-xr-xtest/etap/111-replication-changes-feed.t17
-rwxr-xr-xtest/etap/112-replication-missing-revs.t16
-rwxr-xr-xtest/etap/120-stats-collect.t3
-rwxr-xr-xtest/etap/121-stats-aggregates.t13
-rw-r--r--test/etap/Makefile.am64
-rw-r--r--test/etap/run.tpl27
-rw-r--r--test/etap/test_util.erl.in35
-rw-r--r--test/javascript/Makefile.am15
-rwxr-xr-xtest/javascript/runner.sh (renamed from test/runner.sh)0
-rw-r--r--test/javascript/test.js (renamed from test/test.js)0
-rw-r--r--test/view_server/Makefile.am15
-rw-r--r--test/view_server/query_server_spec.rb (renamed from test/query_server_spec.rb)0
-rwxr-xr-xtest/view_server/run_native_process.es (renamed from test/run_native_process.es)0
-rw-r--r--utils/Makefile.am19
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" \