# Using the Friendica tests ## Install Tools You need to install the following software: * PHP * MySQL or Mariadb (the latter is preferred) For example in Ubuntu you can run: ``` sudo apt install mariadb-server php ``` ## Install PHP extensions The following extensions must be installed: * MySQL * Curl * GD * XML * DOM * SimpleXML * Intl * Multi-precision * Multi-byte string For example in Ubuntu: ``` sudo apt install php-mysql php-curl php-gd php-xml php-intl php-gmp php-mbstring ``` ## Create Local Database The default database name is `test`, username `friendica`, password `friendica`. These can be overridden using environment variables `DATABASE_NAME`, `DATABASE_USER`, `DATABASE_HOST`, and `DATABASE_PASSWORD`. Whatever settings you choose, you must give the corresponding user the necessary privileges to create and destroy the chosen database. ``` GRANT ALL PRIVILEGES ON test.* TO 'friendica'@'localhost' IDENTIFIED BY 'friendica' WITH GRANT OPTION; GRANT CREATE, DROP ON test.* TO 'friendica'@'localhost'; ``` ## Use Docker Database Instead of using a local database, you can also use a database running in a docker container. TODO this section needs to be filled in with working examples. ## Running Tests You can then run the tests using the `autotest.sh` script. You should specify the type of database as an argument, either `mysql` or `mariadb`: ``` bin/dev/autotest.sh mariadb ``` You can also run just one particular file of tests: ``` bin/dev/autotest.sh mariadb src/Util/ImagesTest.php ``` Example output of tests passing: ``` OK (2 tests, 2 assertions) ``` Failed tests look like this. Examine the output before this to see which tests failed. ``` FAILURES! Tests: 2, Assertions: 2, Failures: 1. ```