Commit Graph

16 Commits

Author SHA1 Message Date
Denis Makogon
4bb0744853 Use alpine images to make tests take less time (#629)
* Use retry func while trying to ping SQL datastore

 - implements retry func specifically for SQL datastore ping
 - fmt fixes
 - using sqlx.Db.PingContext instead of sqlx.Db.Ping
 - propogate context to SQL datastore

* Use alpine images to make tests take less time

 * use PG alpine
 * use Minio alpine
 * no official alpine distro for MySQL, uhhh :(
 * install swagger tool instead of docker image
 * use retry func to confirm that datastore is okay before running tests

* Store swagger tool at Fn during CI time

 somehow it's a problem to put binary to ${GOPATH}/bin

* Adjust swagger tool reference path

* Revert minio image

* Use amd64/alpine-based swagger tool image for API spec validation

* Cleanup
2018-01-02 14:56:38 -06:00
Denis Makogon
9d6f0b2a05 Speed up API tests (#624)
* Adjust API tests internal API

* Refactor API tests to take less time

 - sqlite: tests 15s, overall time: 1m
 - mysql: tests 15s, overall time: 59s

* Use retry func to survive in faulty places

* Use retry func while trying to ping SQL datastore

 - implements retry func specifically for SQL datastore ping
 - fmt fixes
 - using sqlx.Db.PingContext instead of sqlx.Db.Ping
 - propogate context to SQL datastore

* Simplify TestCanCauseTimeout retry loop

* Call retry with sane timeout

* Fix TestOversizedLog, use retry func

* Increase number of attempts

 2 test cases are really faulty in CI, so they need a lot more time to finish.

* Increase TestCanCauseTimeout timeout

* Use retry at TestMultiLog to speed it up

* Use retry at TestCanWriteLogs to speed it up

* Use retry at TestGetCallsSuccess to speed it up

* Use retry at TestCanGetAsyncState to speed it up

* Use retry at TestListCallsSuccess to speed it up

* Remove sleep calls

* Remove dup test case

* Cleaup Calls API test

* Build API tests binary once

 This patch lets CI to build API tests binary once and reuse that whenever it needs it

* Swap API tests checks

* Build API test binary by default

 dirty fix for CircleCI

* Use retry func to determine if datastore is alive in tests

* go install should also reduce build time

* Fix rebase issues
2018-01-02 13:29:49 -06:00
Tolga Ceylan
d329e0ef5b fn: circleci and makefile adjustments (#625)
* fn: circleci and makefile adjustments

*) Moved more tasks into Makefile to allow for
parallelism and dependency checks.
*) Added cpu count in circleci make invocations
for parallelism

* fn: typo sqlite => sqlite3

* fn: removed unnecessary make pull & install
2017-12-23 10:12:18 -06:00
Denis Makogon
5c68a88599 Fn-prefix everything (#545)
* Fn-prefix everything

Closes: #492

* Global replacement

* missed one fn_
2017-11-29 17:50:24 -08:00
Denis Makogon
5b41fe2dc7 Improving API tests 2017-07-25 10:29:20 -07:00
James Jeffrey
9654fd4179 Make tests use local functions server not one in container 2017-07-21 16:12:33 -07:00
Denis Makogon
84c9bb9b93 Increase startup timeouts 2017-07-21 16:07:17 -07:00
Denis Makogon
823ee23d37 More verbosity 2017-07-21 16:07:17 -07:00
Denis Makogon
a83cc89968 Increasing MySQL startup timeout 2017-07-21 16:07:17 -07:00
Denis Makogon
edde79e061 Trying to figure out networking problems 2017-07-21 16:07:16 -07:00
Denis Makogon
31e14843fe Enabling API tests in CI 2017-07-21 16:07:16 -07:00
Denis Makogon
9400a83aa8 Moving tests from CLI to server 2017-07-21 20:03:43 +03:00
Reed Allman
4e52c595d2 merge datastores into sqlx package
replace default bolt option with sqlite3 option. the story here is that we
just need a working out of the box solution, and sqlite3 is just fine for that
(actually, likely better than bolt).

with sqlite3 supplanting bolt, we mostly have sql databases. so remove redis
and then we just have one package that has a `sql` implementation of the
`models.Datastore` and lean on sqlx to do query rewriting. this does mean
queries have to be formed a certain way and likely have to be ANSI-SQL (no
special features) but we weren't using them anyway and our base api is
basically done and we can easily extend this api as needed to only implement
certain methods in certain backends if we need to get cute.

* remove bolt & redis datastores (can still use as mqs)
* make sql queries work on all 3 (maybe?)
* remove bolt log store and use sqlite3
* shove the FnLog shit into the datastore shit for now (free pg/mysql logs...
just for demos, etc, not prod)
* fix up the docs to remove bolt references
* add sqlite3, sqlx dep
* fix up tests & mock stuff, make validator less insane
* remove put & get in datastore layer as nobody is using.

this passes tests which at least seem like they test all the different
backends. if we trust our tests then this seems to work great. (tests `make
docker-test-run-with-*` work now too)
2017-07-07 01:30:02 -07:00
Denis Makogon
d69423b6b7 Make mysql ports consistent 2017-07-07 23:05:17 +03:00
Denis Makogon
54068ae0b6 Enable different kinds of networking communications to Docker 2017-07-07 22:46:26 +03:00
Denis Makogon
adf61c77be Full stack tests 2017-07-05 12:38:09 -07:00