REVA is an interoperability platform. It connects storage, sync and share platforms and application providers, and it does it in a vendor and platform neutral way by using the CS3 APIS.
Download to get the latest available release.
You need to have Go (version 1.16 or higher), git and make installed. Some of these commands may require sudo, depending on your system setup.
$ git clone -b main https://github.com/opencloud-eu/reva
$ cd reva
$ make build
Reva's codebase continuously undergoes testing at various levels.
To understand which tests exist, you can have a look at the Makefile.
The tests run by OpenCloud's instance of Woodpecker CI/CD are defined in the .woodpecker folder.
NB: The tests/oc-integration-tests/ci and tests/oc-integration-tests/local folders contain the configuration fixtures that are used to start up the Reva instance to test (on CI/CD or on your local system, respectively), for both these acceptance tests ("ownCloud legacy integration tests") and the Litmus tests.
This runs the <unit>_test.go files that appear next to some of the <unit>.go files in the code tree.
For instance pkg/utils/utils_test.go contains unit tests for pkg/utils/utils.go.
To run all of them you can do make test.
If you see TestGetManagerWithInvalidUser/Nil_in_user fail, try removing /etc/revad/users.json on your system.
To run a single one of them you can do:
$ go test `go list ./pkg/utils/...`
ok github.com/opencloud-eu/reva/v2/pkg/utils 0.374sSee tests/integration. This requires Redis.
export REDIS_ADDRESS=127.0.0.1:6379
make test-integrationYou can get more verbose output with ginkgo -v -r tests/integration/.
NB: This will work better on Linux than on MacOS because of issues with static linking (library not found for -lcrt0.o).
Litmus is a webdav test suite. The litmus tests for Reva's WebDAV interface are run using the ownCloud's litmus Docker image. The '-old' and '-new' refer to which LITMUS_URL environment variable is passed to that Docker image, in other words, which path on the Reva server the litmus tests are run against.
-
start the needed services
mkdir -p /var/tmp/reva/einstein cd tests/oc-integration-tests/local ../../../cmd/revad/revad -c frontend.toml & ../../../cmd/revad/revad -c gateway.toml & ../../../cmd/revad/revad -c storage-home.toml & ../../../cmd/revad/revad -c storage-users.toml & ../../../cmd/revad/revad -c users.toml -
run litmus tests:
docker run --rm --network=host\ -e LITMUS_URL=http://localhost:20080/remote.php/webdav \ -e LITMUS_USERNAME=einstein \ -e LITMUS_PASSWORD=relativity \ owncloud/litmus:latest- add
TESTSenv. variable to test only a subset of tests e.g-e TESTS="basic http copymove props" - change
LITMUS_URLfor other tests e.g.-e LITMUS_URL=http://localhost:20080/remote.php/dav/files/einsteinor to a public-share link - if on MacOS you see
FAIL (connection refused by '127.0.0.1' port 20080: Connection refused), it may be necessary to replace 'localhost' with your host IP address (e.g.ipconfig getifaddr en0orsudo ifconfig | grep 192)
- add
To promote free and unrestricted adoption of CS3 APIs and the reference implementation REVA by all EFSS implementations and all platforms and application providers, both community and commercial, Open Source and Open Core, CERN released the source code repositories under Apache 2.0 license.
Further evolution of the CS3 APIs will be driven by the needs of the Educational and Research community with the goal of maximizing the portability of the applications and service extensions.
REVA is distributed under Apache 2.0 license.
REVA logo's have been designed and contributed to the project by Eamon Maguire.
There is no backward compatibility promises and semantic versioning yet. Semantic versioning will be added once v1.0.0 is reached.
If you want to use it, vendor it. It is always OK to change things to make things better. The API is not 100% correct in the first commit.