| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add a development container config for VS Code
This creates a development environment with a FoundationDB server
and a CouchDB layer in two containers, sharing a network through
Docker Compose.
It uses the FDB image published to Docker Hub for the FDB container,
and downloads the FDB client packages from foundationdb.org to provide
the development headers and libraries. www.foundationdb.org is actually
not trusted in Debian Buster by default, so we have to download the
GeoTrust_Global_CA.pem. The following link has more details:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=962596
Once the Docker Compose setup is running, VS Code executes the
create_cluster_file.bash script to write down a cluster file containing
the IP address in the compose network where the FDB service can be
found. This cluster file is used both for a user-driven invocation of
`./dev/run`, as well as for unit tests that require a running CouchDB.
Additionally, I've got a small fix to the way we run explicitly specified
eunit tests:
* Run eunit tests for each app separately
The `eunit` target executes a for loop that appears intended to use a
separate invocation of rebar for each Erlang application's unit tests.
When running `make eunit` without any arguments this works correctly,
as the for loop processes the output of `ls src`. But if you specify a
comma-delimited list of applications the for loop will treat that as a
single argument and pass it down to rebar. This asymmetry is
surprising, but also seems to cause some issues with environment
variables not being inherited by the environment used to execute the
tests for the 2..N applications in the list. I didn't bother digging
into the rebar source code to figure out what was happening there.
This patch just parses the incoming comma-delimited list with `sed` to
create a whitespace-delimited list for the loop, so we get the same
behavior regardless of whether we are specifying applications
explicitly or not.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Simplify and speedup dev node startup
This patch introduces an escript that generates an Erlang .boot script
to start CouchDB using the in-place .beam files produced by the compile
phase of the build. This allows us to radically simplify the boot
process as Erlang computes the optimal order for loading the necessary
modules.
In addition to the simplification this approach offers a significant
speedup when working inside a container environment. In my test with
the stock .devcontainer it reduces startup time from about 75 seconds
down to under 5 seconds.
* Rename boot_node to monitor_parent
* Add formatting suggestions from python-black
Co-authored-by: Paul J. Davis <paul.joseph.davis@gmail.com>
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New `elixir-suite` Makefile target is added. It runs a predefined set of elixir
integration tests.
The feature is controlled by two files:
- test/elixir/test/config/suite.elixir - contains list of all available tests
- test/elixir/test/config/skip.elixir - contains list of tests to skip
In order to update the `test/elixir/test/config/suite.elixir` when new tests
are added. The one would need to run the following command:
```
MIX_ENV=integration mix suite > test/elixir/test/config/suite.elixir
```
|
| |
|
|
|
|
|
| |
Since https://github.com/apache/couchdb-fauxton/pull/1299 only runtime
dependencies are installed when using 'npm install --production'.
To correctly build the Fauxton release, one must install all dependencies
with 'npm install'.
|
| | |
|
| | |
|
| |\ |
|
| | | |
|
| | | |
|
| | |
| |
| |
| | |
process
|
| | | |
|
| | |
| |
| |
| | |
* Add support for specify a custom config file for CouchDB startup during testing
* Port proxyauth test from js to elixir
|
| | |
| |
| |
| |
| |
| |
| | |
Update tests to use the new replicator. Also clean up redundancy and re-use
some of the newer macros from fabric2 (?TDEF_FE).
Make sure replicator tests are included in `make check`
|
| | |
| |
| |
| |
| |
| | |
This implementation was difficult to understand and had behavior that
was too difficult to predict. It would break if view behavior changed in
significant ways from what was originally expected.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This will let CI gate PRs hopefully as we now have the necessary FDB server
bits installed in Jenkins.
Eventually when we can run all the tests revert to using `make check-all-tests`
as the default.
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Enable running all chttpd tests. Some fixes needed for this to happen are:
* Some tests were not valid (checking shard maps, etc) and were deleted
* Some tests were disabled either because functionality is not implemented yet
or simply to minimize the diff between 3.x and this branch for when we have
to rebase
* Some applications used for index querying had to be started explicitly
* Mock updated to use new version of modules instead of old ones
|
| | | |
|
| | | |
|
| | | |
|
| | | |
|
| |/ |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Allows `configure.ps1` to correctly pull and build `rebar` on Windows
* Removes the static declarations in `rebar.config.script` on
specific, pre-determined paths to various includes/libraries
necessary for NIFs and external binaries (expectation is these are
passed in env vars INCLUDE, LIB and LIBPATH)
* fixes the SM60 `couchjs` build by telling `windows.h` not to
redefine min and max as macros through a `#define`
* fixes the `make eunit` target on Windows
* Adds the missing `EXE_LINK_CXX_TEMPLATE` that our rebar doesn't have,
but `enc` has today, which is also causing a failed `couchjs` (C++)
build on Windows
* Causes `make python-black` to correctly cause failure in `make check`
if it finds problems
* fixes Mango tests on Python 3.8 by bumping the hypothesis dependency
* fixes one Elixir test on Windows (incorrect calculation of `now(:ms)`
due to Erlang clock precision difference)
* a little bit of python black cleanup (mango tests)
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
| |
Since we switched from Travis to Jenkins, let's see how tests run without
retries in the new environment.
For reference, retries were introduced in: https://github.com/apache/couchdb/commit/220462a1dd2d921fc4ecba3488f5fedefb75217f
|
| | |
|
| |
|
|
| |
Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Add auth cache test into elixir test suite
* Port cookie_auth test suite into elixir
* Remove conflicting functions
* remove debug log level config
* Port users_db from js test suite to elixir
* WIP: make test more robust
* WIP: increase default timeout, revert to fail when login error
* Auth cache test fixes
* Cookie auth test fixes
* Cookie auth test fixes
* Correct test name
* Correct test name
* Disable all JS tests that have Elixir test counterparts.
* Convert test setup/teardown logic into idiomatic ExUnit and use @moduletag config
* Disable auth_cache_test
* auth cache test is disabled
* Update elixir test suite README.md with missing ported stuff
* Port UTF8 js test suite to elixir
* fix: losen assertion
* disable more JS tests
Co-authored-by: Juanjo Rodriguez <jjrodrig@gmail.com>
Co-authored-by: Alessio Biancalana <dottorblaster@gmail.com>
|
| |
|
|
|
|
|
|
|
| |
* Port erlang views tests into elixir test suite
* Enable erlang views in elixir testing
* Support nil or :null in response
|
| |
|
|
|
|
|
|
|
|
|
|
| |
feat: refuse startup with no server admin set up
includes an admin party assert escape hatch for tests
adds a log message every 5 minutes, if escape hatch is enabled.
should play nice with systemd restart policies
Co-authored-by: Joan Touzet <wohali@users.noreply.github.com>
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
| |
Set autoupdate:false to avoid update=False flake
The auto-indexer is sometimes sneaking in and causing test failures by
building the index ahead of the update=false query. This should block
that behavior.
Also, save XML output from mango nose tests.
|
| |
|
|
|
|
|
|
|
|
|
| |
Omitting COUCHDB_VERSION caused the EUnit build of the replicator to
have a corrupted User-Agent header. It tried to construct a version
using git, but when building from a release tarball there is no git
repo so the UA had a git error message in it. This error message
contained a newline, which plausibly confused some part of the HTTP
stack and caused replicator HTTP requests to hang.
Related to #2098.
|
| |
|
|
|
|
|
| |
The `pip3` and `nosetest` executables are scripts, and on jenkins
the specified interpreter can exceed the 128 character length limit
because of the deeply-nested workspace. Invoking these as modules seems
the preferred workaround per pypa/pip#1773
|
| |
|
|
| |
Bash has `let` but other shells might not have it.
|
| |
|
|
|
|
|
| |
Whole app is retried 2 extra times if it fails.
Added to *nix Makefile only for now. May not be needed for Windows as this is
for CI flakiness mostly.
|
| | |
|
| | |
|
| |
|
|
| |
We skip mochiweb, snappy and others already.
|
| | |
|
| | |
|