diff options
author | Nick Vatamaniuc <vatamane@gmail.com> | 2023-05-12 18:25:29 -0400 |
---|---|---|
committer | Ronny Berndt <ronny@apache.org> | 2023-05-15 21:36:15 +0200 |
commit | be9b8e96a6b3bebfed15178f79bdafe4af9f2d9c (patch) | |
tree | 732df45c19faac66af475c4da9d533ef570178de /Makefile.win | |
parent | a58684f4209b3673e60b79ce3531fff116a9dce9 (diff) | |
download | couchdb-be9b8e96a6b3bebfed15178f79bdafe4af9f2d9c.tar.gz |
Add a simple fabric benchmarkalign-makefiles
This is mostly a diagnostic tool in the spirit of couch_debug. It creates a
database, fills it with some docs, and then tries to read them. It computes
rough expected rates for doc operations: how many docs per second it could
insert, read, get via _all_docs, etc. When the test is done, it deletes the
database. If it crashes, it also deletes the database. If someone brutally
kills it, the subsequent runs will still find old databases and delete them.
To run a benchmark:
```
fabric_bench:go().
```
Pass parameters as a map:
```
fabric_bench:go(#{doc_size=>large, docs=>25000}).
```
To get available options:
```
fabric_bench:opts()
```
Diffstat (limited to 'Makefile.win')
-rw-r--r-- | Makefile.win | 70 |
1 files changed, 59 insertions, 11 deletions
diff --git a/Makefile.win b/Makefile.win index 418a14515..542b7a7d8 100644 --- a/Makefile.win +++ b/Makefile.win @@ -78,7 +78,7 @@ DESTDIR= # Rebar options apps= -skip_deps=folsom,meck,mochiweb,triq,proper,snappy,bcrypt,hyper,ibrowse,local +skip_deps=folsom,meck,mochiweb,triq,proper,snappy,bcrypt,hyper,ibrowse suites= tests= @@ -98,7 +98,7 @@ TEST_OPTS=-c startup_jitter=0 -c default_security=admin_local .PHONY: all # target: all - Build everything -all: couch fauxton docs +all: couch fauxton docs nouveau .PHONY: help @@ -140,9 +140,11 @@ fauxton: share\www .PHONY: check # target: check - Test everything check: all + @$(MAKE) exunit @$(MAKE) eunit @$(MAKE) mango-test @$(MAKE) elixir-suite + @$(MAKE) nouveau-test ifdef apps subdirs = $(apps) @@ -167,8 +169,9 @@ exunit: export MIX_ENV=test exunit: export ERL_LIBS = $(shell echo %cd%)/src exunit: export ERL_AFLAGS = -config $(shell echo "%cd%")/rel/files/eunit.config exunit: export COUCHDB_QUERY_SERVER_JAVASCRIPT = $(shell echo %cd%)/bin/couchjs $(shell echo %cd%)/share/server/main.js -exunit: couch elixir-init setup-eunit elixir-check-formatted elixir-credo - @mix test --cover --trace $(EXUNIT_OPTS) +exunit: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1 +exunit: couch elixir-init setup-eunit + @mix test --trace $(EXUNIT_OPTS) setup-eunit: export BUILDDIR = $(shell echo %cd%) setup-eunit: export ERL_AFLAGS = -config $(shell echo "%cd%")/rel/files/eunit.config @@ -215,26 +218,27 @@ python-black-update: .venv/bin/black .PHONY: elixir elixir: export MIX_ENV=integration elixir: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1 -elixir: elixir-init elixir-check-formatted elixir-credo devclean - @dev\run $(TEST_OPTS) -a adm:pass -n 1 --enable-erlang-views \ +elixir: elixir-init devclean + @dev\run $(TEST_OPTS) -a adm:pass -n 1 \ + --enable-erlang-views \ --locald-config test/elixir/test/config/test-config.ini \ --no-eval 'mix test --trace --exclude without_quorum_test --exclude with_quorum_test $(EXUNIT_OPTS)' .PHONY: elixir-init -elixir-init: MIX_ENV=test +elixir-init: MIX_ENV=integration elixir-init: config.erl @mix local.rebar --force && mix local.hex --force && mix deps.get .PHONY: elixir-cluster-without-quorum elixir-cluster-without-quorum: export MIX_ENV=integration -elixir-cluster-without-quorum: elixir-init elixir-check-formatted elixir-credo devclean +elixir-cluster-without-quorum: elixir-init devclean @dev\run -n 3 -q -a adm:pass \ --degrade-cluster 2 \ --no-eval 'mix test --trace --only without_quorum_test $(EXUNIT_OPTS)' .PHONY: elixir-cluster-with-quorum elixir-cluster-with-quorum: export MIX_ENV=integration -elixir-cluster-with-quorum: elixir-init elixir-check-formatted elixir-credo devclean +elixir-cluster-with-quorum: elixir-init devclean @dev\run -n 3 -q -a adm:pass \ --degrade-cluster 1 \ --no-eval 'mix test --trace --only with_quorum_test $(EXUNIT_OPTS)' @@ -269,7 +273,11 @@ elixir-source-checks: elixir-init .PHONY: build-report # target: build-report - Generate a build report build-report: - @$(PYTHON) build-aux/show-test-results.py --suites=10 --tests=10 > test-results.log + @$(PYTHON) build-aux/show-test-results.py --suites=10 --tests=10 > test-results.log || true + cat .\dev\logs\node1.log || true + cat .\dev\logs\nouveau.log || true + cat .\tmp\couch.log || true + cat test-results.log || true .PHONY: check-qs # target: check-qs - Run query server tests (ruby and rspec required!) @@ -293,7 +301,7 @@ list-eunit-suites: mango-test: export COUCHDB_TEST_ADMIN_PARTY_OVERRIDE=1 mango-test: devclean all @cd src\mango && \ - python.exe -m venv .venv && \ + @$(PYTHON) -m venv .venv && \ .venv\Scripts\pip.exe install -r requirements.txt @cd src\mango && \ ..\..\dev\run $(TEST_OPTS) \ @@ -383,6 +391,12 @@ else endif endif +ifeq ($(with_nouveau), 1) + -@mkdir -p rel\couchdb\nouveau + @cp nouveau\build\libs\server-*-dist.jar rel\couchdb\nouveau\ + @cp nouveau\nouveau.yaml rel\couchdb\nouveau\ +endif + @echo ... done @echo . @echo You can now copy the rel\couchdb directory anywhere on your system. @@ -423,6 +437,9 @@ clean: -@rmdir /s/q src\mango\.venv -@del /f/q src\couch\priv\couch_js\config.h -@del /f/q dev\boot_node.beam dev\pbkdf2.pyc log\crash.log +ifeq ($(with_nouveau), 1) + @cd nouveau && ./gradlew clean +endif .PHONY: distclean @@ -489,3 +506,34 @@ derived: @echo "ON_TAG: $(ON_TAG)" @echo "REL_TAG: $(REL_TAG)" @echo "SUB_VSN: $(SUB_VSN)" + +################################################################################ +# Nouveau +################################################################################ + +.PHONY: nouveau +# target: nouveau - Build nouveau +nouveau: +ifeq ($(with_nouveau), 1) + @cd nouveau && ./gradlew build -x test +endif + +.PHONY: nouveau-test +# target: nouveau-test - Run nouveau tests +nouveau-test: nouveau-test-gradle nouveau-test-elixir + +.PHONY: nouveau-test-gradle +nouveau-test-gradle: couch nouveau +ifeq ($(with_nouveau), 1) + @cd nouveau && ./gradlew test +endif + +.PHONY: nouveau-test-elixir +nouveau-test-elixir: export MIX_ENV=integration +nouveau-test-elixir: elixir-init devclean +nouveau-test-elixir: couch nouveau +ifeq ($(with_nouveau), 1) + @dev/run -n 1 -q -a adm:pass --with-nouveau \ + --locald-config test/config/test-config.ini \ + --no-eval 'mix test --trace --include test/elixir/test/config/nouveau.elixir' +endif |